o
    hV                     @   sd   d dl mZ d dlmZ d dlmZ G dd dZG dd deZG dd	 d	eZegZ	d
d Z
dS )    )ProviderAccount)OAuth2Provider)OrcidOAuth2Adapterc                   @   s   e Zd ZdZdS )Scopez/authenticateN)__name__
__module____qualname__USERINFO_PROFILE r
   r
   e/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/orcid/provider.pyr      s    r   c                   @   s   e Zd Zdd ZdS )OrcidAccountc                 C   s   t | jjddgS )Norcid-identifieruri)extract_from_dictaccount
extra_dataselfr
   r
   r   get_profile_url   s   zOrcidAccount.get_profile_urlN)r   r   r   r   r
   r
   r
   r   r   
   s    r   c                   @   s4   e Zd ZdZdZeZeZdd Z	dd Z
dd Zd	S )
OrcidProviderorcidz	Orcid.orgc                 C   s   t jgS N)r   r	   r   r
   r
   r   get_default_scope   s   zOrcidProvider.get_default_scopec                 C   s   t |ddgS )Nr   path)r   )r   datar
   r
   r   extract_uid   s   zOrcidProvider.extract_uidc                 C   sB   t t|g dt|g dt|g dd}t dd | D S )N)personemailsemailr   r   )r   namezfamily-namevalue)r   r   zgiven-namesr    )r   	last_name
first_namec                 s   s     | ]\}}|r||fV  qd S r   r
   ).0keyr    r
   r
   r   	<genexpr>%   s    z6OrcidProvider.extract_common_fields.<locals>.<genexpr>)dictr   items)r   r   common_fieldsr
   r
   r   extract_common_fields   s   	z#OrcidProvider.extract_common_fieldsN)r   r   r   idr   r   account_classr   oauth2_adapter_classr   r   r)   r
   r
   r
   r   r      s    r   c              
   C   s8   | }z|D ]}|| }q|W S  t ttfy   Y dS w )zo
    Navigate `data`, a multidimensional array (list or dictionary), and returns
    the object at `path`.
     )KeyError
IndexError	TypeError)r   r   r    r$   r
   r
   r   r   +   s   
r   N)$allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.oauth2.providerr   +allauth.socialaccount.providers.orcid.viewsr   r   r   r   provider_classesr   r
   r
   r
   r   <module>   s    