Navegación y módulos
Cómo el shell decide qué secciones mostrar según capacidades.
La barra lateral y las rutas bajo /t/[schoolSlug]/ se calculan con el conjunto efectivo de capacidades del perfil activo. No hay rutas “solo para rector” hardcodeadas en el cliente.
Familias de módulo (referencia)
| Módulo | Capacidades típicas |
|---|---|
| Inicio / Asistente | app.view_dashboard |
| Chat | app.chat |
| Personas | users.view, users.manage_directory |
| Procesos | admissions.view_processes, admissions.manage_processes |
| Currículo / Grupos | academic.view_structure, academic.manage_structure |
| Mis cursos | courses.view_teacher |
| Asignaturas (estudiante) | courses.view_student |
| Reportes | reports.view, reports.export_sensitive |
| Convivencia | discipline.manage_cases |
| Orientación | counseling.manage_follow_up |
| Facturación | billing.view_records (requiere módulo Facturación activo) |
| Biblioteca | library.view (requiere módulo Biblioteca activo) |
| Enfermería | nursery.view (requiere módulo Enfermería activo) |
| Ajustes / Autorización | system.manage_school_settings, system.manage_role_templates |
| Módulos de producto | system.manage_school_settings → /ajustes/modulos |
Plantillas con navegación explícita
Algunas plantillas declaran navigationSections en semilla (estudiante, docente). El personal institucional suele depender enteramente del mapa capacidad → sección.
Cambio de perfil
En /perfiles el usuario elige otra asignación (otra escuela, sede, jornada o plantilla). El shell se recalcula sin reautenticar.