Skip to Content
OrganizationsRoles y alcance de permisos

Roles y alcance de permisos

OpenFactory almacena roles independientes a nivel de organización, unidad y equipo. Un nombre de rol describe un alcance; no es un permiso universal que se aplique automáticamente a cada API o feature del producto.

Modelo de alcance

organization membership: owner | admin | member └── unit membership: unit_admin | base_creator | base_approver | member └── team membership: team_lead | variant_creator | variant_deployer | variant_user

La membresía de organización es el límite exterior. Un usuario debe ser miembro de la organización antes de que un administrador pueda añadirlo a una de sus unidades o equipos. La membresía se comprueba de forma independiente en cada nivel; no infieras un rol de unidad o equipo desde un rol de organización mostrado en otro contexto.

Roles de organización

La API actual de gestión de organizaciones aplica estos permisos:

OperaciónOwnerAdminMember
Ver organización, miembros, grupos, unidades y equipos
Editar nombre o descripción de la organizaciónNo
Crear, editar o eliminar grupos y gestionar miembros de grupoNo
Invitar o eliminar miembros ordinariosNo
Cambiar roles de miembro/admin ordinariosNo
Invitar o promover un ownerNoNo
Cambiar o eliminar un owner existenteNoNo
Crear o eliminar unidadesNo
Eliminar la organizaciónNoNo
Abandonar la organizaciónSí, salvo único owner

Una organización puede tener más de un owner. La API impide que el único owner abandone hasta que exista otro owner o se elimine la organización. No hay una acción aparte de «transfer ownership» en esta API; un owner cambia el rol de otro miembro a owner, luego puede cambiar o eliminar al owner anterior según corresponda.

Roles de unidad

Los owners y admins de organización pueden gestionar toda unidad. Dentro de una unidad, la API actual de gestión de organizaciones concede a unit_admin estas operaciones administrativas:

  • editar la unidad;
  • añadir, eliminar y cambiar roles de miembros de unidad;
  • crear, editar y eliminar equipos en esa unidad;
  • añadir y gestionar miembros de equipo en esa unidad.

Solo un owner o admin de organización puede eliminar la unidad en sí.

base_creator, base_approver y member de unidad son etiquetas de rol almacenadas para política de flujo de imágenes base. Las rutas CRUD de organización por sí solas no prueban que cada acción de crear, aprobar o desplegar en otro sitio aplique esas etiquetas. Verifica el comportamiento de autorización del flujo de compilación o aprobación concreto antes de usarlo como control.

Roles de equipo

Los owners/admins de organización y el unit_admin de la unidad padre pueden gestionar membresía de equipo. Un team_lead puede:

  • editar nombre o descripción del equipo;
  • añadir y eliminar miembros del equipo;
  • cambiar roles de miembros del equipo.

Un team_lead no puede eliminar el equipo mediante la API de organización actual; esa operación está reservada a un owner/admin de organización o al unit_admin padre.

variant_creator, variant_deployer y variant_user expresan las responsabilidades previstas del flujo de variant. No deben leerse como prueba de que cada endpoint de variant aplique una matriz completa crear/editar/desplegar. Prueba el flujo exacto y rutas denegadas en la versión desplegada.

Los grupos son distintos

Los grupos son colecciones de compartir a nivel de organización, no otra jerarquía de roles. Owners y admins crean grupos y gestionan membresía de grupo; todos los miembros de organización pueden listar grupos y sus miembros. La membresía en un grupo no convierte a un usuario en admin de organización, admin de unidad ni team lead.

Cambiar un rol con seguridad

  1. Confirma la organización, unidad o equipo objetivo.
  2. Registra las membresías efectivas actuales del usuario en los tres alcances.
  3. Aplica un cambio de rol.
  4. Prueba una operación permitida y una denegada con la sesión propia de ese usuario.
  5. Comprueba que el estado cacheado de la UI y las sesiones existentes reflejan el cambio.
  6. Conserva un registro de auditoría fuera de la etiqueta de rol si tu política lo exige.

Cambiar una etiqueta sin una prueba de ruta denegada no es evidencia suficiente de que se aplique mínimo privilegio.

Casos límite habituales

  • Un admin no puede promover a nadie a owner ni cambiar el rol de un owner existente.
  • Un usuario no puede añadirse a una unidad o equipo hasta pertenecer a la organización.
  • Los miembros de unidad y equipo pueden eliminarse a sí mismos; la membresía de organización permanece salvo que se elimine por separado.
  • Eliminar membresía de organización debe comprobarse por efectos obsoletos en unidad, equipo, grupo, share y sesión en tu versión.
  • Los colores de badge en la UI son presentación, no un control de seguridad. Confía siempre en autorización del lado servidor y pruebas de ruta denegada.