Skip to main content

Documentation 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.

Ferred controla el acceso con tres roles: ADMIN, CAJERO y BODEGA. Cada rol tiene un conjunto fijo de permisos aplicados por el 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ónAdminCajeroBodega
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 usa roleMiddleware(...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.
// Ruta restringida a ADMIN y CAJERO
router.post('/ventas', roleMiddleware('ADMIN', 'CAJERO'), handler);
El JWT incluye tres campos clave para la autorización:
CampoTipoDescripción
rol'ADMIN' | 'CAJERO' | 'BODEGA'Verificado por roleMiddleware en cada ruta
sucursalIdnumberSucursal a la que pertenece el usuario
emailstringIdentificador del usuario

Restricción por sucursal

Los usuarios que no son ADMIN solo pueden acceder a los datos de su propia sucursal. El helper assertSameSucursal 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.

Build docs developers (and LLMs) love