VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Guia rápido/Grupos de usuários

Privilégios

Leia e troque os privilégios de um grupo, e entenda quem pode fazer cada coisa no painel de administração.

Um privilégio é uma permissão com nome. Um grupo de administradores (A) ou de seller (V) tem uma lista de privilégios, e quem é membro ativo do grupo ganha todos eles. É assim que a loja decide que o atendente "vê pedidos mas não mexe em preços".

Por convenção, os nomes seguem view_<área> (só lê) e manage_<área> (lê e escreve), como view_orders, manage_orders, manage_users. A lista completa e atual vem de GET /api/v1/admin/privileges (exige manage_usergroups), que devolve, para cada privilégio, privilege (o nome), section_id, group_id, is_view (true para os de leitura) e module_slug (o recurso opcional da loja a que pertence, quando há).

Estas rotas exigem manage_usergroups.

GET/api/v1/admin/usergroups/{id}/privilegesAdmin

Privilégios de um grupo de usuários

Devolve os nomes dos privilégios gravados no grupo.

Path parameters

iduuidobrigatório
Id do grupo.
200Privilégios do grupo
json
{ "privileges": ["view_orders", "manage_orders", "view_users"] }

Campos da resposta

privilegesarray
Nomes dos privilégios. null quando o grupo não tem nenhum.
PUT/api/v1/admin/usergroups/{id}/privilegesAdmin

Substitui os privilégios de um grupo de usuários

Substitui a lista inteira: o que não estiver no corpo é removido. Para acrescentar um privilégio, leia a lista, adicione o nome e envie tudo de volta. Lista vazia remove todos.

Duas regras de segurança:

  • Grupo de administradores (A): só o dono da loja (is_root) pode trocar os privilégios. Sem isso, qualquer administrador do grupo poderia se dar qualquer permissão. Outro administrador recebe 403.
  • Grupo de clientes (C) não pode ter privilégios. Enviar uma lista não vazia devolve 500 com a explicação. Para zerar, envie lista vazia.

Path parameters

iduuidobrigatório
Id do grupo.

Corpo da requisição

privilegesarrayobrigatório
Nomes dos privilégios do grupo. Um nome que não existe é descartado em silêncio: confira o resultado com GET.

Exemplo de requisição

bash
curl -X PUT "$BASE_URL/api/v1/admin/usergroups/11743c6d-a14f-42a8-9785-a155aff091ba/privileges" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"privileges": ["view_orders", "manage_orders"]}'

Resposta

200Privilégios gravados
json
{ "message": "privileges updated" }

Erros

StatusQuandoCorpo
400Corpo que não é JSON{"error":"invalid request body","detail":"..."}
401Sem credenciais ou token expirado{"error":"invalid or expired token"}
403Falta manage_usergroups, ou o grupo é de administradores e quem chama não é o dono{"error":"insufficient privileges","required":"manage_usergroups"} ou {"error":"only the store owner can change administrator privileges","detail":"This group grants administrative access. Ask an owner (root) account to edit it."}
404Grupo inexistente (gravar){"error":"usergroup not found"}
500Grupo de clientes com lista não vazia{"error":"failed to set group privileges","detail":"usergroup ... is customer-type (type=C) and cannot hold privilege grants; remove all grants or change the group type"}
Cuidado com o grupo padrão de administradores

Trocar a lista do grupo de administradores padrão muda o acesso de todos os que estão nele, na hora. Retirar manage_usergroups ou manage_users pode trancar a equipe fora desses recursos. Leia a lista atual, altere só o necessário e reenvie.

O dono ignora os grupos

Um usuário marcado como dono (is_root) tem todos os privilégios, mesmo sem grupo (Alterar cliente). Por isso é seguro limitar um grupo sem medo de perder o acesso total do dono.

Veja também

  • Grupos
  • Vínculo com grupos
  • Criar cliente
Anterior
Vínculo com grupos
Próxima
Categorias
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também