From 84a2a45d49307b533f16eeb2901b368a65ad7453 Mon Sep 17 00:00:00 2001 From: Coen van der Kamp Date: Sat, 17 Mar 2018 21:39:27 +0100 Subject: [PATCH] Add invalid password reset link error message --- CHANGELOG.txt | 1 + .../wagtailadmin/scss/layouts/login.scss | 4 +++- .../wagtailadmin/account/change_password.html | 2 +- .../account/password_reset/confirm.html | 24 ++++++++++++++++--- .../account/password_reset/form.html | 2 +- .../admin/tests/test_account_management.py | 19 +++++++++++++++ 6 files changed, 46 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index bf9697df7..6a3bc0765 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -39,6 +39,7 @@ Changelog * Fix: Draftail editor no longer crashes after deleting image/embed using DEL key (Thibaud Colas) * Fix: Breadcrumb navigation now respects custom `get_admin_display_title` methods (Arthur Holzner, Wietze Helmantel, Matt Westcott) * Fix: Inconsistent order of heading features when adding h1, h5 or h6 as default feature for Hallo RichText editor (Loic Teixeira) + * Fix: Add invalid password reset link error message (Coen van der Kamp) 2.0.1 (04.04.2018) diff --git a/wagtail/admin/static_src/wagtailadmin/scss/layouts/login.scss b/wagtail/admin/static_src/wagtailadmin/scss/layouts/login.scss index 8028fcbec..e44ac995c 100644 --- a/wagtail/admin/static_src/wagtailadmin/scss/layouts/login.scss +++ b/wagtail/admin/static_src/wagtailadmin/scss/layouts/login.scss @@ -54,7 +54,9 @@ label { color: $color-white; } -.button { +.button, +a.button { + line-height: 1.2em; font-size: 1.5em; padding: 1.1em 2.4em; height: 3.5em; diff --git a/wagtail/admin/templates/wagtailadmin/account/change_password.html b/wagtail/admin/templates/wagtailadmin/account/change_password.html index 5edff8e36..6e5fba614 100644 --- a/wagtail/admin/templates/wagtailadmin/account/change_password.html +++ b/wagtail/admin/templates/wagtailadmin/account/change_password.html @@ -15,7 +15,7 @@ {% include "wagtailadmin/shared/field_as_li.html" with field=field %} {% endfor %} - + {% else %}

{% trans "Your password can't be changed here. Please contact a site administrator." %}

diff --git a/wagtail/admin/templates/wagtailadmin/account/password_reset/confirm.html b/wagtail/admin/templates/wagtailadmin/account/password_reset/confirm.html index 7ab852dee..ea7630894 100644 --- a/wagtail/admin/templates/wagtailadmin/account/password_reset/confirm.html +++ b/wagtail/admin/templates/wagtailadmin/account/password_reset/confirm.html @@ -1,6 +1,12 @@ {% extends "wagtailadmin/admin_base.html" %} {% load staticfiles i18n %} -{% block titletag %}{% trans "Set your new password" %}{% endblock %} +{% block titletag %} + {% if validlink %} + {% trans "Set your new password" %} + {% else %} + {% trans "Invalid password reset link" %} + {% endif %} +{% endblock %} {% block bodyclass %}login{% endblock %} {% block extra_css %} @@ -11,7 +17,7 @@ {% block furniture %}
- + {% if validlink %}
{% csrf_token %}

{% trans "Set your new password" %}

@@ -46,9 +52,21 @@
  • - +
  • + {% else %} +

    {% trans "Invalid password reset link" %}

    +
    + +
    + {% trans 'Request a new password reset' %} + {% endif %} + {% endblock %} diff --git a/wagtail/admin/templates/wagtailadmin/account/password_reset/form.html b/wagtail/admin/templates/wagtailadmin/account/password_reset/form.html index 811035e2f..261bcfe84 100644 --- a/wagtail/admin/templates/wagtailadmin/account/password_reset/form.html +++ b/wagtail/admin/templates/wagtailadmin/account/password_reset/form.html @@ -40,7 +40,7 @@
  • - +
  • diff --git a/wagtail/admin/tests/test_account_management.py b/wagtail/admin/tests/test_account_management.py index 5f7593f15..ceb6a8201 100644 --- a/wagtail/admin/tests/test_account_management.py +++ b/wagtail/admin/tests/test_account_management.py @@ -557,6 +557,25 @@ class TestPasswordReset(TestCase, WagtailTestUtils): # Create url_args self.url_kwargs = dict(uidb64=self.password_reset_uid, token=self.password_reset_token) + def test_password_reset_confirm_view_invalid_link(self): + """ + This tests that the password reset view shows an error message if the link is invalid + """ + self.setup_password_reset_confirm_tests() + + # Create invalid url_args + self.url_kwargs = dict(uidb64=self.password_reset_uid, token="invalid-token") + + # Get password reset confirm page + response = self.client.get(reverse('wagtailadmin_password_reset_confirm', kwargs=self.url_kwargs)) + + # Check that the user received a password confirm done page + self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, 'wagtailadmin/account/password_reset/confirm.html') + self.assertFalse(response.context['validlink']) + self.assertContains(response, 'The password reset link was invalid, possibly because it has already been used.') + self.assertContains(response, 'Request a new password reset') + def test_password_reset_confirm_view(self): """ This tests that the password reset confirm view returns a password reset confirm page