Cuentas gestionadas (menores de edad, sin Telegram) — MOJ docs

Cuentas gestionadas (menores de edad, sin Telegram)

Nota de traducción. Este manual es una traducción del original en portugués. Las herramientas de línea de comandos (moj, moj-contest, moj-comp) muestran sus mensajes en portugués, y los ejemplos de comandos son idénticos al original.

El registro normal del Entrenamiento libre se confirma por Telegram. Eso excluye a quien no puede tener una cuenta en la aplicación de mensajería, típicamente los menores de edad. La cuenta gestionada es la solución: la crea un .admin responsable, no tiene ningún vínculo con Telegram y tiene bloqueos de privacidad que se levantan automáticamente a los 18 años.

El modelo en 30 segundos

Cuenta normal Cuenta GESTIONADA (menor)
Se crea registro web + Telegram pestaña 🧒 Cuentas gestionadas de /treino/admin/
Contraseña por DM del bot generada y mostrada UNA vez al admin
Olvidé la contraseña /trocarsenha en el bot solo el admin (🔑 en la pestaña)
Perfil público opcional (público por defecto) siempre privado (el servidor se niega a hacerlo público)
Telegram opcional bloqueado
A los 18 — los bloqueos se levantan solos: puede vincular Telegram y abrir el perfil

La marca queda en el account.json del usuario:

"managed": { "by": "prof.admin", "note": "turma A, Escola X",
             "birthdate": "2011-03-14", "expires_at": null, "created_at": 1785000000 }

La condición de menor se calcula a partir de la fecha de nacimiento en cada acceso. Nada se "cambia" a los 18: las restricciones simplemente dejan de aplicarse. La marca managed se mantiene (historial/listado, con la etiqueta 18+), y el perfil sigue privado hasta que el propio usuario lo abra.

Lo que el menor puede y no puede hacer

Operación (pestaña 🧒 Cuentas gestionadas de /treino/admin/)

Por la API (mismo efecto; Bearer de .admin)

Ruta Uso
GET /treino/admin/managed-users lista {login,fullname,by,note,birthdate,minor,expires_at,disabled}
POST /treino/admin/managed-create {users:[{fullname,birthdate,login?,note?,expires_at?}]} (1..500) → {created:[{login,password,…}], skipped}
POST /treino/admin/managed-reset {login} → nueva contraseña (una vez)
POST /treino/admin/managed-update {login, note?, birthdate?, expires_at?|null, disabled?}
POST /treino/admin/managed-remove {login}

Privacidad y datos (nota sobre la LGPD)

Para quien mantiene el código

Ver también