setPassword.pug 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. extends ../layout-marketing
  2. block vars
  3. - bootstrap5PageStatus = 'disabled'
  4. block content
  5. main#main-content.content.content-alt
  6. .container-custom-sm.mx-auto
  7. .card
  8. form(
  9. name='passwordResetForm'
  10. data-ol-async-form
  11. action='/user/password/set'
  12. method='POST'
  13. data-ol-hide-on-error='token-expired'
  14. )
  15. div(hidden data-ol-sent)
  16. h3.mt-0.mb-2 #{translate("password_updated")}
  17. p.mb-4 #{translate("your_password_has_been_successfully_changed")}.
  18. a(href='/login') #{translate("log_in_now")}
  19. div(data-ol-not-sent)
  20. h3.mt-0.mb-2 #{translate("reset_your_password")}
  21. p(data-ol-hide-on-error-message='token-expired') #{translate("create_a_new_password_for_your_account")}.
  22. +formMessages
  23. +customFormMessage('password-contains-email', 'danger')
  24. | #{translate('invalid_password_contains_email')}.
  25. | #{translate('use_a_different_password')}.
  26. +customFormMessage('password-too-similar', 'danger')
  27. | #{translate('invalid_password_too_similar')}.
  28. | #{translate('use_a_different_password')}.
  29. +customFormMessage('token-expired', 'danger')
  30. | #{translate('password_reset_token_expired')}
  31. br
  32. a(href='/user/password/reset')
  33. | #{translate('request_new_password_reset_email')}
  34. input(name='_csrf' type='hidden' value=csrfToken)
  35. input(
  36. name='email'
  37. type='text'
  38. hidden
  39. autocomplete='username'
  40. value=email
  41. )
  42. .form-group
  43. label(
  44. for='passwordField'
  45. data-ol-hide-on-error-message='token-expired'
  46. ) #{translate("new_password")}
  47. input#passwordField.form-control(
  48. name='password'
  49. type='password'
  50. placeholder=translate('enter_your_new_password')
  51. autocomplete='new-password'
  52. autofocus
  53. required
  54. minlength=settings.passwordStrengthOptions.length.min
  55. )
  56. +customValidationMessage('invalid-password')
  57. | #{translate('invalid_password')}.
  58. +customValidationMessage('password-must-be-different')
  59. | #{translate('password_cant_be_the_same_as_current_one')}.
  60. +customValidationMessage('password-must-be-strong')
  61. | !{translate('password_was_detected_on_a_public_list_of_known_compromised_passwords', {}, [{name: 'a', attrs: {href: 'https://haveibeenpwned.com/passwords', rel: 'noopener noreferrer', target: '_blank'}}])}.
  62. | #{translate('use_a_different_password')}.
  63. input(name='passwordResetToken' type='hidden' value=passwordResetToken)
  64. div(data-ol-hide-on-error-message='token-expired')
  65. div #{translate('in_order_to_have_a_secure_account_make_sure_your_password')}
  66. ul.mb-4.ps-4
  67. li #{translate('is_longer_than_n_characters', {n: settings.passwordStrengthOptions.length.min})}
  68. li #{translate('does_not_contain_or_significantly_match_your_email')}
  69. li #{translate('is_not_used_on_any_other_website')}
  70. .actions
  71. button.btn.btn-primary.w-100(
  72. type='submit'
  73. data-ol-disabled-inflight
  74. aria-label=translate('set_new_password')
  75. )
  76. span(data-ol-inflight='idle')
  77. | #{translate('set_new_password')}
  78. span(hidden data-ol-inflight='pending')
  79. | #{translate('set_new_password')}…