o
    h                     @   s   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
 G dd d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)AuthentiqOAuth2Adapter)
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/html/pos/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d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,   r0   r   r   r   get_avatar_url0   r3   zAuthentiqAccount.get_avatar_urlN)r   r   r   r2   r4   r   r   r   r   r*   ,   s    r*   c                       s`   e Zd ZdZdZe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                    sp   t t |}|d tj|v r4d}tjr|d7 }tjr"|d7 }|r4|tjd |  |	tj t
|S )Nopenid rs~)setsuperget_scope_from_requestaddr   r   r   EMAIL_REQUIREDEMAIL_VERIFICATIONremovelist)r1   requestscope	modifiers	__class__r   r   r?   :   s   

z(AuthentiqProvider.get_scope_from_requestc                 C   s"   t jt jg}tjr|t j |S )N)r   r   r   r   QUERY_EMAILappendr   )r1   rF   r   r   r   get_default_scopeI   s   z#AuthentiqProvider.get_default_scopec                    s$   t  ||}|tjkrd|d< |S )Nselect_accountprompt)r>   get_auth_params_from_requestr   REAUTHENTICATE)r1   rE   actionretrH   r   r   rO   O   s   
z.AuthentiqProvider.get_auth_params_from_requestc                 C   s   t |d S )Nr   )strr1   datar   r   r   extract_uidU   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/   rT   r   r   r   extract_common_fieldsX   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>b   s    z8AuthentiqProvider.extract_extra_data.<locals>.<dictcomp>)itemsrT   r   r   r   extract_extra_dataa   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/   rK   r   )r1   rU   rR   r	   r   r   r   extract_email_addressesd   s
   
z)AuthentiqProvider.extract_email_addresses)r   r   r   idr   r*   account_classr   oauth2_adapter_classr?   rL   rO   rV   r[   rb   re   __classcell__r   r   rH   r   r5   4   s    	r5   N)allauth.account.modelsr   allauth.socialaccountr   /allauth.socialaccount.providers.authentiq.viewsr   $allauth.socialaccount.providers.baser   r   /allauth.socialaccount.providers.oauth2.providerr   r   	frozensetr\   r*   r5   provider_classesr   r   r   r   <module>   s    	
8