a
    Qx_                     @   sz   d dl mZ d dlmZ d dlmZmZ d dlmZ G dd de	Z
eg dZG dd	 d	eZG d
d deZegZdS )    )EmailAddress)app_settings)
AuthActionProviderAccount)OAuth2Providerc                   @   s$   e Zd ZdZdZdZdZdZdZdS )Scopezaq:nameemailZphoneaddressaq:locationzaq:pushN)	__name__
__module____qualname__NAMEEMAILZPHONEZADDRESSZLOCATIONPUSH r   r   j/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/socialaccount/providers/authentiq/provider.pyr      s   r   )subname
given_namefamily_nameZmiddle_nameZnicknamepreferred_usernameprofilepictureZwebsiter   email_verifiedZgenderZ	birthdateZzoneinfolocaleZphone_numberZphone_number_verifiedr	   Z
updated_atr
   c                       s,   e Zd Zdd Zdd Z fddZ  ZS )AuthentiqAccountc                 C   s   | j jdS )Nr   account
extra_datagetselfr   r   r   get_profile_url,   s    z AuthentiqAccount.get_profile_urlc                 C   s   | j jdS )Nr   r   r!   r   r   r   get_avatar_url/   s    zAuthentiqAccount.get_avatar_urlc                    s   t t|  }| jjd|S )Nr   )superr   to_strr   r   r    )r"   Zdflt	__class__r   r   r&   2   s    zAuthentiqAccount.to_str)r   r   r   r#   r$   r&   __classcell__r   r   r'   r   r   +   s   r   c                       s\   e Zd ZdZdZeZ fddZdd Z fddZ	d	d
 Z
dd Zdd Zdd Z  ZS )AuthentiqProviderZ	authentiqZ	Authentiqc                    st   t tt| |}|d tj|v rld}tjr:|d7 }tj	rH|d7 }|rl|tjd |  |
tj t|S )NZopenid rs~)setr%   r*   	get_scopeaddr   r   r   ZEMAIL_REQUIREDZEMAIL_VERIFICATIONremovelist)r"   requestscope	modifiersr'   r   r   r0   <   s    

zAuthentiqProvider.get_scopec                 C   s"   t jt jg}tjr|t j |S )N)r   r   r   r   ZQUERY_EMAILappendr   )r"   r5   r   r   r   get_default_scopeK   s    z#AuthentiqProvider.get_default_scopec                    s(   t t| ||}|tjkr$d|d< |S )NZselect_accountprompt)r%   r*   get_auth_paramsr   ZREAUTHENTICATE)r"   r4   actionretr'   r   r   r:   Q   s    
z!AuthentiqProvider.get_auth_paramsc                 C   s   t |d S )Nr   )strr"   datar   r   r   extract_uidW   s    zAuthentiqProvider.extract_uidc                 C   s8   t |d|d|d|d|d|ddS )Nr   r   r   r   r   )usernamer   r   Z
first_name	last_name)dictr    r>   r   r   r   extract_common_fieldsZ   s    z'AuthentiqProvider.extract_common_fieldsc                 C   s   dd |  D S )Nc                 S   s   i | ]\}}|t v r||qS r   )IDENTITY_CLAIMS).0kvr   r   r   
<dictcomp>d       z8AuthentiqProvider.extract_extra_data.<locals>.<dictcomp>)itemsr>   r   r   r   extract_extra_datac   s    z$AuthentiqProvider.extract_extra_datac                 C   s4   g }| d}|r0| dr0|t|ddd |S )Nr   r   T)r   ZverifiedZprimary)r    r7   r   )r"   r?   r<   r   r   r   r   extract_email_addressesf   s
    
z)AuthentiqProvider.extract_email_addresses)r   r   r   idr   r   Zaccount_classr0   r8   r:   r@   rD   rL   rM   r)   r   r   r'   r   r*   7   s   	r*   N)Zallauth.account.modelsr   Zallauth.socialaccountr   Z$allauth.socialaccount.providers.baser   r   Z/allauth.socialaccount.providers.oauth2.providerr   objectr   	frozensetrE   r   r*   Zprovider_classesr   r   r   r   <module>   s   	7