
    f                         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mZmZ  G d de      Z G d	 d
e      ZegZy)    )urlparse)reverse)	urlencode)ProviderProviderAccount   )AXAttributeOldAXAttribute	SRegFieldget_email_from_responseget_value_from_responsec                   $     e Zd Z fdZd Z xZS )OpenIDAccountc                     t         t        |          }t        | j                  j
                        j                  }i }|j                         D ],  \  }}|j                         j                  |      dk\  s)|} |S  |S )Nr   )
superr   	get_brandr   accountuidnetlocitemslowerfind)selfretdomainprovider_mapdp	__class__s         j/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/openid/provider.pyr   zOpenIDAccount.get_brand   sz    M424$,,**+22 &&( 	DAq||~""1%*
		 
    c                 .    | j                   j                  S N)r   r   )r   s    r    to_strzOpenIDAccount.to_str   s    ||r!   )__name__
__module____qualname__r   r$   __classcell__)r   s   @r    r   r      s     r!   r   c                   @    e Zd ZdZdZeZdZd Zd Z	d Z
d Zd Zd	 Zy
)OpenIDProvideropenidOpenIDFc                 B    t        d      }|r|dt        |      z   z  }|S )Nopenid_login?)r   r   )r   requestkwargsurls       r    get_login_urlzOpenIDProvider.get_login_url&   s(    n%36***C
r!   c                 F    g }| j                         j                  d|      S )NSERVERS)get_settingsget)r   default_serverss     r    
get_brandszOpenIDProvider.get_brands,   s#      "&&y/BBr!   c                     | j                         j                  dg       }|D ])  }||j                  |j                  d            s'|c S  i S )Nr5   
openid_url)r6   r7   
startswith)r   endpointserversservers       r    get_server_settingsz"OpenIDProvider.get_server_settings0   sT    ##%)))R8 	F#(;(;FJJ|<T(U	 	r!   c                     i }| j                  |j                  j                        }|j                  dg       }|D ]  \  }}}t	        ||g      ||<    |S )Nextra_attributesax_names)r@   r=   
server_urlr7   r   )r   response
extra_dataserver_settingsrB   attribute_idname_s           r    extract_extra_dataz!OpenIDProvider.extract_extra_data7   sk    
2283D3D3O3OP*../A2F%5 	!L$'>D6(J|$	 r!   c                     |j                   S r#   )identity_url)r   rF   s     r    extract_uidzOpenIDProvider.extract_uidA   s    $$$r!   c                 l   t        |t        j                  t        j                  g      xs d}t        |t        j                  t        j                  g      xs d}t        |t
        j                  gt        j                  t        j                  g      xs d}t        t        |      |||      S )NrC    )
sreg_namesrD   )email
first_name	last_namerJ   )
r   r	   PERSON_FIRST_NAMEr
   PERSON_LAST_NAMEr   NAMEPERSON_NAMEdictr   )r   rF   rT   rU   rJ   s        r    extract_common_fieldsz$OpenIDProvider.extract_common_fieldsD   s    #11"44   	 $00"33   	 $%NN+%11>3M3MN 
  	 )(3!	
 	
r!   N)r%   r&   r'   idrJ   r   account_class	uses_appsr3   r9   r@   rL   rO   r[    r!   r    r*   r*       s5    	BD!MIC%"
r!   r*   N)urllib.parser   django.urlsr   django.utils.httpr   $allauth.socialaccount.providers.baser   r   utilsr	   r
   r   r   r   r   r*   provider_classesr_   r!   r    <module>rf      sA    !  ' J  O  F
X F
R ## r!   