Files
shopit-back/docs/authorization.md

4.4 KiB

Roles y permisos

El sistema utiliza control de acceso basado en roles. Los códigos son identificadores estables para uso interno; los nombres y las descripciones pueden modificarse sin afectar las reglas de autorización.

Los permisos administrativos deben evaluarse siempre dentro del tenant correspondiente. El rol admin es la única excepción porque su alcance es toda la plataforma.

Roles

Código Nombre Alcance
admin Administrador general Administra la plataforma, todos los tenants, roles y permisos. Tiene todos los permisos.
tenant_admin Administrador del tenant Administra usuarios y la operación de su tenant. No puede gestionar la definición de roles.
user Usuario Cliente final. No tiene permisos administrativos y solamente puede operar sobre sus propios datos, carrito, pedidos y tickets.

Permisos

Código Nombre Descripción
tenant.ver Ver configuración del tenant Consultar la configuración general de un tenant.
tenant.editar Editar configuración del tenant Modificar datos generales, dominio, colores y recursos visuales.
usuarios.ver Ver usuarios Consultar los usuarios asociados al tenant.
usuarios.gestionar Gestionar usuarios Invitar, editar, desactivar y asignar roles permitidos a usuarios del tenant.
roles.ver Ver roles Consultar los roles y sus permisos.
roles.gestionar Gestionar roles Crear, modificar y asignar permisos a roles.
catalogo.ver Ver catálogo Consultar productos, variantes, categorías, marcas y bundles administrativamente.
catalogo.gestionar Gestionar catálogo Crear, modificar, archivar y eliminar productos, variantes, categorías, marcas y bundles.
inventario.ver Ver inventario Consultar stock e información de inventario.
inventario.ajustar Ajustar inventario Modificar el stock disponible.
pedidos.ver Ver pedidos Consultar los pedidos del tenant.
pedidos.gestionar Gestionar pedidos Modificar estados y datos operativos de pedidos.
pedidos.cancelar Cancelar pedidos Cancelar pedidos y liberar sus reservas de inventario.
pagos.ver Ver pagos Consultar el estado y la información de pagos.
pagos.gestionar Gestionar pagos Confirmar, rechazar o devolver pagos.
tickets.ver Ver tickets Consultar tickets emitidos.
tickets.gestionar Gestionar tickets Emitir, invalidar o regenerar tickets.
contenido.gestionar Gestionar contenido Administrar menús, carruseles, destacados y redes sociales.
integraciones.ver Ver integraciones Consultar la configuración y el estado de integraciones.
integraciones.gestionar Gestionar integraciones Configurar credenciales y proveedores de integraciones.
reportes.ver Ver reportes Consultar reportes de ventas y métricas.
reportes.exportar Exportar reportes Descargar reportes e información comercial.

Matriz de asignación

Permiso admin tenant_admin user
tenant.ver No
tenant.editar No
usuarios.ver No
usuarios.gestionar No
roles.ver No
roles.gestionar No No
catalogo.ver No
catalogo.gestionar No
inventario.ver No
inventario.ajustar No
pedidos.ver No
pedidos.gestionar No
pedidos.cancelar No
pagos.ver No
pagos.gestionar No
tickets.ver No
tickets.gestionar No
contenido.gestionar No
integraciones.ver No
integraciones.gestionar No
reportes.ver No
reportes.exportar No

Carga inicial

El seeder Database\Seeders\AuthorizationSeeder crea o actualiza este catálogo y sincroniza sus asignaciones. Puede ejecutarse de manera independiente:

php artisan db:seed --class=AuthorizationSeeder

También se ejecuta como parte de DatabaseSeeder.

Las acciones del rol user no se representan como permisos administrativos. El acceso al perfil, carrito, pedidos y tickets se autoriza comprobando que el recurso pertenezca al usuario autenticado y al tenant actual.