53 NAVEGANDO CON LOS ROLES Y PERMISOS en el curso de LARAVEL 10 Sistema de control de asistencia
Duración: 13 minDescripció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:
- 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:
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].
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️