fix username claim

This commit is contained in:
Sergey Mihaylin 2024-06-28 17:08:32 +03:00
parent 0c3f9a16e3
commit 9f32e9ef60

View File

@ -1920,8 +1920,7 @@ async def oauth_callback(provider: str, request: Request, response: Response):
# If the user does not exist, check if signups are enabled # If the user does not exist, check if signups are enabled
if ENABLE_OAUTH_SIGNUP.value: if ENABLE_OAUTH_SIGNUP.value:
# Check if an existing user with the same email already exists # Check if an existing user with the same email already exists
email_claim = webui_app.state.config.OAUTH_USERNAME_CLAIM existing_user = Users.get_user_by_email(user_data.get("email", "").lower())
existing_user = Users.get_user_by_email(user_data.get(email_claim, "").lower())
if existing_user: if existing_user:
raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_TAKEN) raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_TAKEN)
@ -1946,12 +1945,13 @@ async def oauth_callback(provider: str, request: Request, response: Response):
picture_url = "" picture_url = ""
if not picture_url: if not picture_url:
picture_url = "/user.png" picture_url = "/user.png"
username_claim = webui_app.state.config.OAUTH_USERNAME_CLAIM
user = Auths.insert_new_auth( user = Auths.insert_new_auth(
email=email, email=email,
password=get_password_hash( password=get_password_hash(
str(uuid.uuid4()) str(uuid.uuid4())
), # Random password, not used ), # Random password, not used
name=user_data.get("name", "User"), name=user_data.get(username_claim, "User"),
profile_image_url=picture_url, profile_image_url=picture_url,
role=webui_app.state.config.DEFAULT_USER_ROLE, role=webui_app.state.config.DEFAULT_USER_ROLE,
oauth_sub=provider_sub, oauth_sub=provider_sub,