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
| Encabezado | Requerido | Valor |
|---|---|---|
Authorization | Sí | Bearer <access_token> |
x-tenant-id | Sí | 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
}| Campo | Tipo | Descripción |
|---|---|---|
assignableRoles | array | Roles inferiores al rol más alto del usuario actual, ordenados por level de mayor a menor |
assignableRoles[].name | string | Valor del rol — el mismo string que se envía en roles al registrar un usuario o al actualizar sus roles |
assignableRoles[].description | string | null | Descripción del rol, en inglés |
assignableRoles[].permissions | string[] | Permisos del rol (ver Roles y Permisos); el orden no está garantizado |
assignableRoles[].level | number | Nivel del rol en la jerarquía |
currentUserLevel | number | Nivel 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_adminnunca se devuelve: ningún rol está por encima de él.
Respuestas de Error
| Estado | Descripción |
|---|---|
400 | Falta el header x-tenant-id — Missing required header: x-tenant-id |
401 | Token de acceso faltante o inválido |
403 | El usuario no pertenece al tenant — User does not have access to the requested tenant |