> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/pt/administracao-e-definicoes/permission/custom-roles.md).

# Funções personalizadas

## Visão geral

**Funções personalizadas** é uma funcionalidade opcional no RealmJoin Portal e permite criar funções internas adicionais do RealmJoin. Pode atribuir permissões granulares / atómicas a estas funções e associá-las a grupos do Entra ou a utilizadores dedicados.

{% hint style="info" %}
Se forem necessárias funções personalizadas, por favor **solicite a ativação através do suporte RealmJoin**.
{% endhint %}

As Funções Personalizadas são definidas em JSON. O editor JSON incluído no RealmJoin Portal oferece verificação de sintaxe e realce e irá validar a sua definição contra o esquema JSON das Funções Personalizadas.

<figure><img src="/files/501a7df48fa8d7f253480dd5e568a7ce4a32e74d" alt=""><figcaption><p>Editor JSON das Funções Personalizadas</p></figcaption></figure>

## Utilizar o editor

### Verificação de sintaxe / Erros

O editor verificará a sintaxe à medida que escreve. Se for detetado um erro de sintaxe, uma mensagem de erro **Ver x erros** e o ícone de erro aparecerá junto de **Guardar.**

<figure><img src="/files/83ab5feac089b457daa5c5a1dcd08ac73e834b09" alt=""><figcaption><p>Mensagem/botão de erro JSON</p></figcaption></figure>

Clique nesta mensagem para obter mais detalhes sobre o erro.

### Formatação

Pode formatar automaticamente o JSON clicando em **Formatar** no canto superior direito da página.

<figure><img src="/files/79714aae555edf96ff3186b2bdc6709d2fcbc58f" alt=""><figcaption><p>Botão Formatar</p></figcaption></figure>

### Auto-completar

O editor pode oferecer Auto-completar de palavras-chave conhecidas (como permissões) a partir do esquema.

<figure><img src="/files/c587843f45a8dcf2916e77c81531d0d685ed0b69" alt=""><figcaption><p>Auto-completar de palavras-chave</p></figcaption></figure>

Pode premir "Ctrl" + "Espaço" em qualquer altura para invocar o Auto-completar.

## Regras

Uma função é descrita como um par de permissões e utilizadores e/ou grupos aos quais essas permissões são atribuídas.

As funções são listadas como parte de uma matriz (lista) sob a palavra-chave **Regras**.

Exemplo de conjunto de regras:

```json
{
  "Rules": [
    {
      "Name": "Predefinição: os membros de um grupo de apoiantes podem alterar o utilizador principal [27e589a7]",
      "Description": "Regra predefinida para permitir que membros de um grupo de apoiantes alterem o utilizador principal dos dispositivos associados ao RealmJoin. Por favor, mantenha o ID incluído no nome.",
      "Groups": [
        "f31f5765-f56f-47fa-9248-ac2d77221634",
        "422e6b7c-bd99-4082-be1c-88cbc2bb2734"
      ],
      "Permissions": [
        "CanChangeRealmJoinPrimaryUser"
      ]
    },{
      "Name": "Permitir que John adicione novos formulários de Self Service",
      "Users": [
        "b31f5765-f56f-47fa-9248-ac2d77221622"
      ],
      "Permissions": [
        "CanAddSelfServiceForms"
      ]
    }
  ]
}
```

### Nome e Descrição

**Nome** é obrigatório, **Descrição** é opcional.

Ambos são campos de texto simples (string).

### Permissões

Uma permissão é uma string única, que identifica uma determinada ação no RealmJoin Portal. **Permissões** é uma lista (array) de permissões.

Ver [Permissões Disponíveis](/pt/administracao-e-definicoes/permission/custom-roles/available-permissions.md) para uma lista e descrição das permissões comuns.

### Grupos

Uma lista (array) de IDs de objeto de grupo do Entra. Se fornecida [permissões](#permissions) serão atribuídas a todos os utilizadores que sejam membros destes grupos.

### Utilizadores

Uma lista (array) de IDs de objeto de utilizador do Entra. Se fornecida [permissões](#permissions) serão atribuídas a estes utilizadores.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/pt/administracao-e-definicoes/permission/custom-roles.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
