o
    &zh                     @   sx   d dl mZ d dlmZ d dlmZ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S )    )EmailAddress)QUERY_EMAIL)
AuthActionProviderAccount)CILogonOAuth2Adapter)OAuth2Providerc                   @   s   e Zd ZdZdZdZdZdS )Scopeopenidemailprofilezorg.cilogon.userinfoN)__name__
__module____qualname__OPENIDEMAILPROFILEUSERINFO r   r   k/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/cilogon/provider.pyr      s
    r   c                   @   s   e Zd ZdS )CILogonAccountN)r   r   r   r   r   r   r   r      s    r   c                       sL   e Zd ZdZdZeZeZdd Z	 fddZ
dd Zd	d
 Zdd Z  ZS )CILogonProvidercilogonCILogonc                 C   s$   t jt jt jg}tr|t j |S )N)r   r   r   r   r   appendr   )selfscoper   r   r   get_default_scope   s   z!CILogonProvider.get_default_scopec                    s$   t  ||}|tjkrd|d< |S )Nzselect_account consentprompt)superget_auth_params_from_requestr   REAUTHENTICATE)r   requestactionret	__class__r   r   r      s   
z,CILogonProvider.get_auth_params_from_requestc                 C   s   t |dS )Nsub)strgetr   datar   r   r   extract_uid%   s   zCILogonProvider.extract_uidc                 C   s(   t |d|d|d|ddS )Nr
   family_name
given_nameeppn)r
   	last_name
first_namer.   )dictr(   r)   r   r   r   extract_common_fields(   s   z%CILogonProvider.extract_common_fieldsc                 C   s4   g }| d}|r| dr|t|ddd |S )Nr
   verified_emailT)r
   verifiedprimary)r(   r   r   )r   r*   r#   r
   r   r   r   extract_email_addresses0   s
   
z'CILogonProvider.extract_email_addresses)r   r   r   idnamer   account_classr   oauth2_adapter_classr   r   r+   r2   r6   __classcell__r   r   r$   r   r      s    r   N)allauth.account.modelsr   "allauth.socialaccount.app_settingsr   $allauth.socialaccount.providers.baser   r   -allauth.socialaccount.providers.cilogon.viewsr   /allauth.socialaccount.providers.oauth2.providerr   r   r   r   provider_classesr   r   r   r   <module>   s    
%