Roles y permisos
Perfiles de la Academia, roles personalizados de Moodle, rutas por cargo, lista blanca de administración y super administradores.
El modelo de permisos sigue al pie de la letra el Manual de Perfiles de Formación y Rutas de Aprendizaje de la Academia (secciones 4 a 16). Cuando un arquetipo de Moodle concede más de lo que dice el manual, los scripts de configuración retiran esos permisos en cada despliegue.
Cómo encajan las piezas
Cargo (formulario "Crear colaborador", importación desde Excel o agente de IA)
│
├─► Rol de sistema delta_* → qué puede hacer en la plataforma
│ (y su nivel de cuota de IA)
├─► Cohorte "Cargo: …" (cargo_*) → ruta de módulos obligatoria
│ └─ matrícula por cohorte en cada módulo de la ruta
│ └─ en ciertos módulos, rol de curso de responsable de contenido
├─► Cohorte "Todo el equipo Deltamontero" (delta_todos)
└─► Área / Equipo (campo de perfil) → reportes por área; equipos con líderLa correspondencia entre cargo, rol y cohorte está en local_candidate_enrollment/classes/form/staff_form.php; la matriz de módulos obligatorios y complementarios por cargo, en infrastructure/moodle/manual-academia.json (matriz).
Perfiles del manual y roles de Moodle
Los roles se crean o actualizan con rebuild-roles-per-manual.php (aprovisionamiento) y se ajustan en cada despliegue con los scripts de alineación. Se reutilizaron siete nombres cortos anteriores para no romper asignaciones existentes, por eso algunos nombres cortos no coinciden con el perfil.
| Rol (nombre corto) | Perfil del manual | Cargos | Arquetipo | Contextos | Nivel de IA |
|---|---|---|---|---|---|
delta_socios | Administrador Institucional | Socios | manager | Sistema, categoría, curso | Sin límite |
delta_gerentes | Gerencia | Gerencia de Operaciones, de Proyectos, de Back Office | manager (recortado) | Sistema, categoría, curso | Ampliado |
delta_jefaturas | Administrador de Formación | Jefe de Talento Humano | manager | Sistema, categoría, curso | Sin límite |
delta_a1_operaciones | Administrador Técnico | Gerente de Sistemas | manager (recortado) | Sistema, categoría, curso | Sin límite |
delta_a2_rrhh | RRHH Operativo | Asistente de Talento Humano | editingteacher | Sistema, categoría, curso | Ampliado |
delta_a3 | Líder Operativo | Contadora General / Líder de Equipo | teacher (sin edición) | Categoría, curso | Ampliado |
delta_jefatura_tecnica | Jefatura Técnica | Jefe de Soporte, Jefe de Desarrollo | student | Categoría, curso | Ampliado |
delta_operativo_tecnico | Operativo Técnico | Asistente Desarrollador | student | Curso | Básico |
delta_operativo | Operativo | Asistente Contable | student | Curso | Básico |
delta_operativo_backof | Operativo / Back Office | Tesorera | student | Curso | Básico |
delta_auxiliares | Auxiliar | Mensajero, Auxiliar de Limpieza | student | Curso | Básico |
delta_pasante | Pasante / Aprendiz | Pasante | student | Curso | Básico |
Los doce roles tienen permitido block/ai_chat:view, para que el chat de IA aparezca sin importar el arquetipo.
Roles auxiliares
| Rol | Contexto | Para qué |
|---|---|---|
delta_lider_equipo (Líder de equipo) | Usuario | Se asigna al líder sobre cada integrante de su equipo. Le permite ver el avance, resultados y certificados de su equipo en "Mi equipo". Se sincroniza al guardar o borrar equipos. |
delta_resp_contenidos | Curso | Actualizar actividades y material de módulos concretos, sin matricular, sin ver calificaciones ajenas y sin cambiar la configuración del curso. |
delta_gestor_m12 | Curso | Lo mismo, más matricular y retirar personas y gestionar grupos por cliente en el Módulo 12. |
delta_postulante (Postulante restringido) | Sistema | Solo rinde su prueba técnica: se le impiden mensajería, chat de IA, blogs, comentarios, búsqueda, archivos propios, entre otros. |
delta_ai_mcp_ro (Delta AI MCP) | Sistema | Rol de la cuenta de servicio mcpservice del agente MCP (ver Inteligencia artificial). |
Responsables de contenido por cohorte de cargo (de manual-academia.json):
| Cohorte de cargo | Rol de curso | Módulos |
|---|---|---|
| Gerencia de Operaciones | delta_resp_contenidos | 2, 3, 4, 5 y 8 |
| Gerencia de Operaciones | delta_gestor_m12 | 12 |
| Gerencia de Proyectos | delta_resp_contenidos | 12 |
| Gerente de Sistemas | delta_resp_contenidos | 11 y 12 |
Ajustes al arquetipo en cada despliegue
| Script | Efecto |
|---|---|
align-access-profiles-to-manual.php | A Gerencia le quita editar o borrar cursos y actividades, categorías, cohortes, preguntas, calificar y copias de seguridad; conserva reportes, ver resultados y matricular (accesos al Módulo 12). Al Administrador Técnico le quita gestionar cohortes y vincularlas a cursos (las rutas de formación no son su responsabilidad). |
align-gerencia-to-manual.php | Gerencia no crea ni edita usuarios (PREVENT en contexto de sistema); tampoco por el chat de IA. |
enforce-course-creation-manual.php | Solo delta_jefaturas (y la cuenta de servicio MCP) puede crear cursos; al resto de roles Delta se les fija PREVENT. |
enforce-real-quiz-attempts.php | Nadie tiene mod/quiz:preview: todos rinden intentos reales que cuentan para el máximo. Solo el super administrador previsualiza. |
apply-content-responsibilities.php | Asigna los roles de responsable de contenido por cohorte de cargo. |
apply-partial-content-by-cargo.php | Tesorería solo ve los temas aplicables de los Módulos 2 y 5 (grupo con restricciones de acceso). |
Matriz de "Permitir asignar roles" (fix-role-assign-matrix-v2.php): Socios puede asignar cualquier rol; Talento Humano asigna los perfiles operativos y de formación; Gerencia no asigna roles de sistema; el Administrador Técnico gestiona su equipo técnico. Reportes (grant-reports-access.php): ven reportes Socios, Administrador de Formación, Administrador Técnico y Gerencia; crean reportes a medida Socios y Administrador de Formación.
Candados que no se saltan los gestores
En Moodle, los roles de gestión ignoran las restricciones de disponibilidad. En la Academia eso no aplica a lo que mide el cumplimiento:
- Cuestionarios: la regla de acceso
quizaccess_deltagateevalúa la disponibilidad sin el bypass de gestor. - Certificados: el parche de
mod_customcertsolo muestra y permite descargar el certificado propio con el módulo completo. - Vista de estudiante: quien gestiona un curso lo ve como estudiante fuera del modo de edición, porque también rinde sus módulos.
Lista blanca de Administración del sitio
local_deltamodules\admin_access poda el árbol de Administración del sitio para quien no es super administrador. Todo lo que no está en la lista desaparece del menú y, como las páginas de administración se abren a través del árbol, tampoco se pueden abrir escribiendo la dirección. Estar en la lista no da acceso: cada página sigue exigiendo su propio permiso.
| Sección | Páginas permitidas |
|---|---|
| Usuarios | Personal Deltamontero, Crear colaborador, Importar personal desde Excel, Aceptación de políticas, Correos de la Academia, Verificar un certificado, Completar correos del personal |
| Cursos | Crear módulo desde archivo, Respaldos de la Academia |
| Calificaciones | Calificaciones de la Academia |
| Informes | Revisión anual de módulos, Informes personalizados |
| General | Reglas de la Academia, Guía para Talento Humano, Configuración IA, Plantillas de certificado, Verificar un certificado, Página principal del sitio, Buscador de la administración |
| Secciones completas | Privacidad y políticas |
Capacidades propias de local_deltamodules: managereview, viewreports, manageteams, managestandard, managepeople y manageclients. De local_candidate_enrollment: entre otras, viewcandidates.
Super administradores
| Cuenta | Origen | Detalle |
|---|---|---|
Administrador inicial (MOODLE_ADMIN_USER, por defecto admin) | Instalación | Contraseña de MOODLE_ADMIN_PASSWORD, usada solo en la primera instalación |
admin.respaldo | create-second-superadmin.php | Se crea una sola vez si existe MOODLE_BACKUP_ADMIN_PASSWORD, con cambio de contraseña obligatorio al primer ingreso. Si se elimina a propósito, no vuelve a crearse |
- Las dos cuentas se restablecen la contraseña entre sí (Administración del sitio → Usuarios → Examinar lista de usuarios → Editar). Las cuentas con privilegios no pueden usar la recuperación por autoservicio.
- El script ya no contiene ni detecta las contraseñas que estuvieron publicadas en versiones antiguas del repositorio. Si quedó activo el aviso "la cuenta admin usa la contraseña por defecto" (
alert_admin_defaultpass), se quita solo cuando la cuentaadmincambia su contraseña (observadorpeople::password_updated). Esas contraseñas siguen en el historial de Git y deben considerarse comprometidas: ninguna cuenta debe usarlas. - Los super administradores tienen verificación en dos pasos (TOTP) obligatoria, con 7 días de gracia para configurarla (ver Seguridad).
- El super administrador ve todo el árbol de administración, se salta los candados de cuestionarios y certificados y recibe los avisos de cron, despliegue, respaldo y contraseñas por defecto.
Otros tipos de usuario
| Tipo | Cómo entra | Qué ve |
|---|---|---|
| Postulante | Con un código de acceso que entrega Talento Humano (define el cargo de la prueba, vence y tiene número de usos) | Solo su prueba técnica; cualquier otra página lo devuelve a ella. Al enviar, termina su sesión |
| Cliente | Se registra con el código de su empresa | Los módulos asignados a la cohorte de su empresa (cli_*); se suspende cuando vence el acceso de la empresa |
| Invitado | No permitido | El acceso de invitados está desactivado |
Detalle de uso para administradores: Administración.
Plugins y componentes
Mapa de los plugins de terceros y propios que forman la Academia y cómo se relacionan.
Seguridad
HTTPS y proxy, cabeceras y límites, contraseñas, MFA, políticas y LOPDP, derechos sobre los datos, datos enviados a la IA, seguridad de exámenes, secretos y datos personales en respaldos.