
    f                         d dl Z 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
 d dlmZ d dlmZ d d	lmZ  e j"                  e      Z G d
 de      Zy)    N)	parse_qsl)ImproperlyConfigured)reverse)	urlencode)render_authentication_error)Provider)
AuthAction)
OAuthErrorc                   Z     e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Z fd
ZddZ xZS )OAuthProviderTc                 \    t        | j                  dz         }|r|dz   t        |      z   }|S )N_login?)r   idr   )selfrequestkwargsurls       i/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/oauth/provider.pyget_login_urlzOAuthProvider.get_login_url   s0    dgg())i//C
    c                 \    | j                         }t        |j                  di             }|S )NAUTH_PARAMS)get_settingsdictget)r   settingsrets      r   get_auth_paramszOAuthProvider.get_auth_params   s*    $$&8<<r23
r   c                     | j                         }|j                  j                  dd       }|r#|j                  t	        t        |                   |S )Nauth_params)r   GETr   updater   r   )r   r   actionr   dynamic_auth_paramss        r   get_auth_params_from_requestz*OAuthProvider.get_auth_params_from_request   sD    ""$%kkoomTBJJtI&9:;<
r   c                      y N )r   r   r$   s      r   get_auth_urlzOAuthProvider.get_auth_url&   s     r   c                 "    | j                         S r(   )	get_scoper   r   s     r   get_scope_from_requestz$OAuthProvider.get_scope_from_request,   s    ~~r   c                 l    | j                         }|j                  d      }|| j                         }|S )NSCOPE)r   r   get_default_scope)r   r   scopes      r   r,   zOAuthProvider.get_scope/   s6    $$&W%=**,Er   c                     g S r(   r)   )r   s    r   r1   zOAuthProvider.get_default_scope6   s    	r   c                 X    t        | d      st        d|       | j                  |      S )Noauth_adapter_classzNo oauth_adapter_class set for )hasattrr   r5   r-   s     r   get_oauth_adapterzOAuthProvider.get_oauth_adapter9   s1    t23&)H'QRR''00r   c                     t         |   |      }| j                  |      |d<   |j                  j	                  dt
        j                        }||d<   | j                  ||      |d<   |S )Nr2   r$   r!   )super get_redirect_from_request_kwargsr.   r"   r   r	   AUTHENTICATEr&   )r   r   r   r$   	__class__s       r   r:   z.OAuthProvider.get_redirect_from_request_kwargs>   sf    9'B55g>w:+B+BC!x $ A A'6 R}r   c                 T   t        | j                  dz         }| j                  |      }|j                  dt        j
                        }| j                  ||      xs |j                  }	|j                  dd       }
|
| j                         }
|j                  dd       }|| j                         } | j                  ||||fi | |j                  |||      }	 |j                  |	|
      S # t        $ r/}t        j                  dd       t!        || |	      cY d }~S d }~ww xY w)
N	_callbackr$   r!   r2   )r2   zOAuth authentication errorT)exc_info)	exception)r   r   r7   popr	   r;   r*   authorize_urlr   r,   stash_redirect_state_get_clientget_redirectr
   loggererrorr   )r   r   processnext_urldatar   callback_urloauth_adapterr$   auth_urlr!   r2   clientes                 r   redirectzOAuthProvider.redirectF   s   tww45..w7Hj&=&=>$$Wf5T9T9Tjj5..0K

7D)=NN$E!!!'7HdMfM**7L*N	K&&x== 	KLL5LE.wJJ	Ks   C/ /	D'8$D"D'"D')NN)__name__
__module____qualname__supports_redirectr   r   r&   r*   r.   r,   r1   r7   r:   rP   __classcell__)r<   s   @r   r   r      s<    
 1
Kr   r   )loggingurllib.parser   django.core.exceptionsr   django.urlsr   django.utils.httpr   allauth.socialaccount.helpersr   $allauth.socialaccount.providers.baser   .allauth.socialaccount.providers.base.constantsr	   ,allauth.socialaccount.providers.oauth.clientr
   	getLoggerrQ   rF   r   r)   r   r   <module>r`      sD     " 7  ' E 9 E C 
		8	$FKH FKr   