o
    úLf²  ã                   @   sP   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„ deƒZ
d	S )
é    )Ú	parse_qsl)Úreverse)Ú	urlencode)ÚProvideré   )Úgenerate_code_challengec                   @   s@   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dS )ÚOAuth2ProviderFc                 K   s&   t | jd ƒ}|r|d t|ƒ }|S )NÚ_loginú?)r   Úidr   )ÚselfÚrequestÚkwargsÚurl© r   úp/var/www/html/humari/django-venv/lib/python3.10/site-packages/allauth/socialaccount/providers/oauth2/provider.pyÚget_login_url   s   zOAuth2Provider.get_login_urlc                 C   s   t | jd ƒS )NÚ	_callback)r   r   ©r   r   r   r   Úget_callback_url   s   zOAuth2Provider.get_callback_urlc                 C   s$   |   ¡ }| d| j¡rtƒ }|S i S )NÚOAUTH_PKCE_ENABLED)Úget_settingsÚgetÚpkce_enabled_defaultr   )r   ÚsettingsÚpkce_code_paramsr   r   r   Úget_pkce_params   s
   zOAuth2Provider.get_pkce_paramsc                 C   s@   |   ¡ }t| di ¡ƒ}|j dd ¡}|r| tt|ƒƒ¡ |S )NÚAUTH_PARAMSÚauth_params)r   Údictr   ÚGETÚupdater   )r   r   Úactionr   ÚretÚdynamic_auth_paramsr   r   r   Úget_auth_params   s   zOAuth2Provider.get_auth_paramsc                 C   sB   |   ¡ }t| d|  ¡ ¡ƒ}|j dd ¡}|r| | d¡¡ |S )NÚSCOPEÚscopeú,)r   Úlistr   Úget_default_scoper    ÚextendÚsplit)r   r   r   r'   Údynamic_scoper   r   r   Ú	get_scope&   s   zOAuth2Provider.get_scopec                 C   s   g S )Nr   r   r   r   r   r*   .   s   z OAuth2Provider.get_default_scopeN)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r%   r.   r*   r   r   r   r   r      s    r   N)Úurllib.parser   Údjango.urlsr   Údjango.utils.httpr   Ú$allauth.socialaccount.providers.baser   Úutilsr   r   r   r   r   r   Ú<module>   s    