Grupos de usuários
Como funcionam os grupos de clientes, de sellers e de administradores, o status do grupo e do vínculo, os privilégios e o mapa das rotas.
Um grupo de usuários (usergroup) é uma lista nomeada de pessoas. A plataforma usa grupos para três coisas bem diferentes, e o type do grupo diz qual:
- Segmentar clientes (
C): "Atacado", "VIP", "Revendedores". A loja usa o grupo para decidir preços, formas de pagamento, promoções e campanhas por público. - Agrupar usuários de seller (
V): permissões de quem opera o painel de um seller. - Dar permissão a administradores (
A): o grupo carrega uma lista de privilégios (ver pedidos, gerenciar usuários...) e quem é membro ganha esses privilégios.
Esta seção documenta os grupos (/api/v1/admin/usergroups), o vínculo de um usuário a grupos e os privilégios de um grupo.
Como funciona
Tipos de grupo
type | Para quê | Pode ter privilégios? |
|---|---|---|
C | Segmento de clientes (públicos, tabelas comerciais, campanhas). Padrão ao criar. | Não. Tentar gravar privilégios devolve erro. |
V | Grupos de usuários de seller. | Sim (privilégios de seller). |
A | Grupos de administradores da loja. | Sim. Só o dono da loja pode alterar os privilégios. |
Um tipo desconhecido, ao criar, vira C sem erro. Ao alterar, um tipo desconhecido é ignorado.
Status do grupo e do vínculo
O grupo tem um status próprio:
| Letra | Palavra aceita | Significado |
|---|---|---|
A | active | Ativo. Padrão ao criar. |
H | hidden | Oculto. |
D | disabled | Desativado: ninguém novo pode ser vinculado e o grupo some da lista de grupos do usuário. |
O vínculo entre um usuário e um grupo tem outro conjunto:
| Letra | Significado |
|---|---|
A | Membro ativo. É o que vale para preços, pagamento e privilégios. |
P | Pendente: pediu para entrar e ainda não foi aceito. |
F | Disponível: o usuário saiu, mas a linha foi guardada e ele pode voltar. |
D | Recusado. |
Campos extras do grupo
vendor_manageable: setrue, o seller pode colocar os próprios clientes neste grupo, pelo painel dele.company_id: o seller para o qual o grupo foi liberado.nullsignifica todos.internal_code: código do grupo no seu ERP (texto livre). Útil para casar grupos entre sistemas.members_count: quantos vínculos o grupo tem, de qualquer status.
Grupos cujo nome começa com CRM: são gerados pelas audiências de campanha e mantidos pela plataforma. Não os edite à mão: a próxima atualização da audiência desfaz a mudança.
Privilégios
Um privilégio é uma permissão com nome (view_orders, manage_users). Por convenção, view_* só lê e manage_* também escreve. Um administrador tem a soma dos privilégios dos grupos de que é membro ativo (A). O dono da loja (is_root) ignora os grupos e tem tudo. Administradores novos entram automaticamente no grupo de administradores padrão.
A lista de todos os privilégios existentes sai de GET /api/v1/admin/privileges (exige manage_usergroups): cada item tem privilege, section_id, group_id, is_view e module_slug.
Autenticação
Bearer de um administrador com o privilégio manage_usergroups (grupos e privilégios) ou manage_users (vincular usuários a grupos).
Endpoints
| Método | Rota | O que faz | Auth | Página |
|---|---|---|---|---|
| GET | /api/v1/admin/usergroups | Lista grupos | Admin | Grupos |
| GET | /api/v1/admin/usergroups/{id} | Consulta um grupo e os membros | Admin | Grupos |
| POST | /api/v1/admin/usergroups | Cria grupo | Admin | Grupos |
| PUT | /api/v1/admin/usergroups/{id} | Altera grupo | Admin | Grupos |
| DELETE | /api/v1/admin/usergroups/{id} | Exclui grupo | Admin | Grupos |
| GET | /api/v1/admin/users/{id}/usergroups | Grupos do usuário | Admin | Vínculo com grupos |
| POST | /api/v1/admin/users/{id}/usergroups | Vincula ou muda o vínculo | Admin | Vínculo com grupos |
| DELETE | /api/v1/admin/users/{id}/usergroups/{groupId} | Remove o vínculo | Admin | Vínculo com grupos |
| GET | /api/v1/admin/usergroups/{id}/privileges | Privilégios do grupo | Admin | Privilégios |
| PUT | /api/v1/admin/usergroups/{id}/privileges | Troca os privilégios do grupo | Admin | Privilégios |
Erros comuns
- Mandar um tipo escrito por extenso (
customer). Só valem as letrasC,VeA; outro valor, ao criar, viraCsem aviso. - Gravar privilégios num grupo
C. Devolve 500 com a explicação. Use grupoAouV. - Digitar errado um privilégio. O nome desconhecido é descartado e a resposta é 200. Releia o grupo para conferir.
- Excluir um grupo que ainda tem membros. Os vínculos somem junto, e o preço, o pagamento e as promoções amarrados ao grupo deixam de valer para essas pessoas.
- Esperar 404 ao tocar num grupo que não existe em todas as rotas. Excluir ou alterar o status de um grupo inexistente pode voltar 500. Veja os erros de cada página.