Revision 792fad7a
b/snf-astakos-app/astakos/im/auth_backends.py | ||
---|---|---|
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 | 34 |
from django.contrib.auth.backends import ModelBackend |
35 |
from django.core.validators import email_re |
|
36 | 35 |
|
37 | 36 |
from astakos.im.models import AstakosUser |
38 | 37 |
from astakos.im.settings import LOGGING_LEVEL |
... | ... | |
72 | 71 |
Used from ``astakos.im.forms.LoginForm`` to authenticate. |
73 | 72 |
""" |
74 | 73 |
def authenticate(self, username=None, password=None): |
75 |
#If username is an email address, then try to pull it up |
|
76 |
if email_re.search(username): |
|
77 |
users = AstakosUser.objects.filter(email__iexact=username) |
|
78 |
if not users: |
|
79 |
return None |
|
80 |
for user in users: |
|
81 |
if user.check_password(password): |
|
82 |
return user |
|
83 |
else: |
|
84 |
#We have a non-email address username we |
|
85 |
#should try username |
|
86 |
try: |
|
87 |
user = AstakosUser.objects.get(username=username) |
|
88 |
except AstakosUser.DoesNotExist: |
|
89 |
return None |
|
74 |
# First check whether a user having this email exists |
|
75 |
users = AstakosUser.objects.filter(email__iexact=username) |
|
76 |
for user in users: |
|
77 |
if user.check_password(password): |
|
78 |
return user |
|
79 |
|
|
80 |
# Since no user has been found by email try with the username |
|
81 |
try: |
|
82 |
user = AstakosUser.objects.get(username=username) |
|
83 |
except AstakosUser.DoesNotExist: |
|
84 |
return None |
|
85 |
|
|
90 | 86 |
if user.check_password(password): |
91 | 87 |
return user |
92 | 88 |
else: |
Also available in: Unified diff