Información General
Los endpoints de usuarios permiten gestionar cuentas de usuario, asignar roles y configurar permisos para controlar el acceso a diferentes funcionalidades del sistema. Todos los usuarios están asociados a una empresa y tienen un rol que define sus permisos.Listar Usuarios
Obtiene la lista de todos los usuarios del sistema con sus relaciones de rol y empresa.Respuesta
Crear Usuario
Crea un nuevo usuario en el sistema con un rol y empresa asignados.Parámetros del Body
Ejemplo de Solicitud
Respuesta Exitosa
Errores de Validación
Obtener Usuario
Obtiene los detalles de un usuario específico con sus relaciones.Parámetros de Ruta
Respuesta
Actualizar Usuario
Actualiza los datos de un usuario existente. Todos los campos son opcionales.Parámetros de Ruta
Parámetros del Body
Ejemplo de Solicitud
Respuesta Exitosa
Eliminar Usuario
Elimina un usuario del sistema.Parámetros de Ruta
Respuesta Exitosa
Errores
Obtener Roles
Obtiene la lista de roles disponibles en el sistema para asignar a usuarios.Respuesta
Sistema de Permisos
Listar Todos los Permisos
Obtiene todos los permisos del sistema agrupados por módulo.Respuesta
Obtener Permisos del Usuario Actual
Obtiene la lista de permisos del usuario autenticado.Respuesta
Obtener Permisos de un Rol
Obtiene los permisos asignados a un rol específico.Parámetros de Ruta
Respuesta
Actualizar Permisos de un Rol
Actualiza los permisos asignados a un rol específico.Parámetros de Ruta
Parámetros del Body
Ejemplo de Solicitud
Respuesta Exitosa
Middleware de Permisos
Los endpoints protegidos usan el middlewarepermission con el formato recurso.accion:
Formato de Permisos
ventas.view- Ver ventasventas.create- Crear ventasventas.edit- Editar ventasventas.delete- Eliminar ventasproductos.view- Ver productosclientes.create- Crear clientescotizaciones.view- Ver cotizaciones
Bypass para Administradores
Modelo de Datos
Tabla: users
| Campo | Tipo | Descripción |
|---|---|---|
| id | BIGINT | Primary key |
| name | VARCHAR(255) | Nombre del usuario |
| VARCHAR(255) | Email único | |
| password | VARCHAR(255) | Hash bcrypt de la contraseña |
| rol_id | INT | FK a tabla roles |
| id_empresa | INT | FK a tabla empresas |
| num_doc | VARCHAR(20) | Número de documento |
| nombres | VARCHAR(100) | Nombres |
| apellidos | VARCHAR(100) | Apellidos |
| telefono | VARCHAR(30) | Teléfono |
| estado | CHAR(1) | 1=Activo, 0=Inactivo |
| foto_perfil | VARCHAR(255) | Ruta de foto |
| created_at | TIMESTAMP | Fecha de creación |
| updated_at | TIMESTAMP | Fecha de actualización |
Tabla: roles
| Campo | Tipo | Descripción |
|---|---|---|
| rol_id | INT | Primary key |
| nombre | VARCHAR(100) | Nombre del rol |
| descripcion | TEXT | Descripción del rol |
Tabla: permissions
| Campo | Tipo | Descripción |
|---|---|---|
| permission_id | INT | Primary key |
| name | VARCHAR(100) | Nombre técnico (ej: ventas.view) |
| display_name | VARCHAR(255) | Nombre para mostrar |
| module | VARCHAR(50) | Módulo al que pertenece |
| action | VARCHAR(50) | Acción (view, create, edit, delete) |
Relación: permission_rol (Pivot)
| Campo | Tipo | Descripción |
|---|---|---|
| id | BIGINT | Primary key |
| rol_id | INT | FK a roles |
| permission_id | INT | FK a permissions |