
    Sњh                     <   S SK JrJr  S SKJr  S SKJr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	\4S
 jrS	\4S jrS	\\   4S jrS	\4S jr " S S\	R0                  5      r " S S\	R4                  R6                  5      r " S S\	R0                  5      rg)    )ListOptional)settings)check_passwordmake_password)models)Q)timezone)gettext_lazy)get_adapterreturnc                  :    [        5       n U R                  5       nU$ N)r   generate_client_id)adapter	client_ids     RD:\Anime\Ugyen\janka_web_project\venv\Lib\site-packages\allauth/idp/oidc/models.pydefault_client_idr      s    mG**,I    c                  L    [        5       n U R                  5       n[        U5      $ r   )r   generate_client_secretr   )r   client_secrets     r   default_client_secretr      s"    mG224M''r   c           
          [        [        S U R                  S5       Vs/ s H  oR                  5       PM     sn5      5      $ s  snf N
)listfiltersplitstrip)textss     r   _values_from_textr#      s5    tD1AB1AAggi1ABCDDBs   Ac                 d    [        U [        5      (       a  [        U 5      eSR                  U 5      $ r   )
isinstancestr
ValueErrorjoin)valuess    r   _values_to_textr*      s)    &#  99Vr   c                   B   \ rS rSr " S S\R
                  5      r " S S\R
                  5      r\R                  " SS\	SS	9r
\R                  " SS
9r\R                  " S\S9r\R                  " \" S5      SS9r\R                  " \" S5      SSS9r\R                  " S\R$                  \R&                  S9r\R                  " \R*                  \" S5      S9r\R                  " SSSS9r\R                  " S\" S5      SSS9r\R                  " S\" S5      S9r\R4                  " \R8                  SS\R:                  S9r\R>                  " SS S9r \RB                  " \"RF                  S!9r$\RJ                  " SSS"S#9r& " S$ S%5      r'S&\(\)   4S' jr*S(\(\)   4S) jr+S&\(\)   4S* jr,S(\(\)   4S+ jr-S&\(\)   4S, jr.S-\(\)   S&S"4S. jr/S&\(\)   4S/ jr0S-\(\)   S&S"4S0 jr1S&\(\)   4S1 jr2S2\(\)   S&S"4S3 jr3S&\(\)   4S4 jr4S5\(\)   4S6 jr5S<S7 jr6S8\)S&\74S9 jr8S&\)4S: jr9S;r:g")=Client#   c                   d    \ rS rSrS\" S5      4rS\" S5      4rS\" S5      4rS\" S	5      4rS
r	g)Client.GrantType$   authorization_codeAuthorization codez,urn:ietf:params:oauth:grant-type:device_codezDevice codeclient_credentialszClient credentialsrefresh_tokenRefresh token N)
__name__
__module____qualname____firstlineno___AUTHORIZATION_CODEDEVICE_CODECLIENT_CREDENTIALSREFRESH_TOKEN__static_attributes__r6   r   r   	GrantTyper/   $   sB    115I3JJDaFVV115I3JJ'?);;r   rA   c                   <    \ rS rSrS\" S5      4rS\" S5      4rSrg)Client.Type*   confidentialConfidentialpublicPublicr6   N)r7   r8   r9   r:   r;   CONFIDENTIALPUBLICr@   r6   r   r   TyperC   *   s    %q'881X;&r   rK   Td   z	Client ID)primary_key
max_lengthdefaultverbose_namerN      )rN   rO   zxThe scope(s) the client is allowed to request. Provide one value per line, e.g.: openid(ENTER)profile(ENTER)email(ENTER)openid)	help_textrO   zIn case the client does not specify any scope, these default scopes are used. Provide one value per line, e.g.: openid(ENTER)profile(ENTER)email(ENTER) )rT   rO   blank   )rN   rO   choiceszA list of allowed grant types. Provide one value per line, e.g.: authorization_code(ENTER)client_credentials(ENTER)refresh_token(ENTER))rO   rT   z9A list of allowed redirect (callback) URLs, one per line.)rT   rV   rO   zBA list of allowed origins for cross-origin requests, one per line.zCORS allowed origins)rV   rT   rO   rP   codezdA list of allowed response types. Provide one value per line, e.g.: code(ENTER)id_token token(ENTER))rV   null	on_deleteFz5Flag to allow skip the consent screen for this clientrO   NrV   rZ   rO   c                   4    \ rS rSr\" S5      r\" S5      rSrg)Client.Metaj   clientclientsr6   N)r7   r8   r9   r:   r;   rP   verbose_name_pluralr@   r6   r   r   Metar_   j   s    {	lr   rd   r   c                 ,    [        U R                  5      $ r   )r#   redirect_urisselfs    r   get_redirect_urisClient.get_redirect_urisn   s     !3!344r   urisc                 $    [        U5      U l        g r   )r*   rf   rh   rk   s     r   set_redirect_urisClient.set_redirect_urisq   s    ,T2r   c                 ,    [        U R                  5      $ r   )r#   cors_originsrg   s    r   get_cors_originsClient.get_cors_originst   s     !2!233r   c                 $    [        U5      U l        g r   )r*   rq   rm   s     r   set_cors_originsClient.set_cors_originsw   s    +D1r   c                 ,    [        U R                  5      $ r   r#   scopesrg   s    r   
get_scopesClient.get_scopesz        --r   ry   c                 $    [        U5      U l        g r   r*   ry   rh   ry   s     r   
set_scopesClient.set_scopes}       %f-r   c                 ,    [        U R                  5      $ r   )r#   default_scopesrg   s    r   get_default_scopesClient.get_default_scopes        !4!455r   c                 $    [        U5      U l        g r   )r*   r   r   s     r   set_default_scopesClient.set_default_scopes   s    -f5r   c                 ,    [        U R                  5      $ r   )r#   response_typesrg   s    r   get_response_typesClient.get_response_types   r   r   r   c                 $    [        U5      U l        g r   )r*   r   )rh   r   s     r   set_response_typesClient.set_response_types   s    -n=r   c                 ,    [        U R                  5      $ r   )r#   grant_typesrg   s    r   get_grant_typesClient.get_grant_types   s     !1!122r   r   c                 $    [        U5      U l        g r   )r*   r   )rh   r   s     r   set_grant_typesClient.set_grant_types   s    *;7r   c                 $    [        U5      U l        g r   )r   secretrh   r   s     r   
set_secretClient.set_secret   s    #F+r   r   c                 ,    [        XR                  5      $ r   )r   r   r   s     r   check_secretClient.check_secret   s    fkk22r   c                     U R                   $ r   )idrg   s    r   __str__Client.__str__   s    wwr   )rq   r   r   rf   r   ry   r   )r   N);r7   r8   r9   r:   r   TextChoicesrA   rK   	CharFieldr   r   namer   r   	TextFieldr;   ry   r   rI   rX   typer<   r   rf   rq   r   
ForeignKeyr   AUTH_USER_MODELCASCADEownerBooleanFieldskip_consentDateTimeFieldr
   now
created_at	JSONFielddatard   r   r&   ri   rn   rr   ru   rz   r   r   r   r   r   r   r   r   boolr   r   r@   r6   r   r   r,   r,   #   s   <F&& <'v!! ' 
		! 	
B D 6KLF G
 	F %% f
 N t00$,,D "",, V
K $$MM
 ##P
 +L %%r
N   46>>E &&!XL %%hll;J$T4@D+ +549 53d3i 34$s) 42T#Y 2.DI ..c .t .6DI 66c 6t 66DI 6>c >t >3c 3849 8,33 34 3 r   r,   c                   .    \ rS rSrS rS\4S jrS rSrg)TokenQuerySet   c                 l    U R                  [        SS9[        [        R                  " 5       S9-  5      $ )NT)expires_at__isnull)expires_at__gt)r   r	   r
   r   rg   s    r   validTokenQuerySet.valid   s+    {{&(,,.)II
 	
r   valuec                 N    U R                  [        5       R                  U5      S9$ )N)hash)r   r   
hash_token)rh   r   s     r   by_valueTokenQuerySet.by_value   s     {{ 8 8 ?{@@r   c                 v    U R                  5       R                  U5      R                  US9R                  5       $ )N)r   )r   r   r   first)rh   r   r   s      r   lookupTokenQuerySet.lookup   s0    zz|$$U+222=CCEEr   r6   N)	r7   r8   r9   r:   r   r&   r   r   r@   r6   r   r   r   r      s    

Ac AFr   r   c                   L   \ rS rSr\R                  5       r " S S\R                  5      r	\R                  " S\	R                  S9r\R                  " SS9r\R                  " \\R                   SSS	9r\R                  " \R&                  \R                   SSS	9r\R*                  " SSS
S9r\R.                  " \R2                  S9r\R.                  " SSSS9r\R8                  " SS9r " S S5      rS\4S jr S\!\   4S jr"S\!\   SS
4S jr#S\SS
4S jr$S\%\   4S jr&Sr'g
)Token   c                   $    \ rS rSrSrSrSrSrSrg)
Token.Type   )iazInitial access token)atzAccess token)rtr5   )acr2   r6   N)	r7   r8   r9   r:   INITIAL_ACCESS_TOKENACCESS_TOKENr?   r<   r@   r6   r   r   rK   r      s    ;+-7r   rK      )rN   rX      rQ   T)r[   rV   rZ   Nr]   r\   )rV   rZ   db_indexrU   c                       \ rS rSrSrSrg)
Token.Meta   ))r   r   r6   N)r7   r8   r9   r:   unique_togetherr@   r6   r   r   rd   r      s    -r   rd   r   c                     U R                   (       a  U R                  5        SU R                    3$ U R                  5       $ )Nz for user #)user_idget_type_displayrg   s    r   r   Token.__str__   s7    <<++-.k$,,HH$$&&r   c                 ,    [        U R                  5      $ r   rx   rg   s    r   rz   Token.get_scopes   r|   r   ry   c                 $    [        U5      U l        g r   r~   r   s     r   r   Token.set_scopes   r   r   emailc                 H    U R                   c  0 U l         XR                   S'   g)z`
In case a specific email was chosen to be exposed to the client,
store that using this method.
Nr   )r   )rh   r   s     r   set_scope_emailToken.set_scope_email   s!    
 99DI"		'r   c                 x    [        U R                  [        5      (       d  gU R                  R                  S5      $ )z
Returns the email that was selected when the email scope was
granted.  Note that this may e outdated, as the user can change email
addresses at any time.
Nr   )r%   r   dictgetrg   s    r   get_scope_emailToken.get_scope_email   s+     $))T**yy}}W%%r   )r   ry   )(r7   r8   r9   r:   r   
as_managerobjectsr   r   rK   r   rX   r   r   r   r,   r   ra   r   r   userr   r   r   r
   r   r   
expires_atr   ry   rd   r&   r   r   rz   r   r   r   r   r@   r6   r   r   r   r      s6   &&(G8v!! 8 q$,,?Ds+DvtRVWF  FNN$TD $T4@D%%hll;J%%DtdKJb)F. .' '
.DI ..c .t .#S #T #&# &r   r   N)typingr   r   django.confr   django.contrib.auth.hashersr   r   	django.dbr   django.db.modelsr	   django.utilsr
   django.utils.translationr   r;   allauth.idp.oidc.adapterr   r&   r   r   r#   r*   Modelr,   queryQuerySetr   r   r6   r   r   <module>r      s    !   E   ! 6 03 (s (EtCy Es vV\\ vr
FFLL)) 
F3&FLL 3&r   