
    i                        d dl mZ d dlmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZ dedz  defd	Zdedz  defd
Z ed      fdedz  defdZ ed      fdedz  defdZ ed      fdedz  defdZ ed      fdedz  defdZ ee      fdedee	ddf   fdZ ee      fdedee	ddf   fdZg dZy)    )	Generator)DependsHeaderHTTPExceptionQuerystatus)Session)open_db_session)AuthContextresolve_token	raw_valueNreturnc                     | y| j                         }|j                         j                  d      r#|j                  dd      d   j                         S |S )N zbearer     )striplower
startswithsplit)r   values     1/var/www/html/apps/ordini/backend/app/api/deps.py_normalize_tokenr   
   sO    OOE{{}	*{{3"1%++--L    c                 l    t        |       }t        |      }|t        t        j                  d      |S )NzToken o sessione non validistatus_codedetail)r   r   r   r   HTTP_401_UNAUTHORIZED)r   tokencontexts      r   validate_tokenr"      s4    Y'EE"G(D(DMjkkNr   )defaultauthorizationc                     t        |       S Nr"   )r$   s    r   require_tokenr(      s    -((r   r    c                     t        |       S r&   r'   )r    s    r   require_query_tokenr*      s    %  r   c                     t        |       }|j                  dk(  r)d|j                  vrt        t        j
                  d      |S Nstaffordiniz(Questo account non puo accedere a Ordinir   r"   rolepermissionsr   r   HTTP_403_FORBIDDEN)r$   r!   s     r   require_management_tokenr3   #   s>    ]+G||w873F3F#F(A(AJtuuNr   c                     t        |       }|j                  dk(  r)d|j                  vrt        t        j
                  d      |S r,   r/   )r    r!   s     r   require_management_query_tokenr5   *   s>    U#G||w873F3F#F(A(AJtuuNr   authc              #   J   K   t        | j                        E d {    y 7 wr&   r
   database_urlr6   s    r   get_dbr;   1        t00111   #!#c              #   J   K   t        | j                        E d {    y 7 wr&   r8   r:   s    r   get_db_from_query_tokenr?   5   r<   r=   )r;   r?   r5   r3   r*   r(   r"   )collections.abcr   fastapir   r   r   r   r   sqlalchemy.ormr	   app.core.databaser
   app.core.tenancyr   r   strr   r"   r(   r*   r3   r5   r;   r?   __all__ r   r   <module>rH      s,   % A A " - 7d
 s cDj [  /5T.B )t ){ ) -2$,? !sTz !K ! :@9M C$J R]  8=T7J #* {   ''?@ 2 2YwX\^bObEc 2 188V0W 2+ 2\efmosuyfy\z 2r   