
    k7i                         S SK r S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S S	K	Jr  S S
K	Jr   " S S\
5      rg)    N)Column)Integer)String)Text)
json_dumps)
json_loads)ClientMixin)list_to_scope)scope_to_listc                      \ rS rSr\" \" S5      SS9r\" \" S5      5      r\" \SSS9r	\" \SSS9r
\" S	\5      r\S
 5       r\S 5       rS r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r S r!S r"S r#S  r$S! r%S" r&S# r'S$ r(S%r)g&)'OAuth2ClientMixin   0   T)indexx   Fr   )nullabledefaultclient_metadatac                 j    [        U R                  U R                  U R                  U R                  S9$ )zImplementation for Client Info in OAuth 2.0 Dynamic Client
Registration Protocol via `Section 3.2.1`_.

.. _`Section 3.2.1`: https://tools.ietf.org/html/rfc7591#section-3.2.1
)	client_idclient_secretclient_id_issued_atclient_secret_expires_at)dictr   r   r   r   selfs    g/home/james-whalen/.local/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/client_mixin.pyclient_infoOAuth2ClientMixin.client_info   s3     nn,, $ 8 8%)%B%B	
 	
    c                     SU R                   ;   a  U R                   S   $ U R                  (       a%  [        U R                  5      nXR                   S'   U$ 0 $ Nr   )__dict___client_metadatar   )r   datas     r   r   !OAuth2ClientMixin.client_metadata$   sN    -==!233  d334D/3MM+,K	r    c                 `    [        U5      U l        SU R                  ;   a  U R                  S	 g g r"   )r   r$   r#   )r   values     r   set_client_metadata%OAuth2ClientMixin.set_client_metadata.   s-     *5 1-/0 .r    c                 :    U R                   R                  S/ 5      $ )Nredirect_urisr   getr   s    r   r,   OAuth2ClientMixin.redirect_uris3   s    ##''<<r    c                 :    U R                   R                  SS5      $ )Ntoken_endpoint_auth_methodclient_secret_basicr-   r   s    r   r1   ,OAuth2ClientMixin.token_endpoint_auth_method7   s!    ##''(*?
 	
r    c                 :    U R                   R                  S/ 5      $ )Ngrant_typesr-   r   s    r   r5   OAuth2ClientMixin.grant_types=   s    ##''r::r    c                 :    U R                   R                  S/ 5      $ )Nresponse_typesr-   r   s    r   r8    OAuth2ClientMixin.response_typesA   s    ##''(8"==r    c                 8    U R                   R                  S5      $ )Nclient_namer-   r   s    r   r;   OAuth2ClientMixin.client_nameE       ##''66r    c                 8    U R                   R                  S5      $ )N
client_urir-   r   s    r   r?   OAuth2ClientMixin.client_uriI       ##''55r    c                 8    U R                   R                  S5      $ )Nlogo_urir-   r   s    r   rC   OAuth2ClientMixin.logo_uriM       ##''
33r    c                 :    U R                   R                  SS5      $ )Nscope r-   r   s    r   rG   OAuth2ClientMixin.scopeQ   s    ##''44r    c                 :    U R                   R                  S/ 5      $ )Ncontactsr-   r   s    r   rK   OAuth2ClientMixin.contactsU   s    ##''
B77r    c                 8    U R                   R                  S5      $ )Ntos_urir-   r   s    r   rN   OAuth2ClientMixin.tos_uriY   s    ##''	22r    c                 8    U R                   R                  S5      $ )N
policy_urir-   r   s    r   rQ   OAuth2ClientMixin.policy_uri]   rA   r    c                 8    U R                   R                  S5      $ )Njwks_urir-   r   s    r   rT   OAuth2ClientMixin.jwks_uria   rE   r    c                 :    U R                   R                  S/ 5      $ )Njwksr-   r   s    r   rW   OAuth2ClientMixin.jwkse   s    ##''33r    c                 8    U R                   R                  S5      $ )Nsoftware_idr-   r   s    r   rZ   OAuth2ClientMixin.software_idi   r=   r    c                 8    U R                   R                  S5      $ )Nsoftware_versionr-   r   s    r   r]   "OAuth2ClientMixin.software_versionm   s    ##''(:;;r    c                 8    U R                   R                  S5      $ )Nid_token_signed_response_algr-   r   s    r   r`   .OAuth2ClientMixin.id_token_signed_response_algq   s    ##''(FGGr    c                     U R                   $ N)r   r   s    r   get_client_idOAuth2ClientMixin.get_client_idu   s    ~~r    c                 D    U R                   (       a  U R                   S   $ g )Nr   r,   r   s    r   get_default_redirect_uri*OAuth2ClientMixin.get_default_redirect_urix   s!    %%a(( r    c                     U(       d  g[        U R                  R                  5       5      n[        U5      n[	        U Vs/ s H  oDU;   d  M
  UPM     sn5      $ s  snf )NrH   )setrG   splitr   r
   )r   rG   allowedscopesss        r   get_allowed_scope#OAuth2ClientMixin.get_allowed_scope|   sJ    djj&&()u%@A<a@AA@s    	AAc                     XR                   ;   $ rc   rg   )r   redirect_uris     r   check_redirect_uri$OAuth2ClientMixin.check_redirect_uri   s    1111r    c                 D    [         R                  " U R                  U5      $ rc   )secretscompare_digestr   )r   r   s     r   check_client_secret%OAuth2ClientMixin.check_client_secret   s    %%d&8&8-HHr    c                 .    US:X  a  U R                   U:H  $ g)NtokenT)r1   )r   methodendpoints      r   check_endpoint_auth_method,OAuth2ClientMixin.check_endpoint_auth_method   s    w22f<<r    c                     XR                   ;   $ rc   )r8   )r   response_types     r   check_response_type%OAuth2ClientMixin.check_response_type   s     3 333r    c                     XR                   ;   $ rc   )r5   )r   
grant_types     r   check_grant_type"OAuth2ClientMixin.check_grant_type   s    ----r    )r$   N)*__name__
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   r$   propertyr   r   r)   r,   r1   r5   r8   r;   r?   rC   rG   rK   rN   rQ   rT   rW   rZ   r]   r`   rd   rh   rp   rt   ry   r   r   r   __static_attributes__ r    r   r   r      s   vbz.I6#;'M 5!D%gqI/6
 
  1
 = = 
 

 ; ; > > 7 7 6 6 4 4 5 5 8 8 3 3 6 6 4 4 4 4 7 7 < < H H)B2I4.r    r   )rw   
sqlalchemyr   r   r   r   authlib.common.encodingr   r   authlib.oauth2.rfc6749r	   r
   r   r   r   r    r   <module>r      s1         . . . 0 0D. D.r    