Regarde d'abord dans CASAccount puis dans OldCASAccount pour la connexion vieilleux
This commit is contained in:
parent
ef08eab248
commit
830309225a
1 changed files with 19 additions and 6 deletions
|
@ -73,6 +73,14 @@ class ENSCASBackend:
|
||||||
i += 1
|
i += 1
|
||||||
return radical + str(i)
|
return radical + str(i)
|
||||||
|
|
||||||
|
def create_user(self, username, attributes):
|
||||||
|
"""Create a CAS user, base method that can be overrided to add more
|
||||||
|
information.
|
||||||
|
"""
|
||||||
|
|
||||||
|
email = attributes.get("email")
|
||||||
|
return UserModel.objects.create_user(username=username, email=email)
|
||||||
|
|
||||||
def _get_or_create(self, cas_login, attributes):
|
def _get_or_create(self, cas_login, attributes):
|
||||||
"""Handles account retrieval, creation and invalidation as described above.
|
"""Handles account retrieval, creation and invalidation as described above.
|
||||||
|
|
||||||
|
@ -82,7 +90,6 @@ class ENSCASBackend:
|
||||||
- If a matching CAS account exists, retrieve it.
|
- If a matching CAS account exists, retrieve it.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
email = attributes.get("email")
|
|
||||||
entrance_year = parse_entrance_year(attributes.get("homeDirectory"))
|
entrance_year = parse_entrance_year(attributes.get("homeDirectory"))
|
||||||
if entrance_year is None:
|
if entrance_year is None:
|
||||||
raise ENSCASError("Entrance year not available")
|
raise ENSCASError("Entrance year not available")
|
||||||
|
@ -103,7 +110,7 @@ class ENSCASBackend:
|
||||||
|
|
||||||
if user is None:
|
if user is None:
|
||||||
username = self.get_free_username(cas_login, attributes)
|
username = self.get_free_username(cas_login, attributes)
|
||||||
user = UserModel.objects.create_user(username=username, email=email)
|
user = self.create_user(username, attributes)
|
||||||
CASAccount.objects.create(
|
CASAccount.objects.create(
|
||||||
user=user, entrance_year=entrance_year, cas_login=cas_login
|
user=user, entrance_year=entrance_year, cas_login=cas_login
|
||||||
)
|
)
|
||||||
|
@ -130,10 +137,16 @@ class OldCASBackend:
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
old_cas_acc = OldCASAccount.objects.get(
|
try:
|
||||||
cas_login=cas_login, entrance_year=entrance_year
|
cas_acc = CASAccount.objects.get(
|
||||||
)
|
cas_login=cas_login, entrance_year=entrance_year
|
||||||
user = old_cas_acc.user
|
)
|
||||||
|
user = cas_acc.user
|
||||||
|
except CASAccount.DoesNotExist:
|
||||||
|
old_cas_acc = OldCASAccount.objects.get(
|
||||||
|
cas_login=cas_login, entrance_year=entrance_year
|
||||||
|
)
|
||||||
|
user = old_cas_acc.user
|
||||||
except OldCASAccount.DoesNotExist:
|
except OldCASAccount.DoesNotExist:
|
||||||
# As in Django's ModelBackend, we run the password hasher once
|
# As in Django's ModelBackend, we run the password hasher once
|
||||||
# to mitigate timing attacks
|
# to mitigate timing attacks
|
||||||
|
|
Loading…
Reference in a new issue