Asignación de Perfiles y Gestión de Usuarios Multi-Tienda
La evolución de la API REST de Gestión de Usuarios de RUB adecua los contratos de interfaz para viabilizar el aprovisionamiento de accesos corporativos y la asignación de perfiles multi-tienda directamente desde herramientas centrales de gobernanza e IAM (Identity and Access Management).
La arquitectura elimina la dependencia de parámetros de tienda en la URL de las operaciones globales y estandariza la administración de sucursales a través del array stores en el payload JSON.
🎯 Qué cambió y Principales Beneficios
- Desacoplamiento de Rutas (Global Endpoints): Las operaciones globales de alta, consulta, actualización y sincronización de grupos dejan de requerir el tenant de tienda en el path de la ruta (
/api/rest/usuario/v1/${code}), simplificando la integración corporativa. - Gestión Multi-Tienda en Llamada Única: Capacidad de asociar y conceder grupos de acceso a un usuario en decenas de tiendas simultáneamente mediante una única petición.
- Gestión Dinámica de Vínculos en PUT: El array
storesrefleja el estado deseado completo. La inclusión de una nueva unidad asocia al usuario y aplica los grupos; la exclusión u omisión de una tienda previamente vinculada remueve automáticamente el acceso del usuario en esa sucursal. - Exclusión Puntual vs. Global: Preservación del endpoint con tenant de tienda para desvinculación puntual (
DELETE /api/rest/usuario/v1/${loja}/${code}), junto con el endpoint sin tienda (DELETE /api/rest/usuario/v1/${code}) para purga global del usuario en toda la red. - Atomicidad Transaccional: Las operaciones multi-tienda se ejecutan bajo una transacción atómica — cualquier falla en una sucursal revierte todos los cambios, previniendo divergencias catastrales.
- Validación Estricta de Identificadores: Validación estricta del código numérico de tienda (
code), retornando400 Bad Requesten caso de valores inválidos o sucursales inexistentes.
💻 Cómo Utilizar
1. Payload de Creación / Actualización Multi-Tienda (PUT)
Al crear o actualizar un usuario vía PUT /api/rest/usuario/v1/${code}, envíe el array stores con los identificadores numéricos de las unidades deseadas:
JSON
{
"name": "Nombre del Colaborador",
"email": "colaborador@atacadao.com.br",
"status": "ATIVO",
"stores": [
{ "code": 940 },
{ "code": 733 }
],
"groups": [
{ "code": "GERENTE_TIENDA" }
]
}
2. Sincronización de Grupos Multi-Tienda (POST / PATCH)
Para adicionar o sincronizar grupos de acceso en lote entre sucursales:
- PATCH
/api/rest/usuario/v1/group: Adiciona los grupos indicados a las tiendas listadas en el arraystores. - POST
/api/rest/usuario/v1/group: Sincroniza y define los grupos del usuario en todas las tiendas listadas.
3. Exclusión de Vínculos
- Desvincular de Tienda Específica:
HTTP
DELETE /api/rest/usuario/v1/{loja}/{code} - Exclusión Catastral Global (Todas las Tiendas):
HTTP
DELETE /api/rest/usuario/v1/{code} - Remover Grupo en Todas las Tiendas:
HTTP
DELETE /api/rest/usuario/v1/group/{code}/{group}