Saltar al contenido principal

Roles y permisos

La plataforma distingue dos ámbitos: el de plataforma (admin global) y el de academia (usuarios de cada academia).

Admin de plataforma

Solo existe un tipo de usuario para el admin (academy-manager-admin):

RolDescripciónPermisos
Administrador de plataformaGestiona la oferta multi-academia.Login en el admin, listar/crear/editar academias, listar/crear/editar planes. Configura por academia: activo/inactivo, días y % de mora, plan asignado, precios por disciplina.
  • Autenticación: Cookie platform_auth (JWT). No está ligado a ninguna academia.
  • Usuario de prueba: platform@academy.com / platform123 (creado en el seed del backend).

Roles dentro de cada academia

En la web de academias (academy-manager-web), la app móvil (academy-manager-app) y la API (JWT con academy_id):

RolDescripciónPermisos principales
adminAdministrador de la academia.Dashboard, estudiantes, pagos, reportes, becas, correos, eventos (edición), exámenes, feed.
coordinadorCoordinador operativo.Dashboard, estudiantes, pagos, reportes, correos, eventos (aprobaciones), feed. Sin becas.
directorDirección de academia.Como admin en operación; edición de eventos sin modo edición; validación pagos.
managerGestión / caja.Operación, reportes, aprobaciones eventos y pagos, feed.
profesorInstructor.Estudiantes, eventos y exámenes (staff), feed /inicio.
estudianteAlumno inscrito.Feed /inicio, mi ficha, pagos, eventos (portal), exámenes propios, público.

Portal dual (staff + ficha de estudiante)

Si un usuario staff tiene registro Student en la misma academia (tiene_ficha_estudiante: true), puede además:

  • Preinscribirse a torneos desde el feed
  • Ver mis pagos, medallas y exámenes como alumno

Detalle API: middleware requireEstudianteOStaffConFichaPropia — ver academy-manager-api/docs/PERMISSIONS.md.

Módulos opcionales (plan + academia)

MóduloCuándo visible
EventosPlan con events y academia eventsEnabled
ExámenesPlan con exams y academia examsEnabled
Correos masivosPlan bulkEmail y academia bulkEmailEnabled

GET /api/academy/modules — cualquier usuario autenticado de la academia.

Resumen por ruta (web de academia)

Ruta / recursoadmincoorddirectormanagerprofesorestudiante
/dashboard
/inicio (feed)
Estudiantes
Eventos (gestión staff)
Eventos (portal / preinscripción)✅*✅*✅*✅*✅*
/mi-ficha, /pagos✅*✅*✅*✅*✅*
Exámenes (staff)
Exámenes (mis resultados)✅*✅*✅*✅*✅*
Reportes (mora)
Becas
Correos
Público
Pre-registro / inscripción tokenPúblicoPúblicoPúblicoPúblicoPúblicoPúblico

* Solo si tiene_ficha_estudiante (portal dual).

Post-login (web)

  • estudiante/inicio
  • staff/dashboard (feed disponible en menú Inicio)

API: cómo se aplican los roles

  • El JWT incluye academy_id y rol. Todas las consultas se filtran por academy_id.
  • requireRoles(...) para rutas staff.
  • requireEstudianteOStaffConFichaPropia() para portal estudiante y GET /events/feed.
  • Constantes de eventos: EVENT_STAFF_ROLES, EVENT_EDITOR_ROLES, etc. — ver PERMISSIONS.md.