La gestión de usuarios es una función exclusiva del rol Admin y permite administrar todo el personal que opera el sistema. Desde este módulo se crean nuevas cuentas, se asignan roles, se editan datos personales y se controla el acceso mediante activación o desactivación de cuentas. Los usuarios nunca se eliminan físicamente de la base de datos: el sistema aplica un patrón de soft-delete dondeDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/JuanM84/gestor-visitas/llms.txt
Use this file to discover all available pages before exploring further.
activo = false revoca el acceso sin perder el historial asociado al registro.
Crear Usuario
Alta de nuevas cuentas con nombre, correo, contraseña provisoria y asignación de rol.
Editar Datos
Modificación de nombre, correo, teléfono y rol desde el modal de edición.
Activar / Desactivar
Soft-delete para revocar o restituir el acceso sin borrar el historial.
Contraseñas y Perfil
Cada usuario gestiona su propia contraseña; el Admin puede cambiar cualquiera.
Roles del sistema
El sistema opera con exactamente dos roles. El rol determina qué rutas API y qué secciones de la interfaz son accesibles.| Rol | Descripción | Permisos principales |
|---|---|---|
Admin | Administrador del sistema | Acceso total: usuarios, configuración, días inhábiles, auditoría y visitas |
Guía | Guía operativo del túnel | Registro y consulta de visitas; lectura de configuración y días inhábiles |
Todos los endpoints de gestión de usuarios bajo
POST /api/usuarios, PUT /api/usuarios/:id, PATCH /api/usuarios/:id/desactivar y PATCH /api/usuarios/:id/reactivar requieren el middleware verificarRol(['Admin']). Un Guía que intente acceder recibirá un 403 Forbidden.Estructura de la tabla USUARIO
Cada registro en la tablaUSUARIO contiene los siguientes campos:
| Campo | Tipo | Descripción |
|---|---|---|
id | Integer (PK) | Identificador único autoincremental |
nombre | Text | Nombre completo del empleado |
email | Text (unique) | Correo electrónico — usado como nombre de usuario al iniciar sesión |
telefono | Text (nullable) | Número de contacto opcional |
password_hash | Text | Hash bcrypt de la contraseña — nunca se almacena texto plano |
rol | Text | 'Admin' o 'Guía' |
activo | Boolean | true = cuenta habilitada, false = acceso revocado (soft-delete) |
created_at | Timestamp | Fecha y hora de creación del registro |
Crear un nuevo usuario
Solo los Admins pueden crear cuentas. El formulario de alta se encuentra en el panel izquierdo de la página Gestión de Usuarios.Completar el nombre completo
Ingrese el nombre y apellido del empleado en el campo Nombre Completo. Este campo es obligatorio y se mostrará en la tabla de personal registrado y en los registros de auditoría.
Ingresar el correo electrónico
Escriba la dirección de correo del empleado. El email debe ser único en el sistema; si ya existe una cuenta con esa dirección, la API devolverá un error
400. El correo se utiliza como identificador de inicio de sesión.Definir una contraseña provisoria
Establezca una contraseña temporal para la cuenta. La interfaz exige mínimo 8 caracteres, incluyendo al menos una mayúscula, una minúscula y un número. El campo Repetir Contraseña debe coincidir exactamente antes de que el formulario se envíe.
Seleccionar el rol
Elija entre Guía Operativo (
Guía) o Administrador (Admin) en el selector de rol. Por defecto, el formulario preselecciona Guía para minimizar la asignación accidental de privilegios elevados.201):
Listar usuarios
El listado completo del personal está restringido al rol Admin y se obtiene con:Activo / Inactivo) y los botones de acción correspondientes. Los registros inactivos aparecen con opacidad reducida para distinción visual.
Editar datos de un usuario
Un Admin puede modificar el nombre, correo, teléfono y rol de cualquier cuenta. Haga clic en el ícono de edición (lápiz) en la fila del usuario para abrir el modal de edición.200):
Desactivar y reactivar usuarios
El sistema nunca borra físicamente cuentas de usuario. Cuando un empleado deja de trabajar en el túnel, su cuenta se desactiva (activo = false), lo que impide el inicio de sesión sin eliminar el historial de visitas o auditoría vinculado a ese usuario.
Desactivar
200):
Reactivar
Para restituir el acceso de una cuenta previamente desactivada:200):
Cambiar contraseña y gestionar perfil
Cambiar contraseña
Este endpoint no requiere rol Admin: cualquier usuario autenticado puede cambiar su propia contraseña. Un Admin también puede cambiar la contraseña de cualquier otra cuenta (por ejemplo, para asistir a un usuario que olvidó sus credenciales).Ambos campos
passwordActual y nuevaPassword son obligatorios. Si alguno se omite, la API responde 400. Un usuario que intente cambiar la contraseña de otra cuenta (sin ser Admin) recibirá 403 Forbidden.200):
Perfil propio
Cada usuario puede consultar y actualizar su propio perfil (correo y teléfono) sin necesidad de intervención del Admin. Un Admin puede consultar el perfil de cualquier cuenta.Resumen de endpoints
| Método | Ruta | Requiere | Descripción |
|---|---|---|---|
GET | /api/usuarios | Admin | Lista todos los usuarios (activos e inactivos) |
POST | /api/usuarios | Admin | Crea un nuevo usuario |
PUT | /api/usuarios/:id | Admin | Actualiza nombre, email, teléfono y rol |
PATCH | /api/usuarios/:id/desactivar | Admin | Soft-delete (activo → false) |
PATCH | /api/usuarios/:id/reactivar | Admin | Reactiva cuenta (activo → true) |
PUT | /api/usuarios/:id/password | Propio usuario o Admin | Cambia contraseña con verificación de la actual |
GET | /api/usuarios/:id/perfil | Propio usuario o Admin | Lee datos de perfil |
PUT | /api/usuarios/:id/perfil | Propio usuario | Actualiza email y teléfono propios |