20 Cómo Proteger las Rutas del Siste4na Usando Permisos de Roles en Laravel con Spatie FullStack

Duración: 10 min
Módulo: Roles, Permisos y Control de Acceso (Spatie Laravel-Permission) Lección 2 de 3

Descripció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.