19 CRUD completo de Roles en Laravel con Spatie en el Sistema de Turnos Laborales FullStack

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

Descripción

📋 Lección 19: CRUD Completo de Roles en Laravel con Spatie en el Sistema de Turnos Laborales FullStack 🔐

En esta lección se muestra el proceso de implementación y protección de roles en Laravel utilizando el paquete Spatie Laravel-Permission, además de mostrar ajustes de interfaz como la Landing Page pública y la personalización del Login.

🔑 Puntos Clave y Funcionalidades Desarrolladas

1. 🌐 Landing Page y Personalización del Login

  • Se reemplazó la vista pública estática por una Landing Page responsiva que consume datos del sistema y cuenta con un carrusel de imágenes promocionales.
  • Se adaptó el formulario de inicio de sesión (login) con imágenes de fondo personalizadas e interfaz estilizada.
  • Traducción al español del menú superior (body header) y simplificación de las opciones del usuario.

2. 🛡️ CRUD Completo de Roles con Spatie

Se utilizó el RoleController para gestionar el flujo completo mediante DataTables:

  • Listado (index): Visualización de roles en tabla dinámica.
  • Creación (create / store): Formulario para registrar nuevos roles en la base de datos (ej. "Jefe").
  • Edición (edit / update): Actualización inmediata de los nombres y títulos de los roles.
  • Eliminación (destroy): Borrado físico de roles secundarios sin afectar a las tablas pivot (model_has_roles).

3. 🔒 Protección de Roles Críticos (superadmin y empleado)

Se agregó una validación de seguridad condicional en la plantilla Blade (index.blade.php):

  • Los roles superadmin y empleado quedan protegidos impidiendo su edición o eliminación desde la interfaz.
  • Razón: Evita que se rompa la lógica del sistema o que el súper administrador pierda acceso total de forma accidental.

4. 🚨 Demostración de la Necesidad del Módulo de Permisos

  • Al iniciar sesión con las credenciales de un empleado genérico, se evidencia que este aún tiene acceso ilimitado a todas las funciones administrativas (crear usuarios, borrar sucursales, etc.).
  • Se plantea como siguiente paso la asignación de permisos específicos, limitando las vistas del empleado únicamente a sus turnos asignados, cronogramas personales y solicitudes de ausencias.