ServiceUserRole
Última atualização: 3 de julho de 2026
ServiceUserRole é o conjunto de permissões concedido ao end-user que se cadastrou no produto, ou seja, ao ServiceUser. Reúne em um único recurso o que ele pode fazer (ler, criar, editar, excluir, publicar) sobre Content Type, Content e Media, além de filtros que restringem o escopo, como apenas certos Content Type ou apenas o que ele mesmo criou. Essas permissões se aplicam à ACMA/ACDA chamadas pelo ServiceUser.
O lugar é diferente do SpaceRole. SpaceRole é o conjunto de permissões do Weegloo User (usuário do estúdio de conteúdo) e se aplica à CMA/CDA, enquanto ServiceUserRole é o conjunto de permissões do ServiceUser cadastrado no produto e se aplica à ACMA/ACDA. Um ServiceUserRole criado, por si só, não se aplica a ninguém. Ele é concedido ao ser indicado na função padrão (defaultRole) do ServiceLogin ou ao ser vinculado ao roleOverride do ServiceUser.
Estrutura do recurso
A seguir está a resposta de consulta única do ServiceUserRole "Comprador". Junto com sys (propriedades do sistema), ele possui as propriedades de corpo que definem as permissões: contentType, content e media.
{
"sys": {
"id": "3trmXRLXeZN2RTHvVj3hFDN5546vbp",
"type": "ServiceUserRole",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T12:40:36.944Z",
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-18T12:40:36.944Z",
"version": 1
},
"name": "Comprador",
"description": "Membro que pode ler produtos publicados",
"contentType": { "All": { "Allow": [] } },
"content": {
"Read": {
"Allow": [
{ "contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } } }
]
}
},
"media": { "All": { "Allow": [] } }
}Chaves principais:
contentType: mapa de permissões sobre o próprio Content Type (o esquema). Define, por ação, a permissão de ler, criar, editar, excluir e publicar Content Type.content: mapa de permissões sobre Content (os dados de conteúdo). O exemplo acima mostra um caso limitado à leitura apenas do Content de um Content Type específico.media: mapa de permissões sobre Media (arquivos e imagens).
Diferentemente do SpaceRole, o ServiceUserRole não tem settings para o acesso às configurações do Space, porque o ServiceUser não lida com as configurações do Space. Também não tem sys.isLocked, que indica se o recurso é fornecido por padrão.
Propriedades do sistema (sys)
Todo ServiceUserRole guarda as propriedades de sistema comuns no objeto sys. space, createdBy e updatedBy entram no formato Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).
| Propriedade | Tipo | Descrição |
|---|---|---|
id | string | Identificador único do recurso. |
type | string | Tipo do recurso. Para ServiceUserRole é sempre "ServiceUserRole". |
space | Refer<Space> | O Space a que este ServiceUserRole pertence. |
createdBy | Refer<User> | Usuário que criou. |
createdAt | string (date-time) | Momento da criação. |
updatedBy | Refer<User> | Usuário que fez a última modificação. |
updatedAt | string (date-time) | Momento da última modificação. |
version | integer (≥1) | Versão do recurso. Sobe 1 a cada modificação. |
ServiceUserRole é um recurso de configuração que não tem o conceito de publicação. Por isso, diferentemente de Content e Media, o sys não tem publish, archive nem status, apenas version. O version sobe a cada modificação do ServiceUserRole. Diferentemente do SpaceRole, também não tem sys.isLocked.
Mapa de permissões: contentType, content, media
contentType, content e media são, cada um, mapas que têm a ação como chave. As ações são Read (ler), Create (criar), Edit (editar), Delete (excluir) e Publish (publicar), e há também All, que aponta para todas as ações de uma vez. O valor de cada ação é um objeto que contém os arrays de regras Allow (permitir) e Deny (negar). Essa estrutura do mapa de permissões é igual à do SpaceRole.
"content": {
"Read": { "Allow": [ /* regra */ ], "Deny": [ /* regra */ ] },
"Edit": { "Allow": [ /* regra */ ] }
}Cada objeto de regra (rule) tem filtros opcionais que restringem o escopo da permissão.
contentType: limita o alvo a que a regra se aplica a um único Content Type. Coloca-se umReferque aponta para o Content Type.createdBy: limita aos recursos criados por um usuário específico. Se você colocar um id específico emsys.id, limita ao que aquela pessoa criou; se colocar o valor reservado:self, limita a "apenas o que o ServiceUser que está chamando agora criou".tag: limita aos recursos que têm uma Tag específica.
Um array Allow vazio [] significa permitir a ação para todo aquele tipo. Como o filtro está vazio, não há nada a filtrar, então a ação fica aberta a todos os recursos.
Diferentemente do SpaceRole, o ServiceUserRole não tem settings. O mapa de permissões tem apenas três: contentType, content e media. Para a lista de ações, as chaves de filtro e o significado de :self, bem como o modo de escrever o mapa de permissões, consulte também a explicação do SpaceRole, que usa a mesma estrutura. Um exemplo de uso de :self para restringir a edição apenas ao Content que o próprio usuário criou é mostrado no bloco de modificação abaixo.
A lista de ações (
Read,Create,Edit,Delete,Publish,All), as chaves de filtro (contentType,createdBy,tag) e o significado de:selfbaseiam-se na definição da regra de permissõesweegloo-space-role. O:selfdo ServiceUserRole resolve para apenas o que o ServiceUser atual criou.
API
A URL base de todos os endpoints abaixo é https://cma.weegloo.com/v1, e é necessário um token Bearer que autentique na CMA no cabeçalho Authorization. Para a modificação da função (PUT, PATCH), é preciso enviar também o cabeçalho X-Weegloo-Version (o sys.version atual do recurso) para o controle de concorrência otimista. A criação e a exclusão não têm esse cabeçalho.
Documentos relacionados
- ServiceUser: o membro cadastrado que recebe esta função (
roleOverride). - ServiceLogin: indica um ServiceUserRole como função padrão (
defaultRole). - SpaceRole: conjunto de permissões para Weegloo User (mesma estrutura de mapa de permissões).
