
    Uњh                     f   S SK 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 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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*J+r+  S SK,J-r-J.r.   " S S5      r/ " S S5      r0 " S S\0\(5      r1 " S S\05      r2g)    )	timedelta)RequestException)DictOptional)settings)PermissionDenied)render)reverse)timezone)app_settingslogin_not_required)ImmediateHttpResponse)add_query_params)get_adapter)complete_social_loginrender_authentication_error)statekit)SocialToken)ProviderException)	AuthError)BaseLoginView)OAuth2ClientOAuth2Error)build_absolute_uriget_request_paramc                       \ rS rSr% Sr\rSrSr\	\
   \S'   SrSrSrS	rSr\	\\
\
4      \S
'   S rS rS\4S jrS rS rSS jrS rSrg)OAuth2Adapter   
expires_inTNredirect_uri_protocolPOSTaccess_denied Fheadersc                     Xl         SU l        g )NF)requestdid_fetch_access_token)selfr'   s     gD:\Anime\Ugyen\janka_web_project\venv\Lib\site-packages\allauth/socialaccount/providers/oauth2/views.py__init__OAuth2Adapter.__init__(   s    &+#    c                 p    [        U R                  5      R                  U R                  U R                  S9$ )N)provider)r   r'   get_providerprovider_idr)   s    r*   r0   OAuth2Adapter.get_provider,   s2    4<<(55LL4#3#3 6 
 	
r-   tokenc                     [         e)z 
Returns a SocialLogin instance
)NotImplementedError)r)   r'   appr4   kwargss        r*   complete_loginOAuth2Adapter.complete_login1   s
     "!r-   c                 b    [        U R                  S-   5      nU R                  n[        XU5      $ )N	_callback)r
   r1   r!   r   )r)   r'   r7   callback_urlprotocols        r*   get_callback_urlOAuth2Adapter.get_callback_url7   s/    t//+=>--!'BBr-   c                     [        US   S9nUR                  SS5      Ul        UR                  U R                  S 5      nU(       a-  [        R
                  " 5       [        [        U5      S9-   Ul        U$ )Naccess_token)r4   refresh_token )seconds)	r   gettoken_secretexpires_in_keyr   nowr   int
expires_at)r)   datar4   r    s       r*   parse_tokenOAuth2Adapter.parse_token<   s^    $~"67!XXor:XXd1148
'||~	#j/0RREr-   c                 ^    [        U R                  S5      nUR                  XTS9nSU l        U$ )Ncodepkce_code_verifierT)r   r'   get_access_tokenr(   )r)   r'   r7   clientrR   rP   rL   s          r*   get_access_token_data#OAuth2Adapter.get_access_token_dataD   s2     v6&&t&S&*#r-   c                     U R                  X5      nU R                  U R                  UR                  UR                  U R
                  U R                  UU R                  U R                  U R                  S9	nU$ )N)scope_delimiterr%   
basic_auth)
r?   client_classr'   	client_idsecretaccess_token_methodaccess_token_urlrX   r%   rY   )r)   r'   r7   r=   rT   s        r*   
get_clientOAuth2Adapter.get_clientJ   so    ,,W:""LLMMJJ$$!! 00LL # 

 r-   )r(   r'   N)__name__
__module____qualname____firstlineno__rH   r   rZ   supports_stater!   r   str__annotations__r]   login_cancelled_errorrX   rY   r%   r   r+   r0   r   r9   r?   rM   rU   r_   __static_attributes__ r-   r*   r   r      sx    !NLN+/8C=/ +OJ(,GXd38n%,,

"+ "C
r-   r   c                   $    \ rS rSr\S 5       rSrg)
OAuth2ViewZ   c                 *   ^ ^ [         UU 4S j5       nU$ )Nc                    > T" 5       nXl         [        T[        5      (       d  T" U 5      Ul        OTUl         UR                  " U /UQ70 UD6$ ! [
         a  nUR                  s S nA$ S nAff = fra   )r'   
isinstancer   adapterdispatchr   response)r'   argsr8   r)   err   clss        r*   view%OAuth2View.adapter_view.<locals>.view]   sg    5D"Lg}55&w/&"}}W>t>v>>( "zz!"s   A 
A0A+%A0+A0r   )rw   rr   rx   s   `` r*   adapter_viewOAuth2View.adapter_view[   s    	
	" 

	" r-   )rr   r'   N)rb   rc   rd   re   classmethodrz   rj   rk   r-   r*   rm   rm   Z   s     r-   rm   c                       \ rS rSrS rSrg)OAuth2LoginViewm   c                 6    U R                   R                  5       $ ra   )rr   r0   r2   s    r*   r0   OAuth2LoginView.get_providern   s    ||((**r-   rk   N)rb   rc   rd   re   r0   rj   rk   r-   r*   r~   r~   m   s    +r-   r~   c                   &    \ rS rSrS rS rS rSrg)OAuth2CallbackViewr   c                 ^   U R                   R                  5       nU R                  X5      u  pVU(       a  U$ SUR                  ;   d  SUR                  ;  ae  UR                  R	                  SS 5      nXpR                   R
                  :X  a  [        R                  nO[        R                  n[        UUUUU S.S9$ UR                  n	U R                   R                  U R                  U	5      n
 U R                   R                  XXR	                  S5      S9nU R                   R                  U5      nU	R                  (       a  Xl
        U R                   R!                  XXS9nXl        X]l        ['        X5      $ ! [(        [*        [,        [.        4 a  n[        XUSU0S	9s S nA$ S nAff = f)
NerrorrP   )statecallback_view)r   extra_contextrR   rQ   )rt   r   )	exceptionr   )rr   r0   
_get_stateGETrF   ri   r   	CANCELLEDUNKNOWNr   r7   r_   r'   rU   rM   pkr9   r4   r   r   r   r   r   r   )r)   r'   ru   r8   r/   r   resp
auth_errorr   r7   rT   rB   r4   loginrv   s                  r*   rs   OAuth2CallbackView.dispatchs   s   <<,,.oog8Kgkk!V7;;%> $7J\\???!++!))."%)	  ll((s;	<<==fCW9X > L LL,,\:Evv	LL//e 0 E  KK(88	
 	 /Qw>N 	s   /BE; ;F,F'!F,'F,c                    SUR                   ;   d2  [        R                  R                  5       S:w  d  UR                  S:w  a  g UR                  5       n[        USS05      n[        US[        R                  -   UUS.5      $ )N_redirstrictr   rD   zsocialaccount/login_redirect.)r/   redirect_to)
r   r   SESSION_COOKIE_SAMESITElowermethodget_full_pathr   r	   account_settingsTEMPLATE_EXTENSION)r)   r'   r/   r   s       r*   _redirect_strict_samesite,OAuth2CallbackView._redirect_strict_samesite   s|    #//5578C~~&++-&{XrNC+.>.Q.QQ$*
 	
r-   c                 "   S n[        US5      nU R                  R                  (       a  U(       a  [        R                  " X5      nO[        R
                  " U5      nUc,  U R                  X5      nU(       a  S U4$ S [        UUUU S.S94$ US 4$ )Nr   )state_idr   )r   )r   rr   rf   r   unstash_stateunstash_last_stater   r   )r)   r'   r/   r   r   r   s         r*   r   OAuth2CallbackView._get_state   s    $Wg6<<&& ..wA//8E=11'DD Tz!4 (%)   d{r-   rk   N)rb   rc   rd   re   rs   r   r   rj   rk   r-   r*   r   r   r   s    -^
$r-   r   N)3datetimer   requestsr   typingr   r   django.confr   django.core.exceptionsr   django.shortcutsr	   django.urlsr
   django.utilsr   allauth.accountr   r   #allauth.account.internal.decoratorsr   allauth.core.exceptionsr   allauth.core.internal.httpkitr   allauth.socialaccount.adapterr   allauth.socialaccount.helpersr   r   allauth.socialaccount.internalr   allauth.socialaccount.modelsr   $allauth.socialaccount.providers.baser   .allauth.socialaccount.providers.base.constantsr   *allauth.socialaccount.providers.base.viewsr   -allauth.socialaccount.providers.oauth2.clientr   r   allauth.utilsr   r   r   rm   r~   r   rk   r-   r*   <module>r      sy     % !   3 #  ! < B 9 : 5 4 4 B D D S ?: :z &+j- +
X Xr-   