o
    h                     @   sR   d dl mZmZ d dlmZ d dlmZ G dd deZG dd deZegZ	dS )	    )
AuthActionProviderAccount)MicrosoftGraphOAuth2Adapter)OAuth2Providerc                   @   s   e Zd Zdd ZdS )MicrosoftGraphAccountc                 C   s   | j jdS )Nphoto)account
extra_datagetself r   i/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/microsoft/provider.pyget_avatar_url   s   z$MicrosoftGraphAccount.get_avatar_urlN)__name__
__module____qualname__r   r   r   r   r   r      s    r   c                       sD   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  ZS )MicrosoftGraphProvider	microsoft	Microsoftc                 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jkrd|d< |S )Nselect_accountprompt)superget_auth_params_from_requestr   REAUTHENTICATE)r   requestactionret	__class__r   r   r      s   
z3MicrosoftGraphProvider.get_auth_params_from_requestc                 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!   namer   account_classr   oauth2_adapter_classr   r   r%   r0   __classcell__r   r   r   r   r      s    r   N)
$allauth.socialaccount.providers.baser   r   /allauth.socialaccount.providers.microsoft.viewsr   /allauth.socialaccount.providers.oauth2.providerr   r   r   provider_classesr   r   r   r   <module>   s    
