summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshanghui <shangdahao@gmail.com>2017-11-08 17:21:30 +0800
committerTim Graham <timograham@gmail.com>2017-11-08 09:39:12 -0500
commitebb998976e2889c669972ed3d1b372cc6a2b5229 (patch)
treea757d4085c1e6f5e3307a644306c587a31561071
parent359370a8b8ca0efe99b1d4630b291ec060b69225 (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.py8
-rw-r--r--tests/admin_views/test_forms.py17
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.'])