53 NAVEGANDO CON LOS ROLES Y PERMISOS en el curso de LARAVEL 10 Sistema de control de asistencia

Duración: 13 min
Módulo: Reportes Profesionales, Roles y Despliegue Final 🛡️ Lección 6 de 9

Descripción

🔒 Lección 53: Navegando con Roles y Permisos

1. Asignación de Roles a Usuarios (Corrección del Seeder)

Se inició la lección asegurando que los roles estuvieran correctamente asignados a los usuarios de prueba en el Seeder:

  • Se usó el método assignRole() en el modelo User para vincular al primer usuario (ID 1) con el rol admin y al segundo usuario (ID 2) con el rol secretaria [01:29].
  • Se verificó en la base de datos que la tabla model_has_roles contenga los registros de esta asignación, lo que permite al sistema identificar el rol de cada usuario al iniciar sesión [02:59].

2. Restricción de Rutas (Backend)

Para evitar que los usuarios accedan a vistas no autorizadas, incluso si conocen la URL, se aplicó el middleware de autorización en las rutas del archivo web.php:

  • Middleware can: Se utilizó la función middleware('can:nombre_del_permiso') para proteger las rutas. El sistema automáticamente verifica si el rol del usuario autenticado tiene el permiso especificado.
  • Rutas Restringidas: Se aplicó la restricción a las secciones que solo debe ver el administrador:
    • Miembros: middleware('can:miembros') [05:17]
    • Usuarios: middleware('can:usuarios') [09:27]
    • Ministerios: middleware('can:ministerios') [10:09]
  • Resultado de la Restricción: Al intentar acceder a una de estas rutas como "Secretaria", el sistema deniega el acceso y muestra un error de "Esta acción no está autorizada" (Error 403) [06:24].

3. Ocultar Opciones de Menú (Frontend)

Para mejorar la experiencia del usuario y evitar que vean enlaces inútiles o que generen errores de autorización, se usó la directiva de Blade para ocultar las opciones del menú de navegación:

  • Directiva @can: Se envolvió el código HTML del elemento de menú dentro de la directiva @can('nombre_del_permiso') ... @endcan.
  • Menús Ocultados:
    • El enlace a Miembros solo se muestra si el usuario tiene el permiso miembros [07:39].
    • Se aplicó la misma lógica para los enlaces de Usuarios y Ministerios [08:46] - [10:21].

Verificación Final: Al iniciar sesión con la cuenta de la Secretaria, el menú de navegación queda limpio, mostrando solo las opciones autorizadas como Asistencia y Reportes [08:10]. Al iniciar sesión como Administrador, se visualiza el menú completo con acceso a todas las secciones [11:37].