
    e(
                        d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
mZmZ d dlZd dlmZmZ d dlmZ d dlmZ d dlZ ed	          Z ed
gd          Z ee          fdefdZ ee          fde	fdZd Zd ZdS )    )OAuth2PasswordBearerOAuth2PasswordRequestForm)CryptContext)HTTPExceptionDepends)	UserModelEmployeeModelEmployeeLaborDatumModelJobPositionModelN)jwtJWTError)get_db)Sessionz/login_users/tokenbcryptauto)schemes
deprecatedtokenc                 ^   	 t          j        | t          j        d         t          j        d         g          }|                    d          }|t          ddddi	          n"# t          $ r t          ddddi	          w xY wt          |          }|t          ddddi	          |S )
N
SECRET_KEY	ALGORITHM)
algorithmssubi  zCould not validate credentialszWWW-AuthenticateBearer)status_codedetailheaders)r   decodeosenvirongetr   r   get_user)r   decoded_tokenusernameusers       gC:\Users\jesus\OneDrive\Desktop\escritorio\erp_jis_project\master_backend\app\backend\auth\auth_user.pyget_current_userr'      s    ~
5"*\*BPRPZ[fPgOhiii $$U++ 	BC8Xcuw  cA  B  B  B  B	B ~ ~ ~4T_qs{^|}}}}~ HD ~4T_qs{^|}}}}Ks   A#A& &Bcurrent_userc                 >    | j         dk    rt          dd          | S )N   i  zInactive user)r   r   )disabledr   )r(   s    r&   get_current_active_userr,      s,    ! EODDDD    c                 B   t          t                                }|                    t          j        t          j        t          j        t          j	        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j                                      t          t          j        t          j        k                                  t          t          j        t          j        k                                  t          t          j        t          j        k                                  t          j        | k                                              }|sdS |S )N )nextr   queryr	   signature_type_id	signaturer   job_positionr
   entrance_companyr   id
visual_rutrutr+   hashed_passwordnicknamerol_id	status_idnamesfather_lastnamemother_lastname	outerjoinjob_position_idfilterfirst)r8   dbr%   s      r&   r"   r"   "   se   vxx..B88M3]5LN^Nk  nE  nV  Xa  Xd  fo  fz  |E  |I  KT  K]  _h  _x  zC  zL  NW  N^  `i  `s  uB  uH  JW  Jg  iv  iF  G  GIm]->)--OPPI57N7RV_Vc7cddI.0@0CG^Gn0nooF9=C/00EGG 	  rKr-   c                     |                      d          }t          j                    }t          j        ||          }|S )Nzutf-8)encoder   gensalthashpw)input_stringencoded_stringsalthashed_strings       r&   generate_bcrypt_hashrM   0   s9    !((11N>DM.$77Mr-   )fastapi.securityr   r   passlib.contextr   fastapir   r   app.backend.db.modelsr   r	   r
   r   r   joser   r   app.backend.db.databaser   sqlalchemy.ormr   r   oauth2_schemepwd_contextstrr'   r,   r"   rM    r-   r&   <module>rY      se   L L L L L L L L ( ( ( ( ( ( * * * * * * * * e e e e e e e e e e e e 				         * * * * * * " " " " " " $$%9::lH:&AAA")'-"8"8  C     7>g>N6O6O  )    
      r-   