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" } }).

PropriedadeTipoDescrição
idstringIdentificador único do recurso.
typestringTipo do recurso. Para ServiceUserRole é sempre "ServiceUserRole".
spaceRefer<Space>O Space a que este ServiceUserRole pertence.
createdByRefer<User>Usuário que criou.
createdAtstring (date-time)Momento da criação.
updatedByRefer<User>Usuário que fez a última modificação.
updatedAtstring (date-time)Momento da última modificação.
versioninteger (≥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 um Refer que aponta para o Content Type.
  • createdBy: limita aos recursos criados por um usuário específico. Se você colocar um id específico em sys.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 :self baseiam-se na definição da regra de permissões weegloo-space-role. O :self do 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.

  • 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).