o
    ˷e                     @   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 )Nphoto)account
extra_datagetself r   i/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/microsoft/provider.pyget_avatar_url   s   z$MicrosoftGraphAccount.get_avatar_urlc                    s   t t|  }| jjd|S )NdisplayName)superr   to_strr   r	   r
   )r   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 )Nselect_accountprompt)r   r   get_auth_paramsr   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 )NmailuserPrincipalNamemailNicknamesurname	givenName)emailusername	last_name
first_name)dictr
   r&   r   r   r   extract_common_fields%   s   z,MicrosoftGraphProvider.extract_common_fields)r   r   r   r%   r$   namer   account_classr   r   r(   r3   r   r   r   r   r   r      s    r   N)

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