U
    [!c                     @   sR   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egZ	dS )	    )unicode_literals)
AuthActionProviderAccount)OAuth2Providerc                       s$   e Zd Zdd Z fddZ  ZS )MicrosoftGraphAccountc                 C   s   | j jdS )NZphoto)account
extra_datagetself r   v/var/www/html/crackeverytest/cet_env/lib/python3.8/site-packages/allauth/socialaccount/providers/microsoft/provider.pyget_avatar_url   s    z$MicrosoftGraphAccount.get_avatar_urlc                    s   t t|  }| jjd|S )NZdisplayName)superr   to_strr   r   r	   )r   Zdflt	__class__r   r   r      s    zMicrosoftGraphAccount.to_str)__name__
__module____qualname__r   r   __classcell__r   r   r   r   r      s   r   c                       sD   e Zd ZedZdZeZdd Z fddZ	dd Z
d	d
 Z  ZS )MicrosoftGraphProvider	microsoftzMicrosoft Graphc                 C   s   dgS )z
        Docs on Scopes and Permissions:
        https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#scopes-and-permissions
        z	User.Readr   r
   r   r   r   get_default_scope   s    z(MicrosoftGraphProvider.get_default_scopec                    s(   t t| ||}|tjkr$d|d< |S )NZselect_accountprompt)r   r   get_auth_paramsr   ZREAUTHENTICATE)r   requestactionretr   r   r   r      s    
z&MicrosoftGraphProvider.get_auth_paramsc                 C   s   t |d S )Nid)strr   datar   r   r   extract_uid"   s    z"MicrosoftGraphProvider.extract_uidc                 C   s2   t |dp|d|d|d|ddS )NZmailZuserPrincipalNameZmailNicknameZsurnameZ	givenName)emailusername	last_nameZ
first_name)dictr	   r!   r   r   r   extract_common_fields%   s    z,MicrosoftGraphProvider.extract_common_fields)r   r   r   r    r   namer   Zaccount_classr   r   r#   r(   r   r   r   r   r   r      s   r   N)

__future__r   Z$allauth.socialaccount.providers.baser   r   Z/allauth.socialaccount.providers.oauth2.providerr   r   r   Zprovider_classesr   r   r   r   <module>   s
   	