
    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
  G d d      Z eg d      Z G d	 d
e      Z G d de
      ZegZy)    )EmailAddress)app_settings)AuthentiqOAuth2Adapter)
AuthActionProviderAccount)OAuth2Providerc                   $    e Zd ZdZdZdZdZdZdZy)Scopezaq:nameemailphoneaddressaq:locationzaq:pushN)	__name__
__module____qualname__NAMEEMAILPHONEADDRESSLOCATIONPUSH     m/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/authentiq/provider.pyr
   r
   
   s     DEEGHDr   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                       e Zd Zd Zd Zy)AuthentiqAccountc                 L    | j                   j                  j                  d      S )Nr"   account
extra_datagetselfs    r   get_profile_urlz AuthentiqAccount.get_profile_url/       ||&&**955r   c                 L    | j                   j                  j                  d      S )Nr#   r0   r4   s    r   get_avatar_urlzAuthentiqAccount.get_avatar_url2   r7   r   N)r   r   r   r6   r9   r   r   r   r.   r.   .   s    66r   r.   c                   V     e Zd ZdZdZeZeZ fdZ	d Z
 fdZd Zd Zd Zd	 Z xZS )
AuthentiqProvider	authentiq	Authentiqc                 t   t        t        | 	  |            }|j                  d       t        j
                  |v rrd}t        j                  r|dz  }t        j                  r|dz  }|rD|j                  t        j
                  dz   |z          |j                  t        j
                         t        |      S )Nopenid rs~)setsuperget_scope_from_requestaddr
   r   r   EMAIL_REQUIREDEMAIL_VERIFICATIONremovelist)r5   requestscope	modifiers	__class__s       r   rF   z(AuthentiqProvider.get_scope_from_request<   s    EG27;<		(;;%I**S 	..S 			%+++i78U[[)E{r   c                     t         j                  t         j                  g}t        j                  r|j                  t         j                         |S N)r
   r   r   r   QUERY_EMAILappendr   )r5   rM   s     r   get_default_scopez#AuthentiqProvider.get_default_scopeK   s2    UZZ(##LL%r   c                 X    t         |   ||      }|t        j                  k(  rd|d<   |S )Nselect_accountprompt)rE   get_auth_params_from_requestr   REAUTHENTICATE)r5   rL   actionretrO   s       r   rX   z.AuthentiqProvider.get_auth_params_from_requestQ   s0    g27FCZ...,CM
r   c                     t        |d         S )Nr   )strr5   datas     r   extract_uidzAuthentiqProvider.extract_uidW   s    4;r   c           	          t        |j                  d|j                  d            |j                  d      |j                  d      |j                  d      |j                  d            S )Nr!   r   r   r   r   )usernamer   r   
first_name	last_name)dictr3   r^   s     r   extract_common_fieldsz'AuthentiqProvider.extract_common_fieldsZ   sW    XX2DHH\4JK((7#&!xx-hh}-
 	
r   c                 h    |j                         D ci c]  \  }}|t        v s|| c}}S c c}}w rQ   )itemsIDENTITY_CLAIMS)r5   r_   kvs       r   extract_extra_dataz$AuthentiqProvider.extract_extra_datac   s+    !%FAo1E1FFFs   ..c                     g }|j                  d      }|r.|j                  d      r|j                  t        |dd             |S )Nr   r%   T)r   verifiedprimary)r3   rS   r   )r5   r_   r[   r   s       r   extract_email_addressesz)AuthentiqProvider.extract_email_addressesf   s>    !TXX./JJ|%$MN
r   )r   r   r   idr   r.   account_classr   oauth2_adapter_classrF   rT   rX   r`   rf   rl   rp   __classcell__)rO   s   @r   r;   r;   6   s<    	BD$M1 
Gr   r;   N)allauth.account.modelsr   allauth.socialaccountr   /allauth.socialaccount.providers.authentiq.viewsr   $allauth.socialaccount.providers.baser   r   /allauth.socialaccount.providers.oauth2.providerr   r
   	frozensetri   r.   r;   provider_classesr   r   r   <module>r|      sX    / . M J  66 65 5p && r   