Ë
    tPêj§  ã                   óL   — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 dede	fd„Z
y	)
a¶  
Example Custom SSO Handler

Use this if you want to run custom code after litellm has retrieved information from your IDP (Identity Provider).

Flow:
- User lands on Admin UI
- LiteLLM redirects user to your SSO provider
- Your SSO provider redirects user back to LiteLLM
- LiteLLM has retrieved user information from your IDP
- Your custom SSO handler is called and returns an object of type SSOUserDefinedValues
- User signed in to UI
é    )ÚFinal)ÚOpenID)Úproxy_server)ÚLitellmUserRolesÚSSOUserDefinedValuesÚuserIDPInfoÚreturnc              ƒ   ór  K  — 	 | j                   €t        d| › �«      ‚t        j                  �2t        j                  j	                  | j                   ¬«      ƒ d {  –—† }t        g | j                   | j                  t        j                  j                  dd¬«      S 7 ŒA# t        $ r t        d«      ‚w xY w­w)Nz-No ID found for user. userIDPInfo.id is None )Úuser_idé
   Ú1d)Úmodelsr   Ú
user_emailÚ	user_roleÚ
max_budgetÚbudget_durationzFailed custom auth)ÚidÚ
ValueErrorr   Úprisma_clientÚget_datar   Úemailr   ÚINTERNAL_USERÚvalueÚ	Exception)r   Ú
_user_infos     ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/proxy/custom_sso.pyÚcustom_sso_handlerr      s°   è ø€ ð.Ø�>‰>Ð!ÜÐLÈ[ÈMÐZÓ[Ð[ô ×%Ñ%Ð1Ü&2×&@Ñ&@×&IÑ&IÐR]×R`ÑR`Ð&IÓ&a× aˆJä#ØØ—N‘NØ"×(Ñ(Ü&×4Ñ4×:Ñ:ØØ ô
ð 	
ð !bùô ò .ÜÐ,Ó-Ð-ð.üs0   ‚B7„AB ÁBÁA B ÂB7ÂB ÂB4Â4B7N)Ú__doc__Útypingr   Úfastapi_sso.sso.baser   Úlitellm.proxyr   Úlitellm.proxy._typesr   r   r   © ó    r   ú<module>r%      s,   ðñõ å 'å &ß Gð.¨&ð .Ð5Iô .r$   