mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-12 03:48:56 +00:00
store sso provider in user metadata
This commit is contained in:
parent
922c8ac758
commit
33d2a2dbc3
1 changed files with 10 additions and 0 deletions
|
|
@ -12,6 +12,7 @@ from typing import List, Optional
|
|||
|
||||
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
||||
from fastapi.responses import RedirectResponse
|
||||
from fastapi_sso.sso.base import OpenID
|
||||
|
||||
import litellm
|
||||
from litellm._logging import verbose_proxy_logger
|
||||
|
|
@ -498,6 +499,7 @@ async def auth_callback(request: Request):
|
|||
else:
|
||||
# user not in DB, insert User into LiteLLM DB
|
||||
user_role = await insert_sso_user(
|
||||
result_openid=result,
|
||||
user_defined_values=user_defined_values,
|
||||
)
|
||||
except Exception as e:
|
||||
|
|
@ -575,10 +577,15 @@ async def auth_callback(request: Request):
|
|||
|
||||
|
||||
async def insert_sso_user(
|
||||
result_openid: Optional[OpenID],
|
||||
user_defined_values: Optional[SSOUserDefinedValues] = None,
|
||||
) -> str:
|
||||
"""
|
||||
Helper function to create a New User in LiteLLM DB after a successful SSO login
|
||||
|
||||
Args:
|
||||
result_openid (OpenID): User information in OpenID format if the login was successful.
|
||||
user_defined_values (Optional[SSOUserDefinedValues], optional): LiteLLM SSOValues / fields that were read
|
||||
"""
|
||||
verbose_proxy_logger.debug(
|
||||
f"Inserting SSO user into DB. User values: {user_defined_values}"
|
||||
|
|
@ -610,6 +617,9 @@ async def insert_sso_user(
|
|||
budget_duration=user_defined_values["budget_duration"],
|
||||
)
|
||||
|
||||
if result_openid:
|
||||
new_user_request.metadata = {"user_identity_provider": result_openid.provider}
|
||||
|
||||
await new_user(data=new_user_request, user_api_key_dict=UserAPIKeyAuth())
|
||||
|
||||
return user_defined_values["user_role"] or LitellmUserRoles.INTERNAL_USER_VIEW_ONLY
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue