a
    Qx_w                     @   sz   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 deZG d	d
 d
eZegZdS )    )urlparse)reverse)	urlencode)ProviderProviderAccount   )AXAttributeOldAXAttribute	SRegFieldget_email_from_responseget_value_from_responsec                       s$   e Zd Z fddZdd Z  ZS )OpenIDAccountc                    sp   t t|  }t| jjj}tdddtdddtdddd}| D ]"\}}|	 
|d	krH|} qlqH|S )
NyahooYahoo)idnamehyvesHyvesgoogleZGoogle)r   r   r   r   )superr   	get_brandr   accountuidnetlocdictitemslowerfind)selfretdomainZprovider_mapdp	__class__ g/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/socialaccount/providers/openid/provider.pyr      s    


zOpenIDAccount.get_brandc                 C   s   | j jS N)r   r   )r   r%   r%   r&   to_str"   s    zOpenIDAccount.to_str)__name__
__module____qualname__r   r(   __classcell__r%   r%   r#   r&   r      s   r   c                   @   sH   e Zd ZdZdZeZdd Zdd Zdd Z	d	d
 Z
dd Zdd ZdS )OpenIDProviderZopenidZOpenIDc                 K   s    t d}|r|dt| 7 }|S )NZopenid_login?)r   r   )r   requestkwargsurlr%   r%   r&   get_login_url+   s    zOpenIDProvider.get_login_urlc                 C   s,   t ddddt ddddg}|  d|S )	Nr   r   zhttp://me.yahoo.com)r   r   
openid_urlr   r   zhttp://hyves.nlSERVERS)r   get_settingsget)r   Zdefault_serversr%   r%   r&   
get_brands1   s    zOpenIDProvider.get_brandsc                 C   s>   |   dg }|D ]$}|d ur||dr|  S qi S )Nr4   r3   )r5   r6   
startswith)r   endpointZserversserverr%   r%   r&   get_server_settings9   s
    
z"OpenIDProvider.get_server_settingsc                 C   sD   i }|  |jj}|dg }|D ]\}}}t||gd||< q"|S )Nextra_attributesax_names)r;   r9   Z
server_urlr6   r   )r   response
extra_dataZserver_settingsr<   Zattribute_idr   _r%   r%   r&   extract_extra_data@   s    z!OpenIDProvider.extract_extra_datac                 C   s   |j S r'   )Zidentity_url)r   r?   r%   r%   r&   extract_uidJ   s    zOpenIDProvider.extract_uidc                 C   sb   t |tjtjgdpd}t |tjtjgdp.d}t |tjgtjtjgdpLd}tt	||||dS )Nr=    )Z
sreg_namesr>   )email
first_name	last_namer   )
r   r   ZPERSON_FIRST_NAMEr	   ZPERSON_LAST_NAMEr
   NAMEZPERSON_NAMEr   r   )r   r?   rF   rG   r   r%   r%   r&   extract_common_fieldsM   s:    
z$OpenIDProvider.extract_common_fieldsN)r)   r*   r+   r   r   r   Zaccount_classr2   r7   r;   rB   rC   rI   r%   r%   r%   r&   r-   &   s   
r-   N)urllib.parser   Zdjango.urlsr   Zdjango.utils.httpr   Z$allauth.socialaccount.providers.baser   r   utilsr   r	   r
   r   r   r   r-   Zprovider_classesr%   r%   r%   r&   <module>   s   	L