a
    0iY                     @   sT   d dl mZ d dlmZmZmZ dd Zdd Zdd Zd	d
 Zdd Z	dd Z
dS )    )get_connection)datetime	timedeltatimezonec           	   
   C   s>  z d}t  }| }||| f | }|r|d }|d }|dkrv|d  d|d  d|d  d|d	  }n2|d
v r|d }n td|  W d    W d S ||dW  d    W S td|   W d    W d S W d    n1 s0    Y  W n6 ty8 } ztd|   W Y d }~n
d }~0 0 d S )Nz
            SELECT RequestTypeID, FirstName, MiddleName, LastName, SecondLastName, BusinessName, Email 
            FROM Profiles WHERE USERID = ?
        r      ZEMPLEADO             )ZDISCANZDISEUAu   DISMÉXu   CLIMÉXZCLIEXT   zRequestTypeID desconocido: )NombreEmailu$   No se encontró perfil para UserID: Error: r   cursorexecutefetchoneprint	Exception)	UserIDcheck_user_queryconnr   dataZrequest_type_idr   r   e r   ;/var/www/html/src/Consultas_SQL/Security/UserPasswordSQL.pyconsultar_profile   s*    ,
4r   c              
   C   s   zd}t  tdd }t }| }||| g | }|sdtd|  d W d    W d S d}| ||f}||| | d }	|	  |	W  d    W S 1 s0    Y  W n4 t
y }
 ztd|
   W Y d }
~
n
d }
~
0 0 d S )	NzA
            SELECT COUNT(*) FROM Users WHERE UserID = ?
        i  )minuteszError: El UserID z no existe en la tabla Usersz
                INSERT INTO ActivationTokens (UserID, Token, CreatedAt, ExpiresAt, IsUsed)
                OUTPUT INSERTED.ActivationTokenID
                VALUES (?, ?, GETDATE(), ?, 0);
            r   zError guardando token: )r   utcnowr   r   r   r   fetchvalr   r   commitr   )r   Tokenr   
expires_atr   r   Z
user_countZinsert_queryvaluestoken_idr   r   r   r   
save_Token/   s&    
(r&   c           
   
   C   s   ddl }|d}z| s td|  }d}t .}| }|||f | }W d   n1 sf0    Y  |sd| }|| t	||W S  t	y    Y n< t
y }	 z$|d|  d|	   W Y d}	~	n
d}	~	0 0 dS )	u   
    Busca el módulo correspondiente a la ruta proporcionada.
    Retorna una tupla (ModuleID, CompanyID, DivisionID, DepartamentID)
    o lanza LookupError si no se encuentra.
    r   NZuser_accessu2   Ruta vacía o nula proporcionada a get_ModuleID().z
            SELECT ModuleID, CompanyID, DivisionID, DepartamentID
            FROM Modules
            WHERE LOWER(RutaPython) = LOWER(?)
        u*   Módulo no encontrado en BD para la ruta: zError en get_ModuleID(z): )logging	getLogger
ValueErrorstripr   r   r   r   warningLookupErrorr   error)
rutar'   loggerZruta_limpiaLoduleID_queryr   r   r   msgr   r   r   r   get_ModuleID\   s*    
&

r2   c              
   C   s   zRd}t  4}| }||| f | }|W  d    W S 1 sF0    Y  W n4 ty } ztd|   W Y d }~n
d }~0 0 d S )Nz^
            SELECT CompanyID,DivisionID,DepartamentID FROM Profiles WHERE UserID = ?
        r   r   r   r   r   r   r   )r   r0   r   r   r   r   r   r   r   .get_CompanyID_DivisionID_DepartamentID_Profile   s    (r4   c              
   C   s   zdd}t  F}| }||| f | }|d }td| |W  d    W S 1 sX0    Y  W n4 ty } ztd|   W Y d }~n
d }~0 0 d S )NzD
            Select RoleID from UserRoles where UserID  = ?
        r   z------------------------>r   r   )useridZRoleID_queryr   r   r   RoleIDr   r   r   r   
get_RoleID   s    
(r7   c              
   C   s   z\d}t  >}| }||| |f | }|d }|W  d    W S 1 sP0    Y  W n4 ty } ztd|   W Y d }~n
d }~0 0 d S )NzX
            Select count(*) from RoleModules where RoleID = ? AND ModuleID = ?
        r   r   r3   )r6   ZModuloIDZpermiso_queryr   r   r   Zpermisor   r   r   r   get_permiso   s    (r8   N)Consultas_SQL.conexionr   r   r   r   r   r&   r2   r4   r7   r8   r   r   r   r   <module>   s   (-,