o
    "4g0
                     @   s|   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
mZ d dlmZ G dd de	Zed	d
 Zedd ZdS )    )reverse)login_not_required)get_adapter)SocialToken)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView)build_absolute_uric                       sn   e 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e
fddZdd Z  ZS )OpenIDConnectOAuth2Adapterc                    s   || _ t | d S N)provider_idsuper__init__)selfrequestr   	__class__ }/var/www/html/authentication-server/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/openid_connect/views.pyr      s   z#OpenIDConnectOAuth2Adapter.__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(OpenIDConnectOAuth2Adapter.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%OpenIDConnectOAuth2Adapter.basic_authc                 C   
   | j d S )Ntoken_endpointr   r   r   r   r   access_token_url%      
z+OpenIDConnectOAuth2Adapter.access_token_urlc                 C   r%   )Nauthorization_endpointr'   r(   r   r   r   authorize_url)   r*   z(OpenIDConnectOAuth2Adapter.authorize_urlc                 C   r%   )Nuserinfo_endpointr'   r(   r   r   r   profile_url-   r*   z&OpenIDConnectOAuth2Adapter.profile_urltokenc                 K   s@   t   j| jdd|j id}|  | }|  ||S )NAuthorizationzBearer )headers)	r   r   r   r.   r/   r   r   r   sociallogin_from_response)r   r   r"   r/   kwargsresponse
extra_datar   r   r   complete_login1   s   z)OpenIDConnectOAuth2Adapter.complete_loginc                 C   s$   t dd| jid}| j}t|||S )Nopenid_connect_callbackr   )r3   )r   r   redirect_uri_protocolr	   )r   r   r"   callback_urlprotocolr   r   r   get_callback_url;   s
   
z+OpenIDConnectOAuth2Adapter.get_callback_url)__name__
__module____qualname__r   propertyr   r$   r)   r,   r.   r   r6   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   callbackK   rF   rG   N)django.urlsr   #allauth.account.internal.decoratorsr   allauth.socialaccount.adapterr   allauth.socialaccount.modelsr   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   allauth.utilsr	   r
   rE   rG   r   r   r   r   <module>   s    5
