Roles y permisos canónicos
El sistema usa Spatie Permissions con 4 roles base.
Roles
| Rol | Permisos clave | |---|---| | super_admin | TODO | | agente_l2 | Tickets, KB, dashboards | | admin_cliente | Sus tickets, sus usuarios, su KB | | usuario_cliente | Sus propios tickets |
Asignación
Cada usuario tiene un único rol activo. La columna users.role se sincroniza automáticamente con Spatie vía Observer.
Si cambias
users.rolepor SQL crudo, el Observer corre en el siguienteupdate(). Para forzar la sync inmediata, llama$user->syncRoles([$user->role]).
Crear nuevo rol
\Spatie\Permission\Models\Role::create(['name' => 'mi_rol']);
\Spatie\Permission\Models\Permission::create(['name' => 'ver_x']);
$role->givePermissionTo('ver_x');
Filament: canAccessPanel
Solo agentes Highteck (cliente_id IS NULL) y activos pueden entrar a /admin. Los cliente_id != null van al portal /portal.