Saltearse al contenido

Resumen de administración

La sección Admin es donde se configura una organización. Aparece en la navegación izquierda solo para miembros cuyo OrgMember.role es admin o superadmin (los managers obtienen una vista reducida solo de Usuarios). Cada cambio aquí surte efecto a nivel org e inmediatamente — no hay entorno de staging.

Las rutas están montadas bajo /admin/* y protegidas por orgRoleGuard. Si llegas a una página con el rol incorrecto serás redirigido al dashboard.

Secciones

SecciónRutaGestionaRol mínimo
Organizaciones/admin/orgPerfil de la org, logo, contacto, planadmin
Usuarios/admin/usersMiembros, invitaciones, cambios de rolmanager
Roles/admin/rolesRBAC integrado y personalizadosuperadmin
Equipos/teamsSub-unidades, líderes, canales PTTadmin
Sedes/admin/venuesSitios con nombre y polígonos de límiteadmin
Activos/admin/assetsVehículos, radios, baterías, equipoadmin
Webhooks/admin/webhooksIntegraciones HTTP salientesadmin
Workflows/admin/workflowsAutomatizaciones trigger → condición → acciónadmin
Gestión de DJI/admin/djiDocks emparejados, firmware, FlySafe, logsadmin
Suscripción/admin/subscriptionNivel de plan y feature flagssuperadmin

Selector de org

Si tu cuenta pertenece a más de una org, un selector se sitúa en la parte superior derecha de cada página de admin. Escribe en OrgService.activeOrgId y cada lista en la página se re-consulta contra la org seleccionada.

Log de auditoría

Cada escritura de admin emite un evento admin.* al stream de auditoría de la org (por ejemplo admin.user.invited, admin.role.updated, admin.webhook.created, admin.dji.dock.unpaired). En los planes Command y Sovereign estos eventos se escriben al log de auditoría inmutable (respaldado por WORM); en Tactical se rotan después de 180 días; Guardian mantiene un buffer circular básico de 30 días. Ver la página de Suscripción para la retención por nivel de plan.

Quién puede leer vs. escribir

Las páginas de admin siguen mayormente la misma regla: cualquiera con el rol correcto ve la vista de lectura completa, pero las acciones de mutación (Guardar, Invitar, Eliminar, Desemparejar, Regenerar secreto, etc.) están protegidas una segunda vez por las reglas de Firestore en firestore.rules. Un usuario degradado a mitad de sesión aún puede ver la página pero recibirá toasts “permission-denied” en cualquier escritura.

Algunas acciones tienen una protección extra sobre el rol:

  • Los cambios de plan son exclusivos de superadmin y se reflejan a /organizations/{orgId}.plan.
  • La creación de roles personalizados requiere el plan Command o superior (la página muestra un candado y un hint de actualización en planes inferiores).
  • Desactivar una org requiere que escribas el nombre de la org para confirmar.
  • Desemparejar un dock de DJI requiere un segundo clic en el popover de confirmación.

Convenciones

  • TACLINK es el tejido en tiempo real (audio, vídeo, PTT, telemetría). Verás contadores de minutos taclink.* en la página de Suscripción.
  • Las rutas de Firestore usan el prefijo /organizations/{orgId}/... para todo lo delimitado por org. Los webhooks son la excepción (/webhooks/{id} con un campo orgId).
  • Todos los formularios persisten con una confirmación de toast; no hay un “guardar borrador” separado — cerrar el formulario sin hacer clic en Guardar descarta los cambios.
  • Las acciones destructivas usan el estilo rojo tac-btn--danger y requieren un clic de confirmación mediante popover.

Relacionados