o
    Lff	                     @   s\   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 G dd deZ
dd Zd	d
 ZdS )    )reverse)get_adapter)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView)build_absolute_uric                       sl   e Zd ZdZ fddZedd Zedd Zedd	 Zed
d Z	edd Z
dd Zdd Z  ZS )OpenIDConnectAdapterTc                    s   || _ t | d S N)provider_idsuper__init__)selfrequestr
   	__class__ u/var/www/html/humari/django-venv/lib/python3.10/site-packages/allauth/socialaccount/providers/openid_connect/views.pyr      s   zOpenIDConnectAdapter.__init__c                 C   s<   t | ds|  j}t  |}|  | | _| jS )N_openid_config)	hasattrget_provider
server_urlr   get_requests_sessiongetraise_for_statusjsonr   )r   r   respr   r   r   openid_config   s   


z"OpenIDConnectAdapter.openid_configc                 C   s0   |   jjd}|r|dkS d| jdg v S )Ntoken_auth_methodclient_secret_basic%token_endpoint_auth_methods_supported)r   appsettingsr   r   )r   r   r   r   r   
basic_auth   s   zOpenIDConnectAdapter.basic_authc                 C   
   | j d S )Ntoken_endpointr   r   r   r   r   access_token_url%      
z%OpenIDConnectAdapter.access_token_urlc                 C   r#   )Nauthorization_endpointr%   r&   r   r   r   authorize_url)   r(   z"OpenIDConnectAdapter.authorize_urlc                 C   r#   )Nuserinfo_endpointr%   r&   r   r   r   profile_url-   r(   z OpenIDConnectAdapter.profile_urlc                 C   sB   t   j| jddt| id}|  | }|  ||S )NAuthorizationzBearer )headers)	r   r   r   r,   strr   r   r   sociallogin_from_response)r   r   r    tokenresponse
extra_datar   r   r   complete_login1   s   z#OpenIDConnectAdapter.complete_loginc                 C   s$   t dd| jid}| j}t|||S )Nopenid_connect_callbackr
   )kwargs)r   r
   redirect_uri_protocolr   )r   r   r    callback_urlprotocolr   r   r   get_callback_url;   s
   
z%OpenIDConnectAdapter.get_callback_url)__name__
__module____qualname__supports_stater   propertyr   r"   r'   r*   r,   r4   r:   __classcell__r   r   r   r   r      s    





r   c                 C      t t| |}|| S r	   )r   adapter_viewr   r   r
   viewr   r   r   loginC      rE   c                 C   rA   r	   )r   rB   r   rC   r   r   r   callbackH   rF   rG   N)django.urlsr   allauth.socialaccount.adapterr   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   allauth.utilsr   r   rE   rG   r   r   r   r   <module>   s    7