o
    ˷e                     @   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emailphoneaddressaq:locationzaq:pushN)	__name__
__module____qualname__NAMEEMAILPHONEADDRESSLOCATIONPUSH r   r   i/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/authentiq/provider.pyr      s    r   )subname
given_namefamily_namemiddle_namenicknamepreferred_usernameprofilepicturewebsiter   email_verifiedgender	birthdatezoneinfolocalephone_numberphone_number_verifiedr
   
updated_atr   c                       s,   e Zd Zdd Zdd Z fddZ  ZS )AuthentiqAccountc                 C      | j jdS )Nr   account
extra_datagetselfr   r   r   get_profile_url,      z AuthentiqAccount.get_profile_urlc                 C   r*   )Nr   r+   r/   r   r   r   get_avatar_url/   r2   zAuthentiqAccount.get_avatar_urlc                    s   t t|  }| jjd|S )Nr   )superr)   to_strr,   r-   r.   )r0   dflt	__class__r   r   r5   2   s   zAuthentiqAccount.to_str)r   r   r   r1   r3   r5   __classcell__r   r   r7   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 )AuthentiqProvider	authentiq	Authentiqc                    st   t tt| |}|d tj|v r6d}tjr|d7 }tj	r$|d7 }|r6|tjd |  |
tj t|S )Nopenid rs~)setr4   r:   	get_scopeaddr   r   r   EMAIL_REQUIREDEMAIL_VERIFICATIONremovelist)r0   requestscope	modifiersr7   r   r   rC   <   s   

zAuthentiqProvider.get_scopec                 C   s"   t jt jg}tjr|t j |S )N)r   r   r   r   QUERY_EMAILappendr   )r0   rJ   r   r   r   get_default_scopeK   s   z#AuthentiqProvider.get_default_scopec                    s(   t t| ||}|tjkrd|d< |S )Nselect_accountprompt)r4   r:   get_auth_paramsr   REAUTHENTICATE)r0   rI   actionretr7   r   r   rQ   Q   s   
z!AuthentiqProvider.get_auth_paramsc                 C   s   t |d S )Nr   )strr0   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   
first_name	last_name)dictr.   rV   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   s    z8AuthentiqProvider.extract_extra_data.<locals>.<dictcomp>)itemsrV   r   r   r   extract_extra_datac   s   z$AuthentiqProvider.extract_extra_datac                 C   s4   g }| d}|r| dr|t|ddd |S )Nr   r!   T)r   verifiedprimary)r.   rM   r   )r0   rW   rT   r   r   r   r   extract_email_addressesf   s
   
z)AuthentiqProvider.extract_email_addresses)r   r   r   idr   r)   account_classrC   rN   rQ   rX   r]   rd   rg   r9   r   r   r7   r   r:   7   s    	r:   N)allauth.account.modelsr   allauth.socialaccountr   $allauth.socialaccount.providers.baser   r   /allauth.socialaccount.providers.oauth2.providerr   objectr   	frozensetr^   r)   r:   provider_classesr   r   r   r   <module>   s    	
7