El sistema de permisos se basa en spatie/laravel-permission integrado con el panel de administración Filament mediante bezhansalleh/filament-shield. Los permisos se generan automáticamente a partir de los recursos de Filament registrados.
Cómo funciona
Filament Shield genera un conjunto estándar de permisos por cada recurso Filament. El patrón de nombre es:
{accion}_{nombre_recurso}
Por ejemplo, para el recurso Cotizacione:
| Permiso | Descripción |
|---|
view_any_cotizacione | Listar todas las cotizaciones. |
view_cotizacione | Ver el detalle de una cotización. |
create_cotizacione | Crear nuevas cotizaciones. |
update_cotizacione | Editar cotizaciones existentes. |
delete_cotizacione | Eliminar una cotización. |
delete_any_cotizacione | Eliminación masiva de cotizaciones. |
restore_cotizacione | Restaurar una cotización eliminada (soft delete). |
restore_any_cotizacione | Restauración masiva. |
force_delete_cotizacione | Eliminación permanente. |
force_delete_any_cotizacione | Eliminación permanente masiva. |
Rol Administrador
El rol Administrador tiene acceso total a todas las funcionalidades del sistema, incluyendo:
- Gestión completa de cotizaciones (crear, editar, aprobar, eliminar).
- Descarga de archivos Word generados a partir de cotizaciones.
- Administración de catálogos (EPP, herramientas, equipos, consumibles).
- Gestión de usuarios y asignación de roles.
- Configuración de
OrigenFactor y Turno.
- Acceso a los registros de auditoría.
Policies registradas
Cada recurso sensible tiene una Policy de Laravel asociada que controla el acceso a nivel de modelo:
| Policy | Recurso protegido |
|---|
CotizacionePolicy | Cotizaciones |
UserPolicy | Usuarios |
TurnoPolicy | Turnos de trabajo |
EppPolicy | Catálogo de EPP |
GerenciaPolicy | Gerencias |
OrigenFactorPolicy | Factores de origen económico |
DatosHerramientaPolicy | Catálogo de herramientas |
DatosEquipoPolicy | Catálogo de equipos |
DatosConsumiblePolicy | Catálogo de consumibles |
DatosComunicacionePolicy | Catálogo de comunicaciones |
ExamenesVacunaPolicy | Exámenes y vacunas |
PrecargadoConsumiblePolicy | Consumibles precargados |
PrecargadoEppPolicy | EPP precargados |
PrecargadoEquipoPolicy | Equipos precargados |
PrecargadoHerramientaPolicy | Herramientas precargadas |
RolePolicy | Roles y permisos |
AuditoriaCotizacionPolicy | Registros de auditoría de cotizaciones |
Generar permisos
Cuando se registra un nuevo recurso Filament o se necesita regenerar los permisos existentes, ejecuta:
php artisan shield:generate --all
Para generar permisos de un recurso específico:
php artisan shield:generate --resource=Cotizacione
El comando shield:generate crea los permisos en la base de datos si no existen. No elimina permisos previamente asignados a roles.
Asignar roles a usuarios
Los roles se asignan desde el panel de administración:
Acceder al panel
Ingresar al panel de administración con una cuenta que tenga el rol Administrador.
Ir a gestión de usuarios
Navegar a Administración > Usuarios en el menú lateral.
Editar el usuario
Seleccionar el usuario y hacer clic en Editar.
Asignar rol
En el campo Roles, seleccionar el rol o roles que se desea asignar al usuario y guardar los cambios.
Crear un nuevo rol personalizado
Ir a gestión de roles
Navegar a Administración > Roles en el panel.
Crear rol
Hacer clic en Nuevo rol, asignar un nombre y seleccionar los permisos individuales que tendrá el rol.
Guardar y asignar
Guardar el rol y asignarlo a los usuarios correspondientes desde Administración > Usuarios.