Reten Docs
Autenticación

Roles Asignables

Obtener los roles que el usuario actual puede asignar a otros usuarios.

GET /api/auth/assignable-roles

Devuelve los roles que el usuario actual puede asignar a otros usuarios, según la jerarquía de roles. Un usuario solo puede asignar roles estrictamente inferiores a su rol más alto.

Auth: Requerida — cualquier usuario autenticado, con el header x-tenant-id de uno de sus tenants

Encabezados

EncabezadoRequeridoValor
AuthorizationSíBearer <access_token>
x-tenant-idSíUUID del tenant

Ejemplo

curl https://api.reten.ai/api/auth/assignable-roles \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>"
const response = await fetch("https://api.reten.ai/api/auth/assignable-roles", {
  headers: {
    "Authorization": "Bearer <token>",
    "x-tenant-id": "<tenant-id>",
  },
});
const data = await response.json();
import requests

response = requests.get(
    "https://api.reten.ai/api/auth/assignable-roles",
    headers={
        "Authorization": "Bearer <token>",
        "x-tenant-id": "<tenant-id>",
    },
)
data = response.json()

Respuesta 200 OK

Respuesta para un supervisor (nivel 3):

{
  "assignableRoles": [
    {
      "id": "aa0e8400-e29b-41d4-a716-446655440000",
      "name": "operator",
      "description": "Field operator with scoped access to assigned activities",
      "permissions": [
        "project:view",
        "activity:view",
        "commerce-lifecycle-snapshot:view",
        "commerce:manage",
        "activity-result:submit",
        "activity-result:edit"
      ],
      "level": 2
    },
    {
      "id": "bb0e8400-e29b-41d4-a716-446655440000",
      "name": "viewer",
      "description": "Read-only access to tenant data",
      "permissions": [
        "project:view",
        "user:view",
        "activity:view",
        "commerce-lifecycle-snapshot:view"
      ],
      "level": 1
    }
  ],
  "currentUserLevel": 3
}
CampoTipoDescripción
assignableRolesarrayRoles inferiores al rol más alto del usuario actual, ordenados por level de mayor a menor
assignableRoles[].namestringValor del rol — el mismo string que se envía en roles al registrar un usuario o al actualizar sus roles
assignableRoles[].descriptionstring | nullDescripción del rol, en inglés
assignableRoles[].permissionsstring[]Permisos del rol (ver Roles y Permisos); el orden no está garantizado
assignableRoles[].levelnumberNivel del rol en la jerarquía
currentUserLevelnumberNivel del rol más alto del usuario actual

Notas

  • Jerarquía de roles: super_admin (6) > admin (5) > fde (4) > supervisor (3) > operator (2) > viewer (1). Un nivel más alto significa más privilegios.
  • super_admin nunca se devuelve: ningún rol está por encima de él.

Respuestas de Error

EstadoDescripción
400Falta el header x-tenant-id — Missing required header: x-tenant-id
401Token de acceso faltante o inválido
403El usuario no pertenece al tenant — User does not have access to the requested tenant