
    gk                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ  G d de	      Z ej                  e      Z e
j                  e      Zy)	    )context)app_settings)get_adapter)SocialToken)OAuth2AdapterOAuth2CallbackViewOAuth2LoginViewc                   ^    e Zd ZdZd Zed        Zed        Zed        Zde	fdZ
de	fdZy	)
NextCloudOAuth2Adapter	nextcloudc                 (   t         j                  j                  | j                  i       }|j                  dd      }t	               j                  t        j                  | j                        }|j                  j                  d|      }| | }|S )NSERVERzhttps://nextcloud.example.org)providerserver)	r   	PROVIDERSgetprovider_idr   get_appr   requestsettings)selfpathr   r   apprets         l/var/www/django_project/virt/lib/python3.12/site-packages/allauth/socialaccount/providers/nextcloud/views.py_build_server_urlz(NextCloudOAuth2Adapter._build_server_url   s{    ))--d.>.>Ch(GHm##GOOd>N>N#O!!(F3
    c                 $    | j                  d      S )Nz/apps/oauth2/api/v1/tokenr   r   s    r   access_token_urlz'NextCloudOAuth2Adapter.access_token_url   s    %%&ABBr   c                 $    | j                  d      S )Nz/apps/oauth2/authorizer   r    s    r   authorize_urlz$NextCloudOAuth2Adapter.authorize_url   s    %%&>??r   c                 $    | j                  d      S )Nz/ocs/v1.php/cloud/users/r   r    s    r   profile_urlz"NextCloudOAuth2Adapter.profile_url    s    %%&@AAr   tokenc                 r    | j                  ||d   d         }| j                         j                  ||      S )Nresponseuser_id)get_user_infoget_providersociallogin_from_response)r   r   r   r&   kwargs
extra_datas         r   complete_loginz%NextCloudOAuth2Adapter.complete_login$   s:    ''vj/A)/LM
  "<<WjQQr   c                     ddj                  |j                        i}t               j                         j	                  | j
                  |z   ddi|      }|j                          |j                         d   d   }|S )NAuthorizationz
Bearer {0}formatjson)paramsheadersocsdata)r2   r&   r   get_requests_sessionr   r%   raise_for_statusr3   )r   r&   r)   r5   respr7   s         r   r*   z$NextCloudOAuth2Adapter.get_user_info(   sw    "L$7$7$DEM!!#S!!G+Xv4FPWSX 	
 	yy{5!&)r   N)__name__
__module____qualname__r   r   propertyr!   r#   r%   r   r/   r*    r   r   r   r      sh    K C C @ @ B BR+ R	; 	r   r   N)allauth.corer   allauth.socialaccountr   allauth.socialaccount.adapterr   allauth.socialaccount.modelsr   ,allauth.socialaccount.providers.oauth2.viewsr   r   r	   r   adapter_viewoauth2_loginoauth2_callbackr?   r   r   <module>rH      sQ      . 5 4 %] %P ,++,BC1$112HIr   