Fixed #16837 -- Improved error message for admin login.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16872 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Paul McMillan 2011-09-22 04:16:21 +00:00
parent 5a01324f20
commit 0781ed8ec8
2 changed files with 11 additions and 8 deletions

View File

@ -6,8 +6,8 @@ from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy, ugettext as _ from django.utils.translation import ugettext_lazy, ugettext as _
ERROR_MESSAGE = ugettext_lazy("Please enter a correct username and password. " ERROR_MESSAGE = ugettext_lazy("Please enter the correct username and password "
"Note that both fields are case-sensitive.") "for a staff account. Note that both fields are case-sensitive.")
class AdminAuthenticationForm(AuthenticationForm): class AdminAuthenticationForm(AuthenticationForm):
""" """

View File

@ -40,6 +40,9 @@ from models import (Article, BarAccount, CustomArticle, EmptyModel,
RowLevelChangePermissionModel, Paper, CoverLetter, Story, OtherStory, RowLevelChangePermissionModel, Paper, CoverLetter, Story, OtherStory,
ComplexSortedPerson, Parent, Child) ComplexSortedPerson, Parent, Child)
ERROR_MESSAGE = "Please enter the correct username and password \
for a staff account. Note that both fields are case-sensitive."
class AdminViewBasicTest(TestCase): class AdminViewBasicTest(TestCase):
fixtures = ['admin-views-users.xml', 'admin-views-colors.xml', fixtures = ['admin-views-users.xml', 'admin-views-colors.xml',
@ -761,12 +764,12 @@ class AdminViewPermissionsTest(TestCase):
self.assertContains(login, "Your e-mail address is not your username") self.assertContains(login, "Your e-mail address is not your username")
# only correct passwords get a username hint # only correct passwords get a username hint
login = self.client.post('/test_admin/admin/', self.super_email_bad_login) login = self.client.post('/test_admin/admin/', self.super_email_bad_login)
self.assertContains(login, "Please enter a correct username and password.") self.assertContains(login, ERROR_MESSAGE)
new_user = User(username='jondoe', password='secret', email='super@example.com') new_user = User(username='jondoe', password='secret', email='super@example.com')
new_user.save() new_user.save()
# check to ensure if there are multiple e-mail addresses a user doesn't get a 500 # check to ensure if there are multiple e-mail addresses a user doesn't get a 500
login = self.client.post('/test_admin/admin/', self.super_email_login) login = self.client.post('/test_admin/admin/', self.super_email_login)
self.assertContains(login, "Please enter a correct username and password.") self.assertContains(login, ERROR_MESSAGE)
# Add User # Add User
request = self.client.get('/test_admin/admin/') request = self.client.get('/test_admin/admin/')
@ -797,7 +800,7 @@ class AdminViewPermissionsTest(TestCase):
self.assertEqual(request.status_code, 200) self.assertEqual(request.status_code, 200)
login = self.client.post('/test_admin/admin/', self.joepublic_login) login = self.client.post('/test_admin/admin/', self.joepublic_login)
self.assertEqual(login.status_code, 200) self.assertEqual(login.status_code, 200)
self.assertContains(login, "Please enter a correct username and password.") self.assertContains(login, ERROR_MESSAGE)
# Requests without username should not return 500 errors. # Requests without username should not return 500 errors.
request = self.client.get('/test_admin/admin/') request = self.client.get('/test_admin/admin/')
@ -1360,12 +1363,12 @@ class SecureViewTests(TestCase):
self.assertContains(login, "Your e-mail address is not your username") self.assertContains(login, "Your e-mail address is not your username")
# only correct passwords get a username hint # only correct passwords get a username hint
login = self.client.post('/test_admin/admin/secure-view/', self.super_email_bad_login) login = self.client.post('/test_admin/admin/secure-view/', self.super_email_bad_login)
self.assertContains(login, "Please enter a correct username and password.") self.assertContains(login, ERROR_MESSAGE)
new_user = User(username='jondoe', password='secret', email='super@example.com') new_user = User(username='jondoe', password='secret', email='super@example.com')
new_user.save() new_user.save()
# check to ensure if there are multiple e-mail addresses a user doesn't get a 500 # check to ensure if there are multiple e-mail addresses a user doesn't get a 500
login = self.client.post('/test_admin/admin/secure-view/', self.super_email_login) login = self.client.post('/test_admin/admin/secure-view/', self.super_email_login)
self.assertContains(login, "Please enter a correct username and password.") self.assertContains(login, ERROR_MESSAGE)
# Add User # Add User
request = self.client.get('/test_admin/admin/secure-view/') request = self.client.get('/test_admin/admin/secure-view/')
@ -1397,7 +1400,7 @@ class SecureViewTests(TestCase):
login = self.client.post('/test_admin/admin/secure-view/', self.joepublic_login) login = self.client.post('/test_admin/admin/secure-view/', self.joepublic_login)
self.assertEqual(login.status_code, 200) self.assertEqual(login.status_code, 200)
# Login.context is a list of context dicts we just need to check the first one. # Login.context is a list of context dicts we just need to check the first one.
self.assertContains(login, "Please enter a correct username and password.") self.assertContains(login, ERROR_MESSAGE)
# 8509 - if a normal user is already logged in, it is possible # 8509 - if a normal user is already logged in, it is possible
# to change user into the superuser without error # to change user into the superuser without error