
     h                     v    d dl mZ d dlmZmZ  G d de          Z G d de          Z G d de          Zd	S )
    )domain_matches)AuthBaseHTTPBasicAuthc                   .     e Zd ZdZd fd	Z fdZ xZS )BasicAuthenticationFNc                 h    || _         t          t          |                               ||           d S N)domainsuperr   __init__)selfusernamepasswordr
   	__class__s       H/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/coreapi/auth.pyr   zBasicAuthentication.__init__   s1    !4((11(HEEEEE    c                     t          || j                  s|S t          t          |                               |          S r	   )r   r
   r   r   __call__)r   requestr   s     r   r   zBasicAuthentication.__call__   s;    gt{33 	N($//88AAAr   r	   )__name__
__module____qualname__allow_cookiesr   r   __classcell__)r   s   @r   r   r      sj        MF F F F F FB B B B B B B B Br   r   c                   $    e Zd ZdZdZddZd ZdS )TokenAuthenticationFBearerNc                 8    || _         || _        |	|| _        dS dS )z
        * Use an unauthenticated client, and make a request to obtain a token.
        * Create an authenticated client using eg. `TokenAuthentication(token="<token>")`
        N)tokenr
   scheme)r   r   r    r
   s       r   r   zTokenAuthentication.__init__   s+    
 
 DKKK r   c                 f    t          || j                  s|S | j        d| j        |j        d<   |S )N Authorization)r   r
   r    r   headersr   r   s     r   r   zTokenAuthentication.__call__!   s;    gt{33 	N6:kkk4::+N(r   )NN)r   r   r   r   r    r   r    r   r   r   r      sA        MF! ! ! !    r   r   c                   .    e Zd ZdZdZdZddZd Zd ZdS )	SessionAuthenticationzy
    Enables session based login.

    * Make an initial request to obtain a CSRF token.
    * Make a login request.
    T)GETHEADOPTIONSTRACENc                 >    || _         || _        d | _        || _        d S r	   )csrf_cookie_namecsrf_header_name
csrf_tokenr
   )r   r.   r/   r
   s       r   r   zSessionAuthentication.__init__3   s$     0 0r   c                 T    | j         |j        v r|j        | j                  | _        d S d S r	   )r.   cookiesr0   )r   responsekwargss      r   store_csrf_tokenz&SessionAuthentication.store_csrf_token9   s1     H$444&.t/DEDOOO 54r   c                     t          || j                  s|S | j        r)| j        "|j        | j        vr| j        |j        | j        <   | j        |                    d| j	                   |S )Nr3   )
r   r
   r0   r/   methodsafe_methodsr$   r.   register_hookr5   r%   s     r   r   zSessionAuthentication.__call__=   sv    gt{33 	N? 	Et4@gn\`\mFmFm59_GOD12 ,!!*d.CDDDr   )NNN)	r   r   r   __doc__r   r8   r   r5   r   r&   r   r   r(   r(   )   s_          M6L   F F F    r   r(   N)coreapi.utilsr   requests.authr   r   r   r   r(   r&   r   r   <module>r=      s    ( ( ( ( ( ( 1 1 1 1 1 1 1 1B B B B B- B B B    (   ,    H     r   