Ë
    ûûàgü  ã                   óf  — d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z*m+Z+ d dl,m-Z-m.Z.  G d„ d«      Z/ G d„ d«      Z0 G d„ de0e(«      Z1 G d„ de0«      Z2y)é    )Ú	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                   óŽ   — e Zd ZU dZeZdZdZee	   e
d<   dZdZdZdZdZeee	e	f      e
d	<   d
„ Zd„ Zdefd„Zd„ Zd„ Zdd„Zd„ Zy)ÚOAuth2AdapterÚ
expires_inTNÚredirect_uri_protocolÚPOSTÚaccess_deniedú FÚheadersc                 ó    — || _         d| _        y )NF)ÚrequestÚdid_fetch_access_token)Úselfr&   s     új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/oauth2/views.pyÚ__init__zOAuth2Adapter.__init__+   s   € ØˆŒØ&+ˆÕ#ó    c                 óv   — t        | j                  «      j                  | j                  | j                  ¬«      S )N)Úprovider)r   r&   Úget_providerÚprovider_id©r(   s    r)   r.   zOAuth2Adapter.get_provider/   s2   € Ü˜4Ÿ<™<Ó(×5Ñ5Ø�L‰L 4×#3Ñ#3ð 6ó 
ð 	
r+   Útokenc                 ó   — t         ‚)z0
        Returns a SocialLogin instance
        )ÚNotImplementedError)r(   r&   Úappr1   Úkwargss        r)   Úcomplete_loginzOAuth2Adapter.complete_login4   s
   € ô "Ð!r+   c                 ód   — t        | j                  dz   «      }| j                  }t        |||«      S )NÚ	_callback)r
   r/   r    r   )r(   r&   r4   Úcallback_urlÚprotocols        r)   Úget_callback_urlzOAuth2Adapter.get_callback_url:   s1   € Ü˜t×/Ñ/°+Ñ=Ó>ˆØ×-Ñ-ˆÜ! '¨<¸ÓBÐBr+   c                 óì   — t        |d   ¬«      }|j                  dd«      |_        |j                  | j                  d «      }|r/t	        j
                  «       t        t        |«      ¬«      z   |_        |S )NÚaccess_token)r1   Úrefresh_tokenÚ )Úseconds)	r   ÚgetÚtoken_secretÚexpires_in_keyr   Únowr   ÚintÚ
expires_at)r(   Údatar1   r   s       r)   Úparse_tokenzOAuth2Adapter.parse_token?   s^   € Ü $ ~Ñ"6Ô7ˆØ!ŸX™X o°rÓ:ˆÔØ—X‘X˜d×1Ñ1°4Ó8ˆ
ÙÜ'Ÿ|™|›~´	Ä#ÀjÃ/Ô0RÑRˆEÔØˆr+   c                 óf   — t        | j                  d«      }|j                  ||¬«      }d| _        |S )NÚcode©Úpkce_code_verifierT)r   r&   Úget_access_tokenr'   )r(   r&   r4   ÚclientrL   rJ   rG   s          r)   Úget_access_token_dataz#OAuth2Adapter.get_access_token_dataG   s5   € Ü  §¡¨vÓ6ˆØ×&Ñ& tÐ@RÐ&ÓSˆØ&*ˆÔ#Øˆr+   c                 óþ   — | j                  ||«      }| j                  | j                  |j                  |j                  | j
                  | j                  || j                  | j                  | j                  ¬«	      }|S )N)Úscope_delimiterr$   Ú
basic_auth)
r;   Úclient_classr&   Ú	client_idÚsecretÚaccess_token_methodÚaccess_token_urlrQ   r$   rR   )r(   r&   r4   r9   rN   s        r)   Ú
get_clientzOAuth2Adapter.get_clientM   sq   € Ø×,Ñ,¨W°cÓ:ˆØ×"Ñ"Ø�L‰LØ�M‰MØ�J‰JØ×$Ñ$Ø×!Ñ!ØØ ×0Ñ0Ø—L‘LØ—‘ð #ó 

ˆð ˆr+   ©N)Ú__name__Ú
__module__Ú__qualname__rC   r   rS   Úsupports_stater    r   ÚstrÚ__annotations__rV   Úlogin_cancelled_errorrQ   rR   r$   r   r*   r.   r   r6   r;   rH   rO   rX   © r+   r)   r   r       sx   … Ø!€NØ€LØ€NØ+/Ð˜8 C™=Ó/Ø ÐØ+ÐØ€OØ€JØ(,€GˆX�d˜3 ˜8‘nÑ%Ó,ò,ò
ð
"°+ó "òCò
óór+   r   c                   ó   — e Zd Zed„ «       Zy)Ú
OAuth2Viewc                 ó(   ‡ ‡— t         ˆˆ fd„«       }|S )Nc                 óÜ   •—  ‰«       }| |_         t        ‰t        «      s ‰| «      |_        n‰|_        	  |j                  | g|¢­i |¤ŽS # t
        $ r}|j                  cY d }~S d }~ww xY wrY   )r&   Ú
isinstancer   ÚadapterÚdispatchr   Úresponse)r&   Úargsr5   r(   Úerg   Úclss        €€r)   Úviewz%OAuth2View.adapter_view.<locals>.view`   sh   ø€ á“5ˆDØ"ˆDŒLÜ˜g¤}Ô5Ù& wÓ/�•à&�”ð"Ø$�t—}‘} WÐ>¨tÒ>°vÑ>Ð>øÜ(ò "Ø—z‘zÕ!ûð"ús   ¶A Á	A+ÁA&Á A+Á&A+r   )rl   rg   rm   s   `` r)   Úadapter_viewzOAuth2View.adapter_view^   s   ù€ ä	ô
	"ó 
ð
	"ð ˆr+   N)rZ   r[   r\   Úclassmethodrn   ra   r+   r)   rc   rc   ]   s   „ Øñó ñr+   rc   c                   ó   — e Zd Zd„ Zy)ÚOAuth2LoginViewc                 ó6   — | j                   j                  «       S rY   )rg   r.   r0   s    r)   r.   zOAuth2LoginView.get_providerq   s   € Ø�|‰|×(Ñ(Ó*Ð*r+   N)rZ   r[   r\   r.   ra   r+   r)   rq   rq   p   s   „ ó+r+   rq   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚOAuth2CallbackViewc                 ón  — | j                   j                  «       }| j                  ||«      \  }}|r|S d|j                  v sd|j                  vrh|j                  j	                  dd «      }|| j                   j
                  k(  rt        j                  }nt        j                  }t        ||||| dœ¬«      S |j                  }	| j                   j                  | j                  |	«      }
	 | j                   j                  ||	|
|j	                  d«      ¬«      }| j                   j                  |«      }|	j                  r|	|_
        | j                   j!                  ||	||¬«      }||_        ||_        t'        ||«      S # t(        t*        t,        t.        f$ r}t        |||d|i¬	«      cY d }~S d }~ww xY w)
NÚerrorrJ   )ÚstateÚcallback_view)rv   Úextra_contextrL   rK   )ri   rw   )Ú	exceptionry   )rg   r.   Ú
_get_stateÚGETrA   r`   r   Ú	CANCELLEDÚUNKNOWNr   r4   rX   r&   rO   rH   Úpkr6   r1   rw   r   r   r   r   r   )r(   r&   rj   r5   r-   rw   ÚrespÚ
auth_errorrv   r4   rN   r=   r1   Úloginrk   s                  r)   rh   zOAuth2CallbackView.dispatchv   s˜  € Ø—<‘<×,Ñ,Ó.ˆØ—o‘o g¨xÓ8‰ˆˆtÙØˆKØ�g—k‘kÑ! V°7·;±;Ñ%>à Ÿ™Ÿ™¨°$Ó7ˆJØ˜TŸ\™\×?Ñ?Ò?Ü!×+Ñ+‘ä!×)Ñ)�Ü.ØØØà"Ø%)ñô	ð ð �l‰lˆØ—‘×(Ñ(¨¯©°sÓ;ˆð	ØŸ<™<×=Ñ=Ø˜˜f¸¿¹ÐCWÓ9Xð >ó ˆLð —L‘L×,Ñ,¨\Ó:ˆEØ�vŠvØ�”	Ø—L‘L×/Ñ/Ø˜˜e¨lð 0ó ˆEð  ˆEŒKØˆEŒKÜ(¨°%Ó8Ð8øäÜÜÜð	
ò 	ô /Ø˜¨Q¸wÈÐ>Nôõ ûð	ús   Ã+BF  Æ F4ÆF/Æ)F4Æ/F4c                 óþ   — d|j                   v s0t        j                  j                  «       dk7  s|j                  dk7  ry |j                  «       }t        |ddi«      }t        |dt        j                  z   ||dœ«      S )NÚ_redirÚstrictr|   r?   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_samesitez,OAuth2CallbackView._redirect_strict_samesite¥   s|   € à˜Ÿ™Ñ#Ü×/Ñ/×5Ñ5Ó7¸8ÒCØ�~‰~ Ò&àØ×+Ñ+Ó-ˆÜ& {°X¸r°NÓCˆÜØØ+Ô.>×.QÑ.QÑQà$Ø*ñó
ð 	
r+   c                 ó  — d }t        |d«      }| j                  j                  r|r,t        j                  ||«      }nt        j
                  |«      }|€+| j                  ||«      }|rd |fS d t        |||| dœ¬«      fS |d fS )Nrw   )Ústate_idrx   )ry   )r   rg   r]   r   Úunstash_stateÚunstash_last_stater�   r   )r(   r&   r-   rw   r�   r€   s         r)   r{   zOAuth2CallbackView._get_state·   s�   € ØˆÜ$ W¨gÓ6ˆØ�<‰<×&Ò&ÙÜ ×.Ñ.¨w¸ÓA‘ä×/Ñ/°Ó8ˆEØˆ=Ø×1Ñ1°'¸8ÓDˆDÙð ˜T�zÐ!ØÔ4ØØà (Ø%)ñôð ð ð �dˆ{Ðr+   N)rZ   r[   r\   rh   r�   r{   ra   r+   r)   rt   rt   u   s   „ ò-ò^
ó$r+   rt   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   rc   rq   rt   ra   r+   r)   ú<module>r§      s~   ðÝ Ý %ß !å  Ý 3Ý #Ý Ý !å <Ý BÝ 9Ý :Ý 5÷õ 4Ý 4Ý BÝ DÝ D÷÷ @÷:ñ :÷zñ ô&+�j -ô +ô
X˜õ Xr+   