mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-16 01:27:03 +02:00
updated logic in oidc backend authenticate to not override with blank first_name/last_name
This commit is contained in:
parent
270e910520
commit
fd19726a30
2 changed files with 14 additions and 5 deletions
|
@ -46,8 +46,19 @@ class OpenIdConnectBackend(ModelBackend):
|
|||
# defaults _will_ be updated, these are not fallbacks
|
||||
"defaults": openid_data,
|
||||
}
|
||||
user, created = UserModel.objects.update_or_create(**args)
|
||||
if created:
|
||||
|
||||
user, created = UserModel.objects.get_or_create(**args)
|
||||
|
||||
if not created:
|
||||
# User already exists, update other fields without overwriting first_name and last_name
|
||||
# overwrite first_name and last_name if not empty string
|
||||
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:
|
||||
# If user is created, configure the user
|
||||
user = self.configure_user(user, **kwargs)
|
||||
else:
|
||||
try:
|
||||
|
|
|
@ -83,9 +83,7 @@ def login_callback(request):
|
|||
user_in_db = User.objects.get(username=userinfo["sub"])
|
||||
|
||||
if user_in_db:
|
||||
logger.info(f"This user exists in the DB (before authenticate): {user_in_db.first_name}")
|
||||
userinfo["given_name"] = user_in_db.first_name
|
||||
userinfo["family_name"] = user_in_db.last_name
|
||||
logger.info(f"This user exists in the DB (before authenticate): {user_in_db.first_name} {user_in_db.last_name}")
|
||||
except:
|
||||
pass
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue