
    }5i	                         S SK JrJr  S SKJr  S SKJrJr  S SKJ	r	  S SK
r
S SKJrJr  S SKJr  S SKJr  S SKr\" S	5      r\" S
/SS9r\" \5      4S\4S jjr\" \5      4S\	4S jjrS rS rg)    )OAuth2PasswordBearerOAuth2PasswordRequestForm)CryptContext)HTTPExceptionDepends)	UserModelN)jwtJWTError)get_db)Sessionz/login_users/tokenbcryptauto)schemes
deprecatedtokenc                     [         R                  " U [        R                  S   [        R                  S   /S9nUR	                  S5      nUc  [        SSSS0S	9e [        U5      nUc  [        SSSS0S	9eS
U;   a
  US
   Ul        SU;   a
  US   Ul	        SU;   a
  US   Ul
        SU;   a
  US   Ul        SU;   a
  US   Ul        SU;   a
  US   Ul        U$ ! [         a    [        SSSS0S	9ef = f)N
SECRET_KEY	ALGORITHM)
algorithmssubi  zCould not validate credentialszWWW-AuthenticateBearer)status_codedetailheadersrol_idcustomer_id	school_idteaching_id	course_idcareer_type_id)r	   decodeosenvirongetr   r
   get_userr   r   r   r   r   r    )r   decoded_tokenusernameusers       LC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\auth\auth_user.pyget_current_userr*      sD   ~

5"**\*BPRPZPZ[fPgOhi $$U+C8Xcuw  cA  B  B 
 HD|4T_qs{^|}} = #H-%(7m#&{3%(7m#&{3=(+,<=K-  ~4T_qs{^|}}~s   AC C2current_userc                     U $ )N )r+   s    r)   get_current_active_userr.   -   s        c                    [        [        5       5      nUR                  [        5      R	                  [        R
                  U :H  5      R	                  [        R                  S:H  5      R                  5       nU(       d  gU$ )Nr    )nextr   queryr   filterrutdeleted_status_idfirst)r5   dbr(   s      r)   r%   r%   0   sZ    vx.B88IF9==C/0F966!;<EG 	
 Kr/   c                 ~    U R                  S5      n[        R                  " 5       n[        R                  " X5      nU$ )Nzutf-8)encoder   gensalthashpw)input_stringencoded_stringsalthashed_strings       r)   generate_bcrypt_hashrA   <   s2    !((1N>>DMM.7Mr/   )fastapi.securityr   r   passlib.contextr   fastapir   r   app.backend.db.modelsr   r"   joser	   r
   app.backend.db.databaser   sqlalchemy.ormr   r   oauth2_schemepwd_contextstrr*   r.   r%   rA   r-   r/   r)   <module>rL      sn    L ( * + 	  * " $%9:H:&A")-"8 C > 7>>N6O ) 
r/   