a
    !`                     @   sn   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
G dd deZG d	d
 d
eZegZdS )    )EmailAddress)QUERY_EMAIL)
AuthActionProviderAccount)OAuth2Providerc                   @   s   e Zd ZdZdZdZdZdS )ScopeZopenidemailZprofilezorg.cilogon.userinfoN)__name__
__module____qualname__OPENIDEMAILPROFILEUSERINFO r   r   h/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/socialaccount/providers/cilogon/provider.pyr      s   r   c                       s   e Zd Z fddZ  ZS )CILogonAccountc                    s   t t|  }| jjd|S )Nname)superr   to_strZaccount
extra_dataget)selfZdflt	__class__r   r   r      s    zCILogonAccount.to_str)r	   r
   r   r   __classcell__r   r   r   r   r      s   r   c                       sH   e Zd ZdZdZeZdd Z fddZdd Z	d	d
 Z
dd Z  ZS )CILogonProviderZcilogonZCILogonc                 C   s$   t jt jt jg}tr |t j |S )N)r   r   r   r   r   appendr   )r   Zscoper   r   r   get_default_scope   s    z!CILogonProvider.get_default_scopec                    s(   t t| ||}|tjkr$d|d< |S )Nzselect_account consentprompt)r   r   get_auth_paramsr   ZREAUTHENTICATE)r   requestactionretr   r   r   r       s    
zCILogonProvider.get_auth_paramsc                 C   s   t |dS )Nsub)strr   r   datar   r   r   extract_uid%   s    zCILogonProvider.extract_uidc                 C   s(   t |d|d|d|ddS )Nr   Zfamily_nameZ
given_nameeppn)r   	last_nameZ
first_namer)   )dictr   r&   r   r   r   extract_common_fields(   s    z%CILogonProvider.extract_common_fieldsc                 C   s4   g }| d}|r0| dr0|t|ddd |S )Nr   Zverified_emailT)r   ZverifiedZprimary)r   r   r   )r   r'   r#   r   r   r   r   extract_email_addresses0   s
    
z'CILogonProvider.extract_email_addresses)r	   r
   r   idr   r   Zaccount_classr   r    r(   r,   r-   r   r   r   r   r   r      s   r   N)Zallauth.account.modelsr   Z"allauth.socialaccount.app_settingsr   Z$allauth.socialaccount.providers.baser   r   Z/allauth.socialaccount.providers.oauth2.providerr   objectr   r   r   Zprovider_classesr   r   r   r   <module>   s   $