Fixed bug in staff_member_required decorator for the case where users share an email address.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@7535 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Luke Plant 2008-05-15 22:10:53 +00:00
parent 96f0371772
commit 7e4718f8d5
1 changed files with 7 additions and 1 deletions

View File

@ -85,7 +85,13 @@ def staff_member_required(view_func):
if '@' in username: if '@' in username:
# Mistakenly entered e-mail address instead of username? Look it up. # Mistakenly entered e-mail address instead of username? Look it up.
try: try:
user = User.objects.get(email=username) users = list(User.objects.filter(email=username))
if len(users) == 1:
user = users[0]
else:
# Either we cannot find the user, or if more than 1
# we cannot guess which user is the correct one.
raise User.DoesNotExist()
except User.DoesNotExist: except User.DoesNotExist:
message = _("Usernames cannot contain the '@' character.") message = _("Usernames cannot contain the '@' character.")
else: else: