Atribuição de Perfis e Gestão de Usuários Multi-Loja
A evolução da API REST de Gestão de Usuários do RUB adequa os contratos de interface para viabilizar o provisionamento de acessos corporativos e a atribuição de perfis multi-loja diretamente a partir de ferramentas centrais de governança e IAM (Identity and Access Management).
A arquitetura remove a dependência de parâmetros de loja na URL das operações globais e padroniza o gerenciamento de filiais através do array stores no payload JSON.
🎯 O que mudou e Principais Benefícios
- Desacoplamento de Rotas (Global Endpoints): As operações globais de cadastro, consulta, atualização e sincronização de grupos deixam de exigir o tenant de loja no path da rota (
/api/rest/usuario/v1/${code}), simplificando a integração corporativa. - Gestão Multi-Loja em Chamada Única: Possibilidade de associar e conceder grupos de acesso a um usuário em dezenas de lojas simultaneamente através de uma única requisição.
- Gestão Dinâmica de Vínculos no PUT: O array
storesreflete o estado desejado completo. A inclusão de uma nova unidade associa o usuário e aplica os grupos; a exclusão ou ausência de uma loja anteriormente vinculada remove automaticamente o acesso do usuário naquela unidade. - Exclusão Pontual vs. Global: Preservação do endpoint com tenant de loja para desvinculação pontual (
DELETE /api/rest/usuario/v1/${loja}/${code}), somada ao endpoint sem loja (DELETE /api/rest/usuario/v1/${code}) para expurgo global do usuário em toda a rede. - Atomicidade Transacional: Operações multi-loja são executadas sob uma transação atômica — qualquer falha em uma filial reverte todas as alterações, prevenindo divergências cadastrais.
- Validação Estrita de Identificadores: Validação estrita do código numérico de loja (
code), retornando400 Bad Requestem caso de envio de valores inválidos ou filiais inexistentes.
💻 Como Utilizar
1. Payload de Criação / Atualização Multi-Loja (PUT)
Ao criar ou atualizar um usuário via PUT /api/rest/usuario/v1/${code}, envie o array stores com os identificadores numéricos das unidades desejadas:
JSON
{
"name": "Nome do Colaborador",
"email": "colaborador@atacadao.com.br",
"status": "ATIVO",
"stores": [
{ "code": 940 },
{ "code": 733 }
],
"groups": [
{ "code": "GERENTE_LOJA" }
]
}
2. Sincronização de Grupos Multi-Loja (POST / PATCH)
Para adicionar ou sincronizar grupos de acesso em lote entre filiais:
- PATCH
/api/rest/usuario/v1/group: Adiciona os grupos informados às lojas indicadas no arraystores. - POST
/api/rest/usuario/v1/group: Sincroniza e define os grupos do usuário em todas as lojas listadas.
3. Exclusão de Vínculos
- Desvincular de Loja Específica:
HTTP
DELETE /api/rest/usuario/v1/{loja}/{code} - Exclusão Cadastral Global (Todas as Lojas):
HTTP
DELETE /api/rest/usuario/v1/{code} - Remover Grupo em Todas as Lojas:
HTTP
DELETE /api/rest/usuario/v1/group/{code}/{group}