diff --git a/authens/backends.py b/authens/backends.py index c077716..f1f0ba8 100644 --- a/authens/backends.py +++ b/authens/backends.py @@ -73,6 +73,14 @@ class ENSCASBackend: i += 1 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): """Handles account retrieval, creation and invalidation as described above. @@ -82,7 +90,6 @@ class ENSCASBackend: - If a matching CAS account exists, retrieve it. """ - email = attributes.get("email") entrance_year = parse_entrance_year(attributes.get("homeDirectory")) if entrance_year is None: raise ENSCASError("Entrance year not available") @@ -103,7 +110,7 @@ class ENSCASBackend: if user is None: 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( user=user, entrance_year=entrance_year, cas_login=cas_login )