78 Mostrar el Menú según los Roles y Permisos en Sistema con LARAVEL(PHP-MySql) FullStack
Duración: 7 minDescripción
🧭🛑 Lección 78: Restricción del Menú de Navegación (Sidebar) por Roles
Esta lección se enfoca en el uso del paquete Spatie para controlar la visibilidad de los elementos del menú lateral (sidebar), asegurando que cada usuario solo vea las opciones que le corresponden según su rol.
1. Aplicación de la Directiva @can en el Menú
Para ocultar o mostrar los enlaces en la barra lateral, se utiliza la directiva de Blade @can (@can('nombre-del-permiso')) directamente en el archivo del layout de administración. Esta directiva verifica el permiso del usuario autenticado antes de renderizar el elemento del menú [01:38].
- Lógica de Control: Cada elemento del menú es envuelto en un bloque @can que hace referencia al permiso de la ruta principal del módulo (ej. admin.usuarios.index).
2. Mapa de Visibilidad del Menú por Rol
La visibilidad del menú se configura en el layout según la lógica de gestión del sistema:
- Módulos Exclusivos del Administrador:
- Módulos de Gestión (Admin y Secretaria):
- Roles Restringidos: Los roles doctor, paciente y usuario no visualizan actualmente ningún módulo de administración en el menú [05:54].
3. Falla de Seguridad Crítica e Inicios
Aunque el menú se oculta, se identifica una vulnerabilidad importante: un usuario sin permisos que conoce la URL de una ruta restringida (ej. /admin/usuarios) aún puede acceder a la vista.
- Brecha de Seguridad: La protección del menú es solo una capa visual; se necesita una protección a nivel de servidor [06:59].
- Próxima Lección: Para solucionar esto, el siguiente paso fundamental será proteger las rutas utilizando el middleware de Spatie.
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! ❤️