Ferred controla el acceso con tres roles: ADMIN, CAJERO y BODEGA. Cada rol tiene un conjunto fijo de permisos aplicados por elDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Carlos-Gnd/FERRED-Inventario-y-Ventas/llms.txt
Use this file to discover all available pages before exploring further.
roleMiddleware en cada endpoint de la API. Al iniciar sesión, el servidor emite un JWT con el rol y el sucursalId del usuario. Toda petición posterior valida esos valores antes de ejecutar cualquier lógica de negocio.
Matriz de permisos
| Acción | Admin | Cajero | Bodega |
|---|---|---|---|
| Gestionar usuarios | ✅ | ❌ | ❌ |
| Configurar precios | ✅ | ❌ | ❌ |
| Ver reportes consolidados | ✅ | ❌ | ❌ |
| Registrar ventas | ✅ | ✅ | ❌ |
| Gestionar inventario | ✅ | ❌ | ✅ |
| Consultar stock | ✅ | ✅ | ✅ |
| Recepción de proveedores | ✅ | ❌ | ✅ |
Cómo se aplican los roles
Cada ruta protegida usaroleMiddleware(...roles). Este middleware lee el campo rol de req.usuario, que el jwtMiddleware pobla al verificar el token Bearer. Si el rol del usuario no está en la lista permitida, el servidor devuelve 403 Acceso denegado de inmediato.
| Campo | Tipo | Descripción |
|---|---|---|
rol | 'ADMIN' | 'CAJERO' | 'BODEGA' | Verificado por roleMiddleware en cada ruta |
sucursalId | number | Sucursal a la que pertenece el usuario |
email | string | Identificador del usuario |
Restricción por sucursal
Los usuarios que no son ADMIN solo pueden acceder a los datos de su propia sucursal. El helperassertSameSucursal compara el sucursalId del JWT con el recurso solicitado. Los ADMIN omiten esta verificación y pueden operar en todas las sucursales.
Si un usuario no-ADMIN no tiene
sucursalId asignado, todas las verificaciones de sucursal fallan en modo cerrado y devuelven 403.Páginas de referencia por rol
Administrador
Acceso total: usuarios, precios, reportes consolidados y todas las operaciones.
Cajero
Operación del POS: registra ventas, emite tickets y consulta stock de su sucursal.
Bodeguero
Gestión de inventario: ajusta stock, recibe mercancía y supervisa niveles críticos.