Ë
    ûûàg3  ã                   óª   — 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 d dlmZ  G d„ de«      Zy)é    )ÚType)Ú	parse_qsl)ÚImproperlyConfigured)ÚHttpResponseRedirect)Úreverse)Ú	urlencode)Úrender_authentication_error)ÚProvider)Ú
AuthAction)ÚOAuth2Error)Úgenerate_code_challenge)ÚOAuth2Adapterc                   ó|   ‡ — e Zd ZU dZee   ed<   dZd„ Zd„ Z	de
fd„Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zˆ fd„Zdd„Zˆ xZS )ÚOAuth2ProviderFÚoauth2_adapter_classTc                 ó\   — t        | j                  dz   «      }|r|dz   t        |«      z   }|S )NÚ_loginú?)r   Úidr   )ÚselfÚrequestÚkwargsÚurls       úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/oauth2/provider.pyÚget_login_urlzOAuth2Provider.get_login_url   s0   € Ü�d—g‘g Ñ(Ó)ˆÙØ˜‘)œi¨Ó/Ñ/ˆCØˆ
ó    c                 ó2   — t        | j                  dz   «      S )NÚ	_callback)r   r   ©r   s    r   Úget_callback_urlzOAuth2Provider.get_callback_url   s   € Ü�t—w‘w Ñ,Ó-Ð-r   Úreturnc                 óÈ   — | j                   j                  j                  d«      }|€,| j                  «       }|j                  d| j                  «      }|rt        «       }|S i S )NÚoauth_pkce_enabledÚOAUTH_PKCE_ENABLED)ÚappÚsettingsÚgetÚget_settingsÚpkce_enabled_defaultr   )r   Úenabledr&   Úpkce_code_paramss       r   Úget_pkce_paramszOAuth2Provider.get_pkce_params!   s^   € Ø—(‘(×#Ñ#×'Ñ'Ð(<Ó=ˆØˆ?Ø×(Ñ(Ó*ˆHØ—l‘lÐ#7¸×9RÑ9RÓSˆGÙÜ6Ó8ÐØ#Ð#Øˆ	r   c                 óª   — | j                   j                  j                  d«      }|€"| j                  «       }|j                  di «      }t	        |«      S )úÎ
        Returns a dictionary of additional parameters passed to the OAuth2
        redirect URL. Additional -- so no need to pass the standard `client_id`,
        `redirect_uri`, `response_type`.
        Úauth_paramsÚAUTH_PARAMS)r%   r&   r'   r(   Údict)r   Úretr&   s      r   Úget_auth_paramszOAuth2Provider.get_auth_params+   sK   € ð �h‰h×Ñ×#Ñ# MÓ2ˆØˆ;Ø×(Ñ(Ó*ˆHØ—,‘,˜}¨bÓ1ˆCÜ�C‹yÐr   c                 ó¨   — | j                  «       }|j                  j                  dd«      }|r#|j                  t	        t        |«      «      «       |S )r.   r/   N)r3   ÚGETr'   Úupdater1   r   )r   r   Úactionr2   Údynamic_auth_paramss        r   Úget_auth_params_from_requestz+OAuth2Provider.get_auth_params_from_request7   sF   € ð ×"Ñ"Ó$ˆØ%Ÿk™kŸo™o¨m¸TÓBÐÙØ�J‰J”tœIÐ&9Ó:Ó;Ô<Øˆ
r   c                 ó   — g S )z3
        Returns the default scope to use.
        © r   s    r   Úget_default_scopez OAuth2Provider.get_default_scopeC   s	   € ð ˆ	r   c                 óÆ   — | j                   j                  j                  d«      }|€0| j                  «       }|j                  d| j	                  «       «      }t        |«      S )zW
        Returns the scope to use, taking settings `SCOPE` into consideration.
        ÚscopeÚSCOPE)r%   r&   r'   r(   r<   Úlist)r   r>   r&   s      r   Ú	get_scopezOAuth2Provider.get_scopeI   sT   € ð —‘×!Ñ!×%Ñ% gÓ.ˆØˆ=Ø×(Ñ(Ó*ˆHØ—L‘L ¨$×*@Ñ*@Ó*BÓCˆEÜ�E‹{Ðr   c                 ó¢   — | j                  «       }|j                  j                  dd«      }|r |j                  |j	                  d«      «       |S )zA
        Returns the scope to use for the given request.
        r>   Nú,)rA   r5   r'   ÚextendÚsplit)r   r   r>   Údynamic_scopes       r   Úget_scope_from_requestz%OAuth2Provider.get_scope_from_requestS   sC   € ð —‘Ó ˆØŸ™Ÿ™¨°Ó6ˆÙØ�L‰L˜×,Ñ,¨SÓ1Ô2Øˆr   c                 óX   — t        | d«      st        d| ›�«      ‚| j                  |«      S )Nr   z No oauth2_adapter_class set for )Úhasattrr   r   )r   r   s     r   Úget_oauth2_adapterz!OAuth2Provider.get_oauth2_adapter]   s1   € Ü�tÐ3Ô4Ü&Ð)IÈ$ÈÐ'RÓSÐSØ×(Ñ(¨Ó1Ð1r   c                 óÌ   •— t         ‰| �  |«      }| j                  |«      |d<   |j                  j	                  dt
        j                  «      }| j                  ||«      |d<   |S )Nr>   r7   r/   )ÚsuperÚ get_redirect_from_request_kwargsrG   r5   r'   r   ÚAUTHENTICATEr9   )r   r   r   r7   Ú	__class__s       €r   rM   z/OAuth2Provider.get_redirect_from_request_kwargsb   s\   ø€ Ü‘Ñ9¸'ÓBˆØ×5Ñ5°gÓ>ˆˆw‰Ø—‘—‘ ¬:×+BÑ+BÓCˆØ $× AÑ AÀ'È6Ó Rˆˆ}ÑØˆr   c                 ó0  — | j                   }| j                  |«      }|j                  ||«      }|j                  dd «      }	|	€| j	                  «       }	| j                  «       }
|
j                  dd «      }|	j                  |
«       |j                  dd «      }|€| j                  «       } | j                  ||||fd|i|¤Ž}||_	        	 t        |j                  |j                  ||	«      «      S # t        $ r}t        || d|i|¬«      cY d }~S d }~ww xY w)Nr/   Úcode_verifierr>   Úpkce_code_verifierÚstate_id)Úextra_contextÚ	exception)r%   rJ   Ú
get_clientÚpopr3   r,   r6   rA   Ústash_redirect_stateÚstater   Úget_redirect_urlÚauthorize_urlr   r	   )r   r   ÚprocessÚnext_urlÚdatar   r%   Úoauth2_adapterÚclientr/   Úpkce_paramsrQ   r>   rS   Úes                  r   ÚredirectzOAuth2Provider.redirecti   s,  € Ø�h‰hˆØ×0Ñ0°Ó9ˆØ×*Ñ*¨7°CÓ8ˆà—j‘j °Ó5ˆØÐØ×.Ñ.Ó0ˆKØ×*Ñ*Ó,ˆØ#Ÿ™¨¸Ó>ˆØ×Ñ˜;Ô'à—
‘
˜7 DÓ)ˆØˆ=Ø—N‘NÓ$ˆEà,�4×,Ñ,Ø�W˜h¨ñ
ØANð
ØRXñ
ˆð  ˆŒð		Ü'Ø×'Ñ'Ø"×0Ñ0°%¸óóð øô
 ò 	Ü.Ø˜¨j¸(Ð-CÈqôõ ûð	ús   Ã%C1 Ã1	DÃ:DÄ
DÄD)NN)Ú__name__Ú
__module__Ú__qualname__r)   r   r   Ú__annotations__Úsupports_redirectr   r    r1   r,   r3   r9   r<   rA   rG   rJ   rM   rc   Ú__classcell__)rO   s   @r   r   r      sX   ø… Ø ÐØ˜}Ñ-Ó-ØÐòò.ð ó ò
ò
òòòò2ô
÷r   r   N)Útypingr   Úurllib.parser   Údjango.core.exceptionsr   Údjango.httpr   Údjango.urlsr   Údjango.utils.httpr   Úallauth.socialaccount.helpersr	   Ú$allauth.socialaccount.providers.baser
   Ú.allauth.socialaccount.providers.base.constantsr   Ú-allauth.socialaccount.providers.oauth2.clientr   Ú,allauth.socialaccount.providers.oauth2.utilsr   Ú,allauth.socialaccount.providers.oauth2.viewsr   r   r;   r   r   ú<module>rv      s<   ðÝ Ý "å 7Ý ,Ý Ý 'å EÝ 9Ý EÝ Eõõ Gôs�Xõ sr   