Creacion del Modelo y Controller auth

 

Fecha: Martes 16 de junio de 2026

Hora de inicio: 9:00 a.m.

Hora de finalización: 11:00 a.m.

Total de horas trabajadas: 2 horas

Objetivo de la sesión

El objetivo de esta sesión fue implementar la conexión entre la base de datos y las funciones de autenticación de la aplicación.

Para esto trabajé en modelo_auth.py y controlador_auth.py, encargados de manejar el inicio y cierre de sesión, el portal del empleado y la impersonación realizada por un usuario administrador.

 

Actividades realizadas

9:00 a.m. - 9:45 a.m.

Creación del modelo de autenticación

Primero trabajé en modelo_auth.py, donde agregué las funciones necesarias para ejecutar los procedimientos almacenados relacionados con la sesión.

Se implementaron las funciones para:

  • Iniciar sesión.
  • Cerrar sesión.
  • Obtener el empleado asociado con un usuario.
  • Registrar eventos relacionados con la sesión.

Las llamadas a la base de datos se realizaron utilizando parámetros, evitando colocar valores directamente dentro de las instrucciones SQL.

En el caso del procedure de inicio de sesión fue necesario recorrer los conjuntos de resultados con nextset, hasta encontrar el resultado que contiene resultCode.

Posteriormente, el resultado se convierte en un diccionario para que el controlador pueda acceder fácilmente al identificador del usuario, nombre, tipo y código de resultado.

Img. 1: Login

 

9:45 a.m. - 10:40 a.m.

Creación del controlador de autenticación

Después desarrollé controlador_auth.py, utilizando un Blueprint para agrupar las rutas relacionadas con autenticación.

En la ruta de inicio de sesión se reciben el nombre de usuario y la contraseña enviados desde el formulario. Luego se llama al modelo y se revisa el código retornado.

Si el inicio de sesión es exitoso, los datos principales se guardan en session y el usuario es redirigido según su tipo:

  • Los administradores ingresan a la lista de empleados.
  • Los empleados ingresan a su portal.

También agregué mensajes para los casos en que el usuario no existe, la contraseña es incorrecta o la cuenta se encuentra bloqueada.

La función de cierre de sesión llama al procedimiento correspondiente, limpia los datos almacenados en la sesión y redirige nuevamente al login.

10:40 a.m. -11:00 a.m.

Impersonación y pruebas

Finalmente agregué las rutas de impersonación.

Esta funcionalidad permite que un administrador seleccione un empleado e ingrese temporalmente a la interfaz que dicho empleado puede visualizar.

Antes de impersonar se guardan los datos del administrador en la sesión. Al regresar a la interfaz administrativa, estos datos se restauran y se eliminan las variables temporales de impersonación. Al final realicé pruebas básicas para comprobar el inicio y cierre de sesión, la redirección según el tipo de usuario y el regreso correcto desde la interfaz del empleado.

 

Resultado de la sesión

Durante esta sesión quedaron implementados el modelo y el controlador de autenticación.

Con esto, la aplicación permite iniciar y cerrar sesión, identificar el tipo de usuario, mostrar el portal del empleado, impersonar empleados desde una sesión administrativa y registrar estas acciones en la bitácora.

La separación entre modelo y controlador permite mantener las consultas a la base de datos fuera de las rutas y facilita realizar cambios posteriores.


Referencias

 

Comentarios

Entradas más populares de este blog

Configuración del servidor, base de datos y blob storage en Azure

Documentación: Diagramas + Introducción