
    0h                     ,    S SK Jr  SSKr " S S5      rg)   )get_db_connection    Nc                   D    \ rS rSr\S 5       r\S 5       r\S 5       rSrg)	AuthModel   c                    [        SU  35        [        5       nU(       d  [        S5        g UR                  SS9nSnUR                  X@45        UR	                  5       nU(       a  [        S5        [
        R                  " UR                  S5      US	   R                  S5      5      (       aC  [        S
5         UR                  5       (       a!  UR                  5         UR                  5         gg[        S5         UR                  5       (       a!  UR                  5         UR                  5         gg[        S5         UR                  5       (       a!  UR                  5         UR                  5         gg! [         aN  n[        SU 35         SnAUR                  5       (       a!  WR                  5         UR                  5         ggSnAff = f! UR                  5       (       a!  WR                  5         UR                  5         f f = f)z/Validate user credentials against the database.z(DEBUG: Validating credentials for user: z9DEBUG: Validation failed - could not connect to database.FT
dictionaryz.SELECT password FROM users WHERE username = %szDEBUG: User found in database.utf-8passwordz!DEBUG: Password check successful.zDEBUG: Password check failed.z"DEBUG: User not found in database.z2DEBUG: FATAL: Error during credential validation: N)printr   cursorexecutefetchonebcryptcheckpwencodeis_connectedclose	Exception)usernamer   connr   queryuseres          )/var/www/fran/franai/models/auth_model.pyvalidate_credentialsAuthModel.validate_credentials   s    	8
CD "MN	[[D[1FDENN5+.??$D67>>(//'":D<L<S<ST[<\]]=>   ""

 # 9:    ""

 # :;
   ""

 #	  	FqcJK  ""

 #		   ""

 #s6   BE8 2E8 5E8 8
GGG GG 8Hc                 d   [         R                  " UR                  S5      [         R                  " 5       5      n[	        5       nU(       d  [        S5      e UR                  5       nSnUR                  XPUR                  S5      45        UR                  5          UR                  5       (       a!  UR                  5         UR                  5         gg! [
         a  nUR                  5         UeSnAff = f! UR                  5       (       a!  WR                  5         UR                  5         f f = f)z$Register a new user in the database.r   z!Could not connect to the databasez6INSERT INTO users (username, password) VALUES (%s, %s)N)r   hashpwr   gensaltr   r   r   r   decodecommitrollbackr   r   )r   r   hashed_passwordr   r   r   r   s          r   register_userAuthModel.register_user'   s     !--(@&..BRS "?@@	[[]FLENN5_-C-CG-L"MNKKM
   ""

 #	  	MMOG	   ""

 #s%   AC 
C4C//C44C7 78D/c                    [        5       nU(       d  gSn UR                  SS9nSnUR                  X@45        UR                  5       nU(       a  US   nUR                  5       (       a   WR                  5         UR                  5         U$ ! [         a  n[        SU  SU 35         SnANWSnAff = f! UR                  5       (       a!  WR                  5         UR                  5         f f = f)	z&Fetches the role for a given user PID.StaffTr	   z
                SELECT r.name as role_name 
                FROM staff_roles sr
                JOIN roles r ON sr.role_id = r.id
                WHERE sr.pid = %s
            	role_namezError fetching role for pid z: N)r   r   r   r   r   r   r   r   )pidr   roler   r   role_recordr   s          r   get_user_roleAuthModel.get_user_role<   s     !"	[[D[1FE NN5&) //+K";/   ""

  	=0Rs;<<	=   ""

 #s)   ?B 
B1B,'B4 ,B11B4 48C, N)	__name__
__module____qualname____firstlineno__staticmethodr   r&   r.   __static_attributes__r0       r   r   r      s=     B  (  r7   r   )services.mysql_servicer   r   r   r0   r7   r   <module>r9      s    6 R Rr7   