reset-password.twig 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. {% extends 'base.twig' %}
  2. {% block navbar %}{% endblock %}
  3. {% block content %}
  4. <div class="row mb-4" style="margin-top: 60px">
  5. <div class="col-12 col-md-7 col-lg-6 col-xl-5 ms-auto me-auto">
  6. <div class="card">
  7. <div class="card-header d-flex align-items-center">
  8. <i class="bi bi-person-fill me-2"></i> {{ lang.login.reset_password }}
  9. <div class="ms-auto form-check form-switch my-auto d-flex align-items-center">
  10. <label class="form-check-label"><i class="bi bi-moon-fill"></i></label>
  11. <input class="form-check-input ms-2" type="checkbox" id="dark-mode-toggle">
  12. </div>
  13. </div>
  14. <div class="card-body">
  15. <div class="text-center mailcow-logo mb-4">
  16. <img class="main-logo" src="{{ logo|default('/img/cow_mailcow.svg') }}" alt="mailcow">
  17. <img class="main-logo-dark" src="{{ logo_dark|default('/img/cow_mailcow.svg') }}" alt="mailcow-logo-dark">
  18. </div>
  19. <legend>{{ ui_texts.main_name|raw }}</legend><hr />
  20. {% if is_reset_token_valid %}
  21. <form method="post" autofill="off">
  22. <input type="hidden" name="token" value="{{ reset_token }}" />
  23. <input type="password" autocorrect="off" autocapitalize="none" class="form-control mb-2" name="new_password" placeholder="{{ lang.login.new_password }}" />
  24. <input type="password" autocorrect="off" autocapitalize="none" class="form-control mb-2" name="new_password2" placeholder="{{ lang.login.new_password_confirm }}" />
  25. <small id="mismatch_alert" class="text-danger d-none">{{ lang.login.password_mismatch }}</small>
  26. <div class="d-flex justify-content-end mt-4" style="position: relative">
  27. <button type="submit" class="btn btn-xs-lg d-block d-sm-inline btn-success" name="pw_reset">{{ lang.login.reset_password }}</button>
  28. </div>
  29. </form>
  30. {% elseif reset_token is null %}
  31. <form method="post" autofill="off">
  32. <input type="text" autocorrect="off" autocapitalize="none" class="form-control mb-2" name="username" placeholder="{{ lang.login.username }}" />
  33. <div class="d-flex justify-content-end mt-4" style="position: relative">
  34. <button type="submit" class="btn btn-xs-lg d-block d-sm-inline btn-success" name="pw_reset_request">{{ lang.login.request_reset_password }}</button>
  35. </div>
  36. </form>
  37. {% else %}
  38. <p class="text-center">{{ lang.login.invalid_pass_reset_token|raw }}</p>
  39. <a href="/">{{ lang.login.back_to_mailcow }}</a>
  40. {% endif %}
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <script type='text/javascript'>
  46. var csrf_token = '{{ csrf_token }}';
  47. var mailcow_cc_username = '{{ mailcow_cc_username }}';
  48. </script>
  49. {% endblock %}