El módulo de Usuarios es el núcleo del control de acceso de Tiendas Mi Cholo. Desde aquí, el administrador puede crear nuevas cuentas, asignar roles que determinan a qué partes del sistema puede acceder cada persona, y desactivar cuentas sin perder el historial de operaciones. Todos los endpoints de este módulo requieren un JWT válido con el rolDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/interezante456-pixel/Miercoles-Proyecto/llms.txt
Use this file to discover all available pages before exploring further.
ADMIN.
Roles del Sistema
El sistema de Tiendas Mi Cholo reconoce exactamente tres roles. Cada usuario tiene asignado uno de ellos mediante el camporolId en el momento de su creación.
ADMIN
Acceso completo a todos los módulos: usuarios, categorías, productos, ventas, compras, reportes PDF y configuración general del sistema.
VENDEDOR
Puede registrar ventas, gestionar clientes y proveedores, y consultar el inventario. No puede acceder a usuarios, categorías ni reportes.
ALMACENERO
Puede gestionar productos y compras (crear y recibir órdenes), consultar inventario, y gestionar clientes y proveedores. No puede registrar ventas ni acceder a reportes.
Campos del Usuario
Cada usuario almacenado en la tablausuarios tiene la siguiente estructura. Al crear o actualizar un usuario, envía un UsuarioRequest con los campos descritos a continuación.
El campo
password nunca se devuelve en ninguna respuesta de la API. El objeto Usuario serializado siempre omite ese campo por seguridad.| Campo | Tipo | Requerido | Validación | Descripción |
|---|---|---|---|---|
nombre | String | ✅ | max=100 | Nombre(s) del usuario |
apellido | String | ✅ | max=100 | Apellido(s) del usuario |
username | String | ✅ | max=50, único | Nombre de usuario para el login |
email | String | ✅ | formato email, único | Correo electrónico del usuario |
password | String | ⬜ | min=6, max=100 | Contraseña en texto plano (se almacena con BCrypt) |
telefono | String | ⬜ | max=20 | Teléfono de contacto |
rolId | Long | ✅ | — | ID del rol a asignar (1=ADMIN, 2=VENDEDOR, 3=ALMACENERO) |
activo | Boolean | ⬜ | default=true | Estado de la cuenta |
Endpoints
Listar usuarios activos
activo = true.
Respuesta 200 OK
Obtener usuario por ID
ID interno del usuario.
404 Not Found si el ID no existe:
Crear usuario
200 OK: objeto Usuario creado (sin password).
Actualizar usuario
ID del usuario a actualizar.
POST. Ten en cuenta las siguientes reglas especiales:
- Si
passwordse omite o se envía como cadena vacía (""), la contraseña existente no se modifica. - Si
activose incluye, permite activar o desactivar la cuenta directamente desde elPUT. - El campo
usernameno se puede cambiar. El valor enviado pasa validación@NotBlank(es obligatorio incluirlo en el body), pero el servidor lo descarta y no actualiza elusernamealmacenado.
Eliminar usuario (baja lógica)
ID del usuario a desactivar.
DELETE no borra el registro de la base de datos. Únicamente establece activo = false en la fila correspondiente. El usuario deja de poder iniciar sesión (Spring Security usa isEnabled() que retorna el valor de activo), pero todo su historial de ventas, compras y movimientos de inventario queda intacto.
Respuesta 204 No Content — sin cuerpo.
Flujo de Creación de un Usuario
Consultar roles disponibles
Llama a
GET /api/roles para obtener los IDs de los roles y elegir el rolId correcto.Enviar el POST
Construye el
UsuarioRequest con los datos del nuevo operador e incluye una contraseña de al menos 6 caracteres.Guardar el ID devuelto
El objeto
Usuario en la respuesta incluye el id generado, que necesitarás para futuras actualizaciones.Respuestas de Error Comunes
| Código | Causa |
|---|---|
400 Bad Request | Validación fallida (campos requeridos vacíos, email inválido, password menor a 6 caracteres) |
401 Unauthorized | Token JWT ausente, inválido o expirado |
403 Forbidden | El token pertenece a un rol distinto de ADMIN |
404 Not Found | El id o el rolId proporcionado no existe en la base de datos |