Modelo de permisos

Quién puede subir qué, y cómo se resuelve. Por privacidad esta página documenta el modelo; los correos asignados se gestionan en datalab.planitone.co/operaciones/responsables.

Roles

RolAlcance
admin-datalab / adminControl total: catálogo, schemas, asignaciones, anular cargas. Puede subir cualquier operación.
responsable-datalabSubir información en las operaciones que tenga asignadas.
(sin rol)Solo lectura pública de dashboards.

Los roles viven en usuarios/{emailKey}/roles (o roles_map). El emailKey es el correo con puntos reemplazados por guiones bajos: persona@unitropico.edu.co → persona@unitropico_edu_co.

Resolución de acceso a una operación

¿isAdmin()? ────────────────────────────► SÍ ⇒ puede subir
     │ no
     ▼
¿Existe override /responsables/operaciones/{OP_ID}?
     │ sí                                   │ no
     ▼                                      ▼
¿Su email está en el override?        ¿Su email está en
     │ sí        │ no                 /responsables/areas/{AREA_ID}?
     ▼           ▼                          │ sí        │ no
  PUEDE       NO PUEDE                      ▼           ▼
  SUBIR       (aunque sea del área)      PUEDE        NO PUEDE
El override REEMPLAZA, no suma. Si una operación tiene override, los responsables del área quedan excluidos salvo que se agreguen explícitamente al override. Al crear un override, incluye también al responsable del área si debe conservar acceso.

Estructura en RTDB

/DataLab/config/responsables/
  areas/
    SECRETARIA_GENERAL/
      secretariageneral@unitropico_edu_co: true
  operaciones/
    CARAC_GRAD_MENSUAL/            ← override: SOLO estos correos
      secretariageneral@unitropico_edu_co: true
      sneydercedeno_es@unitropico_edu_co: true
Formato: los correos son las claves del objeto (con ._) y el valor es true. El código de autorización debe leer Object.keys(), nunca Object.values() — ese fue un bug real que dejaba fuera a todos los responsables en varias vistas.

Cobertura actual EN VIVO

Conteo de correos asignados (sin exponer cuáles).

Cargando…

Buenas prácticas