
    )Jfv	                         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
 G d d	e	          ZegZd
S )    )reverse)	urlencode)EmailAddress)ProviderAccount)OAuth2Providerc                        e Zd Z fdZ xZS )OpenIDConnectProviderAccountc                     t          t          |                                           }| j        j                            d|          S )Nname)superr	   to_straccount
extra_dataget)selfdflt	__class__s     z/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/openid_connect/provider.pyr   z#OpenIDConnectProviderAccount.to_str
   s:    1488??AA|&**64888    )__name__
__module____qualname__r   __classcell__r   s   @r   r	   r	   	   s8        9 9 9 9 9 9 9 9 9r   r	   c                        e Zd ZdZdZeZ fdZed             Z	d Z
d Zd Zed             Zd	 Zd
 Zd Zd Z xZS )OpenIDConnectProvideropenid_connectzOpenID Connectc                 \     t                      j        |i | | j        j        | _        d S )N)r   __init__appr   )r   argskwargsr   s      r   r   zOpenIDConnectProvider.__init__   s.    $)&)))HM			r   c                 P    | j         j        d         }|                     |          S )N
server_url)r    settingswk_server_url)r   urls     r   r$   z OpenIDConnectProvider.server_url   s%    h-!!#&&&r   c                 >    d}|                     |          s||z  }|S )Nz!/.well-known/openid-configuration)endswith)r   r'   well_known_uris      r   r&   z#OpenIDConnectProvider.wk_server_url   s*    <||N++ 	">!C
r   c                     t          | j        j        dz   d| j        j        i          }|r|dz   t	          |          z   }|S )N_loginprovider_idr"   ?)r   r    providerr-   r   )r   requestr"   r'   s       r   get_login_urlz#OpenIDConnectProvider.get_login_url#   sT    H(-AU1V
 
 
  	0)i///C
r   c                 V    t          | j        j        dz   d| j        j        i          S )N	_callbackr-   r.   )r   r    r0   r-   r   s    r   get_callback_urlz&OpenIDConnectProvider.get_callback_url+   s3    H+!48#78
 
 
 	
r   c                 @    | j         j                            d          S )Ntoken_auth_method)r    r%   r   r5   s    r   r8   z'OpenIDConnectProvider.token_auth_method1   s    x $$%8999r   c                 
    g dS )N)openidprofileemail r5   s    r   get_default_scopez'OpenIDConnectProvider.get_default_scope5   s    ----r   c                 ,    t          |d                   S )Nsub)strr   datas     r   extract_uidz!OpenIDConnectProvider.extract_uid8   s    4;r   c           	          t          |                    d          |                    d          |                    d          |                    d          |                    d                    S )Nr<   preferred_usernamer   user_idpicture)r<   usernamer   rG   rH   )dictr   rB   s     r   extract_common_fieldsz+OpenIDConnectProvider.extract_common_fields;   se    ((7##XX233&!!HHY''HHY''
 
 
 	
r   c           	          g }|                     d          }|r9|                    t          ||                     dd          d                     |S )Nr<   email_verifiedFT)r<   verifiedprimary)r   appendr   )r   rC   	addressesr<   s       r   extract_email_addressesz-OpenIDConnectProvider.extract_email_addressesD   sj    	!! 	!XX&6>>      r   )r   r   r   idr   r	   account_classr   propertyr$   r&   r2   r6   r8   r>   rD   rK   rR   r   r   s   @r   r   r      s        	BD0M" " " " " ' ' X'    
 
 
 : : X:. . .     
 
 
      r   r   N)django.urlsr   django.utils.httpr   allauth.account.modelsr   $allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.oauth2.providerr   r	   r   provider_classesr=   r   r   <module>r\      s          ' ' ' ' ' ' / / / / / / @ @ @ @ @ @ J J J J J J9 9 9 9 9? 9 9 9@ @ @ @ @N @ @ @F **   r   