refactored authenticate for readability

This commit is contained in:
David Kennedy 2023-12-11 19:08:34 -05:00
parent fd19726a30
commit e4803d6afd
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B

View file

@ -50,13 +50,8 @@ class OpenIdConnectBackend(ModelBackend):
user, created = UserModel.objects.get_or_create(**args) user, created = UserModel.objects.get_or_create(**args)
if not created: if not created:
# User already exists, update other fields without overwriting first_name and last_name # If user exists, update existing user
# overwrite first_name and last_name if not empty string self.update_existing_user(user, args["defaults"])
for key, value in args["defaults"].items():
# Check if the key is not first_name or last_name or value is not empty string
if key not in ['first_name', 'last_name'] or value != "":
setattr(user, key, value)
user.save()
else: else:
# If user is created, configure the user # If user is created, configure the user
user = self.configure_user(user, **kwargs) user = self.configure_user(user, **kwargs)
@ -69,6 +64,15 @@ class OpenIdConnectBackend(ModelBackend):
user.on_each_login() user.on_each_login()
return user return user
def update_existing_user(self, user, kwargs):
# Update other fields without overwriting first_name and last_name.
# Overwrite first_name and last_name if not empty string
for key, value in kwargs.items():
# Check if the key is not first_name or last_name or value is not empty string
if key not in ['first_name', 'last_name'] or value:
setattr(user, key, value)
user.save()
def clean_username(self, username): def clean_username(self, username):
""" """
Performs any cleaning on the "username" prior to using it to get or Performs any cleaning on the "username" prior to using it to get or