diff options
| author | shanghui <shangdahao@gmail.com> | 2017-11-08 17:21:30 +0800 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-11-08 09:39:12 -0500 |
| commit | ebb998976e2889c669972ed3d1b372cc6a2b5229 (patch) | |
| tree | a757d4085c1e6f5e3307a644306c587a31561071 | |
| parent | 359370a8b8ca0efe99b1d4630b291ec060b69225 (diff) | |
Fixed #28751 -- Corrected the error message for inactive users in AdminAuthenticationForm.
Thanks SeungWon Kang for the report and Tim Graham for the review.
| -rw-r--r-- | django/contrib/admin/forms.py | 8 | ||||
| -rw-r--r-- | tests/admin_views/test_forms.py | 17 |
2 files changed, 22 insertions, 3 deletions
diff --git a/django/contrib/admin/forms.py b/django/contrib/admin/forms.py index b1f3bbe14d..6a641c9611 100644 --- a/django/contrib/admin/forms.py +++ b/django/contrib/admin/forms.py @@ -7,16 +7,18 @@ class AdminAuthenticationForm(AuthenticationForm): """ A custom authentication form used in the admin app. """ - error_messages = { + error_messages = dict(AuthenticationForm.error_messages) + error_messages.update({ 'invalid_login': _( "Please enter the correct %(username)s and password for a staff " "account. Note that both fields may be case-sensitive." ), - } + }) required_css_class = 'required' def confirm_login_allowed(self, user): - if not user.is_active or not user.is_staff: + super().confirm_login_allowed(user) + if not user.is_staff: raise forms.ValidationError( self.error_messages['invalid_login'], code='invalid_login', diff --git a/tests/admin_views/test_forms.py b/tests/admin_views/test_forms.py new file mode 100644 index 0000000000..8c58fe7eae --- /dev/null +++ b/tests/admin_views/test_forms.py @@ -0,0 +1,17 @@ +from django.contrib.admin.forms import AdminAuthenticationForm +from django.contrib.auth.models import User +from django.test import TestCase + + +class AdminAuthenticationFormTests(TestCase): + @classmethod + def setUpTestData(cls): + User.objects.create_user(username='inactive', password='password', is_active=False) + + def test_inactive_user(self): + data = { + 'username': 'inactive', + 'password': 'password', + } + form = AdminAuthenticationForm(None, data) + self.assertEqual(form.non_field_errors(), ['This account is inactive.']) |
