U
    Zc{	                     @   s   d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZ ddlmZ dd	 ZG d
d de	ZeeZe
eZdS )    )unicode_literalsN)app_settings)OAuth2Error)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView   )MicrosoftGraphProviderc                 C   sr   z|   }W n( t jjk
r4   td| jY nX d|krnd}|di d}|rfd||f}t||S )Nz)Invalid JSON from Microsoft Graph API: {}idz"Error retrieving Microsoft profileerrormessagez: )jsondecoderJSONDecodeErrorr   formattextgetjoin)responsedataZerror_messageZmicrosoft_error_message r   s/var/www/html/crackeverytest/cet_env/lib/python3.8/site-packages/allauth/socialaccount/providers/microsoft/views.py_check_errors   s    

r   c                   @   sp   e Zd ZejZejei Z	e	de	ddZ
de
ZdeZdeZdZdZd	d
eiZdd ZdS )MicrosoftGraphOAuth2AdapterZTENANTtenantcommonz%https://login.microsoftonline.com/{0}z{0}/oauth2/v2.0/tokenz{0}/oauth2/v2.0/authorizez#https://graph.microsoft.com/v1.0/me)ZbusinessPhonesZdisplayNameZ	givenNamer
   ZjobTitleZmailZmobilePhoneZofficeLocationZpreferredLanguageZsurnameZuserPrincipalNameZmailNicknameZcompanyNamez$select,c                 K   s<   dd |ji}tj| j| j|d}t|}|  ||S )NZAuthorizationz
Bearer {0})paramsheaders)	r   tokenrequestsr   profile_urlprofile_url_paramsr   get_providerZsociallogin_from_response)selfrequestZappr   kwargsr   r   
extra_datar   r   r   complete_login@   s    z*MicrosoftGraphOAuth2Adapter.complete_loginN)__name__
__module____qualname__r	   r
   Zprovider_idr   Z	PROVIDERSr   settingsr   r   Zprovider_base_urlZaccess_token_urlZauthorize_urlr!   Zuser_propertiesr   r"   r(   r   r   r   r   r   #   s   


r   )
__future__r   r   r    Zallauth.socialaccountr   Z-allauth.socialaccount.providers.oauth2.clientr   Z,allauth.socialaccount.providers.oauth2.viewsr   r   r   Zproviderr	   r   r   Zadapter_viewZoauth2_loginZoauth2_callbackr   r   r   r   <module>   s   (
