o
    h
                     @   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
 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 )    )Http404)reverse)login_not_required)get_adapter)	SocialApp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__ k/var/www/html/pos/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   r0   r1   r   r   r   sociallogin_from_response)r   r   r$   r1   kwargsresponse
extra_datar   r   r   complete_login2   s   z)OpenIDConnectOAuth2Adapter.complete_loginc                 C   s$   t dd| jid}| j}t|||S )Nopenid_connect_callbackr   )r5   )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.   r0   r   r8   r=   __classcell__r   r   r   r   r      s    





r   c                 C   0   zt t| |}|| W S  tjy   tw r   )r
   adapter_viewr   r   DoesNotExistr   r   r   viewr   r   r   loginD      
rH   c                 C   rC   r   )r	   rD   r   r   rE   r   rF   r   r   r   callbackO   rI   rJ   N)django.httpr   django.urlsr   #allauth.account.internal.decoratorsr   allauth.socialaccount.adapterr   allauth.socialaccount.modelsr   r   ,allauth.socialaccount.providers.oauth2.viewsr   r	   r
   allauth.utilsr   r   rH   rJ   r   r   r   r   <module>   s    5

