
    )Jf                        d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZmZ  e j        e          Z G d	 d
e          Z G d de          Z G d dee          Z G d de          ZdS )    N)reverse)get_adapter)complete_social_loginrender_authentication_error)SocialLoginSocialToken)
AuthAction	AuthError)OAuthLoginMixin)OAuthClient
OAuthErrorc                        e Zd Zd Zd Zd ZdS )OAuthAdapterc                     || _         d S N)request)selfr   s     n/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/oauth/views.py__init__zOAuthAdapter.__init__   s        c                     t           )z0
        Returns a SocialLogin instance
        )NotImplementedError)r   r   apps      r   complete_loginzOAuthAdapter.complete_login   s
     "!r   c                     t          | j                  }|                    | j        | j                  }|                    | j                  S )N)provider)r   r   get_appprovider_idget_provider)r   adapterr   s      r   r   zOAuthAdapter.get_provider#   sA    dl++oodlT5EoFF---r   N)__name__
__module____qualname__r   r   r    r   r   r   r      sA          " " ". . . . .r   r   c                   *    e Zd Zed             Zd ZdS )	OAuthViewc                       fd}|S )Nc                 h                 }| |_          |           |_         |j        | g|R i |S r   )r   r    dispatch)r   argskwargsr   r    clss       r   viewz$OAuthView.adapter_view.<locals>.view,   sH    355D"DL"77++DL 4=:4:::6:::r   r$   )r,   r    r-   s   `` r   adapter_viewzOAuthView.adapter_view*   s)    	; 	; 	; 	; 	; 	; r   c           
         | j                                         }|j        }d                    |                    |                    }i }|r||d<   t          ||j        |j        | j         j        | j         j	        |||          }|S )N scope)
parametersr   )
r    r   r   join	get_scoper   	client_idsecretrequest_token_urlaccess_token_url)r   r   callback_urlr   r   r1   r2   clients           r   _get_clientzOAuthView._get_client4   s    <,,..l++G4455
 	("'JwMJL*L)!	
 	
 	
 r   N)r!   r"   r#   classmethodr.   r;   r$   r   r   r&   r&   )   s<          [    r   r&   c                       e Zd Zd ZdS )OAuthLoginViewc                 2   t          | j        j        dz             }t          j        |           |j                            dt          j                  }| j        	                                }|
                    ||          p| j        j        }|                    ||          }|                     ||          }		 |	                    ||          S # t          $ r8}
t                               dd           t%          |||
          cY d }
~
S d }
~
ww xY w)N	_callbackactionzOAuth authentication errorT)exc_info	exception)r   r    r   r   stash_stateGETgetr	   AUTHENTICATEr   get_auth_urlauthorize_urlget_auth_paramsr;   get_redirectr   loggererrorr   )r   r   r*   r+   r9   rA   r   auth_urlauth_paramsr:   es              r   loginzOAuthLoginView.loginI   s   t|7+EFF(((:+BCC<,,..((&99WT\=W..w??!!'<88	O&&x=== 	O 	O 	OLL5LEEE.wANNNNNNNNN	Os   >C 
D-DDDN)r!   r"   r#   rR   r$   r   r   r>   r>   H   s(        O O O O Or   r>   c                       e Zd Zd ZdS )OAuthCallbackViewc                    | j                                         }t          | j         j        dz             }|                     ||          }|                                s8d|j        v rt          j        }nt          j	        }t          ||||| d          S |j        }	 |                                }t          ||d         |                    dd                    }| j                             ||||	          }	||	_        t#          j        |          |	_        t)          ||	          S # t*          $ r}
t          |||

          cY d}
~
S d}
~
ww xY w)z
        View to handle final steps of OAuth based authentication where the user
        gets redirected back to from the service provider
        r@   denied)oauth_clientcallback_view)rN   extra_contextoauth_tokenoauth_token_secret )r   tokentoken_secret)responserC   N)r    r   r   r   r;   is_validrF   r
   	CANCELLEDUNKNOWNr   r   get_access_tokenr   rG   r   r]   r   unstash_statestater   r   )r   r   r   login_done_urlr:   rN   r   access_tokenr]   rR   rQ   s              r   r)   zOAuthCallbackView.dispatchY   s   
 <,,.. !9K!GHH!!'>::   	7;&&!+!).$*%) 	    l	O!2244L"=1)--.BBGG	  E L//el 0  E  EK%3G<<EK(%888 	O 	O 	O.wANNNNNNNNN	Os    BD. .
E8E	EEN)r!   r"   r#   r)   r$   r   r   rT   rT   X   s(        &O &O &O &O &Or   rT   )loggingdjango.urlsr   allauth.socialaccount.adapterr   allauth.socialaccount.helpersr   r   allauth.socialaccount.modelsr   r   .allauth.socialaccount.providers.base.constantsr	   r
   +allauth.socialaccount.providers.base.mixinsr   ,allauth.socialaccount.providers.oauth.clientr   r   	getLoggerr!   rM   objectr   r&   r>   rT   r$   r   r   <module>rr      s          5 5 5 5 5 5        B A A A A A A A        H G G G G G        
	8	$	$. . . . .6 . . .        >O O O O O_i O O O 'O 'O 'O 'O 'O	 'O 'O 'O 'O 'Or   