
    f                        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     a/var/www/equiseq/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                 F   t          | j        j        dz             }t          j        |           |j                            dt          j                  }| j        	                                }|
                    ||          p| j        j        }|                    ||          }|                     ||          }		 |	                    ||          S # t          $ rB}
t                               dd           t%          || j        j        |
          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	&&x=== 	 	 	LL5LEEE.1Q        	s   >C 
D 7DD D N)r!   r"   r#   rR   r$   r   r   r>   r>   H   s#            r   r>   c                       e Zd Zd ZdS )OAuthCallbackViewc                    t          | j        j        dz             }|                     ||          }|                                sOd|j        v rt          j        }nt          j        }t          |          }t          || j        j        ||          S | j                                        j        }	 |                                }t          ||d         |                    dd                    }| j                            ||||	          }	||	_        t%          j        |          |	_        t+          ||	          S # t,          $ r&}
t          || j        j        |

          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)rN   extra_contextoauth_tokenoauth_token_secret )r   tokentoken_secret)responserC   N)r   r    r   r;   is_validrF   r
   	CANCELLEDUNKNOWNdictr   r   r   get_access_tokenr   rG   r   r\   r   unstash_statestater   r   )r   r   login_done_urlr:   rN   rX   r   access_tokenr\   rR   rQ   s              r   r)   zOAuthCallbackView.dispatch[   s   
 !!9K!GHH!!'>::   	7;&&!+!) f555M.(+	    l''))-	!2244L"=1)--.BBGG	  E L//el 0  E  EK%3G<<EK(%888 	 	 	.1Q        	s   5BE 
E3E.(E3.E3N)r!   r"   r#   r)   r$   r   r   rT   rT   Z   s#        % % % % %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 . . .        >    _i   $& & & & &	 & & & & &r   