
    fV                     t    d dl mZ d dlmZ d dlmZ  G d d      Z G d de      Z G d d	e      ZegZ	d
 Z
y)    )ProviderAccount)OAuth2Provider)OrcidOAuth2Adapterc                       e Zd ZdZy)Scopez/authenticateN)__name__
__module____qualname__USERINFO_PROFILE     i/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/orcid/provider.pyr   r      s    &r   r   c                       e Zd Zd Zy)OrcidAccountc                 F    t        | j                  j                  ddg      S )Norcid-identifieruri)extract_from_dictaccount
extra_dataselfs    r   get_profile_urlzOrcidAccount.get_profile_url   s     !8!8;Mu:UVVr   N)r   r	   r
   r   r   r   r   r   r   
   s    Wr   r   c                   .    e Zd ZdZdZeZeZd Z	d Z
d Zy)OrcidProviderorcidz	Orcid.orgc                 $    t         j                  gS N)r   r   r   s    r   get_default_scopezOrcidProvider.get_default_scope   s    &&''r   c                     t        |ddg      S )Nr   path)r   )r   datas     r   extract_uidzOrcidProvider.extract_uid   s     (:F'CDDr   c           	          t        t        |g d      t        |g d      t        |g d            }t        d |j                         D              S )N)personemailsemailr   r'   )r%   namezfamily-namevalue)r%   r(   zgiven-namesr)   )r'   	last_name
first_namec              3   0   K   | ]  \  }}|s	||f  y wr   r   ).0keyr)   s      r   	<genexpr>z6OrcidProvider.extract_common_fields.<locals>.<genexpr>%   s     T\c5eS%LTs   
	)dictr   items)r   r"   common_fieldss      r   extract_common_fieldsz#OrcidProvider.extract_common_fields   sQ    #D*ST'@ )@
 T]5H5H5JTTTr   N)r   r	   r
   idr(   r   account_classr   oauth2_adapter_classr   r#   r3   r   r   r   r   r      s(    	BD M-(E
Ur   r   c                 X    | }	 |D ]  }||   }	 |S # t         t        t        f$ r Y yw xY w)zo
    Navigate `data`, a multidimensional array (list or dictionary), and returns
    the object at `path`.
     )KeyError
IndexError	TypeError)r"   r!   r)   r.   s       r   r   r   +   sD    
 E 	C#JE	j), s    ))N)$allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.oauth2.providerr   +allauth.socialaccount.providers.orcid.viewsr   r   r   r   provider_classesr   r   r   r   <module>r@      sC    @ J J' 'W? W
UN U2 "? r   