PSE7-146 | Gestionar navegación del frontend según permisos
Resumen
Se adapta la navegación del frontend para mostrar y permitir el acceso a las distintas secciones según los permisos del usuario autenticado.
Cambios realizados
- Se creó
AuthContextpara centralizar los datos del usuario autenticado. - Se eliminan peticiones repetidas a
/api/auth/medesde distintos componentes. - El Header, Sidebar, saludo y protector utilizan el usuario compartido por el contexto.
- Se centralizó la configuración del menú y sus permisos.
- El Sidebar muestra únicamente las opciones habilitadas para el usuario.
- Se agregó validación de permisos al
ProtectorDashboard. - Se impide acceder manualmente mediante URL a rutas sin autorización.
- Los accesos no autorizados redirigen al inicio del dashboard.
- Se mantiene soporte para usuarios con varios roles y roles personalizados.
- Se conserva la foto de perfil y las iniciales como respaldo.
Validaciones realizadas
- Inicio de sesión y recarga del dashboard.
- Visualización del nombre, rol y foto del usuario.
- Menú completo para Administrador.
- Menú limitado para Estudiante.
- Bloqueo de acceso manual a
/administracion,/usuariosy/reportespara usuarios sin permisos. - Acceso permitido a
/instanciasy/recordatoriossegún permisos. - Cierre de sesión.
- Verificación de reducción de llamadas repetidas a
/api/auth/me.
Seguridad
La protección implementada mejora la navegación y experiencia del frontend. La autorización definitiva de datos y operaciones continúa siendo responsabilidad del backend.