mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-01 19:50:41 +02:00
refac
Co-Authored-By: Classic298 <27028174+Classic298@users.noreply.github.com>
This commit is contained in:
@@ -1978,14 +1978,18 @@ class OAuthManager:
|
||||
data={'role': determined_role, 'provider': provider},
|
||||
)
|
||||
|
||||
updated_fields = []
|
||||
|
||||
if auth_config.OAUTH_UPDATE_NAME_ON_LOGIN:
|
||||
username_claim = auth_config.OAUTH_USERNAME_CLAIM
|
||||
if username_claim:
|
||||
new_name = user_data.get(username_claim)
|
||||
if new_name and new_name != user.name:
|
||||
await Users.update_user_by_id(user.id, {'name': new_name}, db=db)
|
||||
user.name = new_name
|
||||
log.debug('Updated name for user %s', user.email)
|
||||
updated_user = await Users.update_user_by_id(user.id, {'name': new_name}, db=db)
|
||||
if updated_user:
|
||||
user = updated_user
|
||||
updated_fields.append('name')
|
||||
log.debug('Updated name for user %s', user.email)
|
||||
|
||||
if auth_config.OAUTH_UPDATE_EMAIL_ON_LOGIN:
|
||||
email_claim = auth_config.OAUTH_EMAIL_CLAIM
|
||||
@@ -1997,9 +2001,9 @@ class OAuthManager:
|
||||
log.error(
|
||||
f'Cannot update email to {new_email} for user {user.id} because it is already taken.'
|
||||
)
|
||||
else:
|
||||
await Auths.update_email_by_id(user.id, new_email.lower(), db=db)
|
||||
user.email = new_email.lower()
|
||||
elif await Auths.update_email_by_id(user.id, new_email.lower(), db=db):
|
||||
user = await Users.get_user_by_id(user.id, db=db) or user
|
||||
updated_fields.append('email')
|
||||
log.debug('Updated email for user %s', user.id)
|
||||
|
||||
# Update profile picture if enabled and different from current
|
||||
@@ -2014,8 +2018,23 @@ class OAuthManager:
|
||||
new_picture_url, token.get('access_token')
|
||||
)
|
||||
if processed_picture_url != user.profile_image_url:
|
||||
await Users.update_user_profile_image_url_by_id(user.id, processed_picture_url, db=db)
|
||||
log.debug('Updated profile picture for user %s', user.email)
|
||||
updated_user = await Users.update_user_profile_image_url_by_id(
|
||||
user.id, processed_picture_url, db=db
|
||||
)
|
||||
if updated_user:
|
||||
user = updated_user
|
||||
updated_fields.append('profile_image_url')
|
||||
log.debug('Updated profile picture for user %s', user.email)
|
||||
|
||||
if updated_fields:
|
||||
await publish_event(
|
||||
request,
|
||||
EVENTS.USER_UPDATED,
|
||||
actor=user,
|
||||
subject_id=user.id,
|
||||
source='oauth',
|
||||
data={'updated_fields': updated_fields, 'provider': provider},
|
||||
)
|
||||
else:
|
||||
# If the user does not exist, check if signups are enabled
|
||||
if auth_config.ENABLE_OAUTH_SIGNUP:
|
||||
|
||||
Reference in New Issue
Block a user