setPasswordCiam.pug 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. extends ../layout-website-redesign
  2. include ../_mixins/ciam_mixins
  3. block vars
  4. - var suppressNavbar = true
  5. - var suppressFooter = true
  6. - var suppressSkipToContent = true
  7. - isWebsiteRedesign = true
  8. block content
  9. .ciam-enabled.ciam-layout.ciam-password-set
  10. +ciamLogo
  11. .ciam-container
  12. main#main-content.ciam-card
  13. form(
  14. name='passwordResetForm'
  15. data-ciam-form
  16. data-ol-async-form
  17. action='/user/password/set'
  18. method='POST'
  19. data-ol-hide-on-error='token-expired'
  20. )
  21. div(hidden data-ol-sent)
  22. h1 #{translate("your_password_has_been_reset")}
  23. p.intro-p #{translate("you_can_now_sign_in_with_new_password")}
  24. a.btn.btn-ds.btn-lg.btn-primary.w-100(href='/login') #{translate("go_to_sign_in")}
  25. div(data-ol-not-sent)
  26. h1 #{translate("choose_a_new_password")}
  27. +formMessagesNewStyle
  28. +ciamCustomFormDangerMessage('password-contains-email')
  29. | #{translate('invalid_password_contains_email')}
  30. | #{translate('use_a_different_password')}.
  31. +ciamCustomFormDangerMessage('password-too-similar')
  32. | #{translate('invalid_password_too_similar')}
  33. | #{translate('use_a_different_password')}.
  34. +ciamCustomFormDangerMessage('token-expired')
  35. | #{translate('password_reset_token_expired')}
  36. br
  37. a(href='/user/password/reset')
  38. | #{translate('request_new_password_reset_email')}
  39. +ciamCustomFormDangerMessage('invalid-password')
  40. | #{translate('invalid_password')}.
  41. +ciamCustomFormDangerMessage('password-must-be-different')
  42. | #{translate('password_cant_be_the_same_as_current_one')}
  43. +ciamCustomFormDangerMessage('password-must-be-strong')
  44. | !{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'}}])}
  45. | #{translate('use_a_different_password')}.
  46. input(name='_csrf' type='hidden' value=csrfToken)
  47. input(
  48. name='email'
  49. type='text'
  50. hidden
  51. autocomplete='username'
  52. value=email
  53. )
  54. .form-group.form-group-ds
  55. label.form-label(
  56. for='passwordField'
  57. data-ol-hide-on-error-message='token-expired'
  58. ) #{translate("password")}
  59. .form-group-password
  60. .form-group-password-input
  61. .form-complex-input-container
  62. input#passwordField.form-control.form-control-ds.form-control-lg(
  63. name='password'
  64. type='password'
  65. autocomplete='new-password'
  66. autofocus
  67. required
  68. minlength=settings.passwordStrengthOptions.length.min
  69. data-ol-password-visibility-target
  70. )
  71. button.visibility-toggle(
  72. type='button'
  73. data-ol-password-visibility-toggle='visibilityOn'
  74. aria-controls='password'
  75. aria-label=translate('turn_on_password_visibility')
  76. )
  77. ph-eye.form-input-icon-ds
  78. button.visibility-toggle(
  79. type='button'
  80. data-ol-password-visibility-toggle='visibilityOff'
  81. aria-controls='password'
  82. aria-label=translate('turn_off_password_visibility')
  83. hidden
  84. )
  85. ph-eye-slash.form-input-icon-ds
  86. input(name='passwordResetToken' type='hidden' value=passwordResetToken)
  87. div(data-ol-hide-on-error-message='token-expired')
  88. p.password-policy #{translate('must_be_at_least_n_characters', {n: settings.passwordStrengthOptions.length.min})}
  89. .actions
  90. button.btn.btn-ds.btn-lg.btn-primary.w-100(
  91. type='submit'
  92. data-ol-disabled-inflight
  93. data-ol-spinner-inflight
  94. aria-label=translate('save_new_password')
  95. )
  96. +ciamButtonContentLoading(`${translate('processing')}…`)= translate('save_new_password')
  97. +ciamCardFooter(true)