20 Cómo Proteger las Rutas del Siste4na Usando Permisos de Roles en Laravel con Spatie FullStack
Duración: 10 minDescripción
📋 Lección 20: Cómo Proteger las Rutas del Sistema Usando Permisos de Roles en Laravel con Spatie FullStack 🔒
En esta lección se explica la implementación y aplicación de middleware de permisos utilizando el paquete Spatie Laravel-Permission para restringir el acceso a rutas y acciones específicas dentro de la aplicación.
🔑 Conceptos Clave y Puntos Destacados
1. 🛡️ Protección de Rutas mediante Middleware (can)
- Se asignó un middleware can:nombre_del_permiso a cada ruta del archivo web.php junto al middleware de autenticación (auth).
- Granularidad de Permisos: Cada acción CRUD (ver listado, mostrar formulario, guardar, editar, actualizar y eliminar) cuenta con un permiso específico asociado.
2. 🌱 Siembra Masiva de Permisos con Seeders (RoleSeeder)
- Se definieron 43 permisos iniciales que cubren todas las rutas del sistema (roles, usuarios, empleados, sucursales, categorías, ausencias y cronogramas).
- El seeder sincroniza automáticamente los permisos asignándolos a tres roles iniciales:
- Superadmin: Acceso total (sincroniza todos los permisos).
- Supervisor/Administrador: Acceso a la mayoría de funciones de gestión de personal.
- Empleado: Acceso únicamente a la consulta y reporte de sus cronogramas de trabajo.
3. 🚫 Respuesta ante Accesos No Autorizados (Error HTTP 403)
- Al intentar ingresar a una ruta protegida sin el permiso adecuado (por ejemplo, cuando un Empleado intenta acceder al módulo de Roles o Usuarios), Laravel devuelve automáticamente una pantalla de Error 403 (This action is unauthorized).
4. ⚙️ Próxima Mejora: Asignación Dinámica desde la Interfaz
- Se plantea para el siguiente capítulo la creación de una vista gráfica con casillas de selección (checkboxes) para que el Superadmin pueda otorgar o revocar permisos a cualquier rol desde la plataforma sin modificar el código fuente.