|
|
@@ -2,69 +2,77 @@ extends ../layout-marketing
|
|
|
|
|
|
block content
|
|
|
main.content.content-alt#main-content
|
|
|
- .container
|
|
|
- .row
|
|
|
- .col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
|
|
|
- .card
|
|
|
- .page-header
|
|
|
- h1 #{translate("reset_your_password")}
|
|
|
- form(
|
|
|
- data-ol-async-form,
|
|
|
- name="passwordResetForm",
|
|
|
- action="/user/password/set",
|
|
|
- method="POST",
|
|
|
- data-ol-hide-on-error="token-expired"
|
|
|
- )
|
|
|
- div.alert.alert-success(
|
|
|
- hidden
|
|
|
- role="alert"
|
|
|
- aria-live="assertive"
|
|
|
- data-ol-sent
|
|
|
- )
|
|
|
- | #{translate("password_has_been_reset")}.
|
|
|
- br
|
|
|
- a(href='/login') #{translate("login_here")}
|
|
|
+ .container-custom-sm.mx-auto
|
|
|
+ .card
|
|
|
+ form(
|
|
|
+ data-ol-async-form,
|
|
|
+ name="passwordResetForm",
|
|
|
+ action="/user/password/set",
|
|
|
+ method="POST",
|
|
|
+ data-ol-hide-on-error="token-expired"
|
|
|
+ )
|
|
|
+ div(
|
|
|
+ hidden
|
|
|
+ data-ol-sent
|
|
|
+ )
|
|
|
+ h3.mt-0.mb-2 #{translate("password_updated")}
|
|
|
+ p.mb-4 #{translate("your_password_has_been_successfully_changed")}.
|
|
|
+ a(href='/login') #{translate("log_in_now")}
|
|
|
+
|
|
|
+ div(data-ol-not-sent)
|
|
|
+ h3.mt-0.mb-2 #{translate("reset_your_password")}
|
|
|
+ p(data-ol-hide-on-error-message="token-expired") #{translate("create_a_new_password_for_your_account")}.
|
|
|
+ +formMessages()
|
|
|
|
|
|
- div(data-ol-not-sent)
|
|
|
- +formMessages()
|
|
|
+ +customFormMessage('token-expired', 'danger')
|
|
|
+ | #{translate('password_reset_token_expired')}
|
|
|
+ br
|
|
|
+ a(href="/user/password/reset")
|
|
|
+ | #{translate('request_new_password_reset_email')}
|
|
|
|
|
|
- +customFormMessage('token-expired', 'danger')
|
|
|
- | #{translate('password_reset_token_expired')}
|
|
|
- br
|
|
|
- a(href="/user/password/reset")
|
|
|
- | #{translate('request_new_password_reset_email')}
|
|
|
+ input(type="hidden", name="_csrf", value=csrfToken)
|
|
|
+ input(type="hidden", name="email", value=email)
|
|
|
|
|
|
- +customFormMessage('invalid-password', 'danger')
|
|
|
- | #{translate('invalid_password')}
|
|
|
+ .form-group
|
|
|
+ label(for='passwordField', data-ol-hide-on-error-message="token-expired") #{translate("new_password")}
|
|
|
+ input.form-control#passwordField(
|
|
|
+ type='password',
|
|
|
+ name='password',
|
|
|
+ placeholder=translate("enter_your_new_password"),
|
|
|
+ autocomplete="new-password",
|
|
|
+ autofocus,
|
|
|
+ required,
|
|
|
+ minlength=settings.passwordStrengthOptions.length.min
|
|
|
+ )
|
|
|
|
|
|
- +customFormMessage('password-must-be-different', 'danger')
|
|
|
- | #{translate('password_change_password_must_be_different')}
|
|
|
+ +customValidationMessage('invalid-password')
|
|
|
+ | #{translate('invalid_password')}
|
|
|
|
|
|
- input(type="hidden", name="_csrf", value=csrfToken)
|
|
|
- input(type="hidden", name="email", value=email)
|
|
|
+ +customValidationMessage('password-must-be-different')
|
|
|
+ | #{translate('password_cant_be_the_same_as_current_one')}.
|
|
|
|
|
|
- .form-group
|
|
|
- input.form-control#passwordField(
|
|
|
- type='password',
|
|
|
- name='password',
|
|
|
- placeholder='new password',
|
|
|
- autocomplete="new-password",
|
|
|
- autofocus,
|
|
|
- required,
|
|
|
- minlength=settings.passwordStrengthOptions.length.min
|
|
|
- )
|
|
|
- input(
|
|
|
- type="hidden",
|
|
|
- name="passwordResetToken",
|
|
|
- value=passwordResetToken
|
|
|
- )
|
|
|
- .actions
|
|
|
- button.btn.btn-primary(
|
|
|
- type='submit',
|
|
|
- data-ol-disabled-inflight
|
|
|
- aria-label=translate('set_new_password')
|
|
|
- )
|
|
|
- span(data-ol-inflight="idle")
|
|
|
- | #{translate('set_new_password')}
|
|
|
- span(hidden data-ol-inflight="pending")
|
|
|
- | #{translate('set_new_password')}…
|
|
|
+ +customValidationMessage('password-must-be-strong')
|
|
|
+ | !{translate('password_was_detected_on_a_public_list_of_known_compromised_passwords', {}, [{name: 'a', attrs: {href: 'https://haveibeenpwned.com', rel: 'noopener noreferrer', target: '_blank'}}])}.
|
|
|
+ | #{translate('use_a_different_password')}.
|
|
|
+
|
|
|
+ input(
|
|
|
+ type="hidden",
|
|
|
+ name="passwordResetToken",
|
|
|
+ value=passwordResetToken
|
|
|
+ )
|
|
|
+ div(data-ol-hide-on-error-message="token-expired")
|
|
|
+ div #{translate('in_order_to_have_a_secure_account_make_sure_your_password')}
|
|
|
+ ul.mb-4.ps-4
|
|
|
+ li #{translate('is_longer_than_n_characters', {n: 6})}
|
|
|
+ li #{translate('does_not_contain_or_significantly_match_your_email')}
|
|
|
+ li !{translate('is_not_a_common_or_obvious_password_as_defined_by_the_have_i_been_pwned_database', {}, [{name: 'a', attrs: {href: 'https://haveibeenpwned.com', rel: 'noopener noreferrer', target: '_blank'}}])}
|
|
|
+ .actions
|
|
|
+ button.btn.btn-primary.w-100(
|
|
|
+ type='submit',
|
|
|
+ data-ol-disabled-inflight
|
|
|
+ aria-label=translate('set_new_password')
|
|
|
+ )
|
|
|
+ span(data-ol-inflight="idle")
|
|
|
+ | #{translate('set_new_password')}
|
|
|
+ span(hidden data-ol-inflight="pending")
|
|
|
+ | #{translate('set_new_password')}…
|