
    yi
	                         S SK JrJr  S SKrS SKrS SKrS SKrS SKJr  SSK	J
r
  SSKJr  \" S/S	S
9r1 SkrS\SS4S jrS\S\S-  4S jrS\4S jrS\4S jrS\4S jrS\4S jrg)    )RequestHTTPExceptionN)CryptContext   )
SECRET_KEY   )get_user_by_idbcryptauto)schemes
deprecated>   PUTPOSTPATCHDELETErequestreturnc                 p   U R                   R                  5         [        R                  " S5      U R                   S'   [        R                  " S5      U R                   S'   [	        [
        R
                  " 5       5      U R                   S'   [	        [
        R
                  " 5       5      U R                   S'   g )N    sidcsrf
created_at)sessionclearsecretstoken_urlsafeinttime)r   s    -/home/mario/Escritorio/furbo/app/auth/deps.pyrotate_sessionr       sv    OO$2226GOOE%33B7GOOF$'		$4GOOL!$'		$4GOOL!    tokenc                     U R                   R                  S5      nU(       a>  U(       a7  [        R                  " [	        U5      [	        U=(       d    S5      5      (       d
  [        SSS9eg )Nr      u   CSRF token inválidostatus_codedetail)r   gethmaccompare_digeststrr   )r   r"   sesss      r   require_csrfr.      sO    ??v&DuD$7$7D	3u{PRCS$T$T4JKK %Ur!   c                 z    U R                   [        ;   a'  U R                  R                  S5      n[	        X5        g g )NzX-CSRF-Token)methodUNSAFE_METHODSheadersr)   r.   )r   r"   s     r   _enforce_csrf_if_unsafer3      s/    ~~'##N3W$ (r!   c                 p    U R                   R                  S5      nU(       d  g [        [        U5      5      $ )Nuser_id)r   r)   r	   r   )r   r5   s     r   current_userr6   $   s+    oo!!),G#g,''r!   c                 2   [        U 5      nU(       d
  [        SSS9e[        U 5        [        U[        R
                  5      (       a  US   O[        UR                  SS5      5      =(       d    Sn[        U5      R                  5       S:w  a
  [        SSS9eU$ )	N  No autenticador&   roler$   adminr%   zSolo administradores	r6   r   r3   
isinstancesqlite3Rowr,   r)   lowerr   mer:   s      r   require_adminrC   *   s|    	g	B4DEEG$$R55BvJ3rvvfb?Q;RYWYD
4yG#4JKKIr!   c                 2   [        U 5      nU(       d
  [        SSS9e[        U 5        [        U[        R
                  5      (       a  US   O[        UR                  SS5      5      =(       d    Sn[        U5      R                  5       S;  a
  [        SSS9eU$ )	Nr8   r9   r&   r:   r$   )docenter;   r%   zSolo docentes o adminr<   rA   s      r   require_docente_or_adminrF   4   s}    	g	B4DEEG$$R55BvJ3rvvfb?Q;RYWYD
4y 444KLLIr!   )fastapir   r   r   r   r*   r>   passlib.contextr   databaser   crudr	   pwd_contextr1   r    r,   r.   r3   r6   rC   rF    r!   r   <module>rM      s    *     ( !   H:&A35G 5 5L' L#* L
%W %
(' (7 g r!   