# Roles personalizados

## Información general

**Roles personalizados** es una funcionalidad opcional en RealmJoin Portal y permite crear roles internos adicionales de RealmJoin. Puedes asignar permisos granulares / atómicos a estos roles y vincularlos a grupos de Entra o usuarios dedicados.

{% hint style="info" %}
Si se necesitan roles personalizados, por favor **solicita la activación a través del soporte de RealmJoin**.
{% endhint %}

Los roles personalizados se definen como JSON. El editor JSON incluido en RealmJoin Portal ofrece comprobación y resaltado de sintaxis y verificará tu definición con el esquema JSON de Roles personalizados.&#x20;

<figure><img src="https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FNifuPdTWlMiAniHWFyov%2Fimage.png?alt=media&#x26;token=189d5359-6632-4d41-a9ca-14a886fce7c1" alt=""><figcaption><p>Editor JSON de Roles personalizados</p></figcaption></figure>

## Uso del editor

### Comprobación de sintaxis / Errores

El editor comprobará la sintaxis mientras escribes. Si se detecta un error de sintaxis, aparecerá un mensaje de error **Ver x errores** y un icono de error junto a **Guardar.**

<figure><img src="https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2F9KdtoXuHIptOvZot6fHy%2Fimage.png?alt=media&#x26;token=6337d312-d237-48bf-a7fa-2e0ae3ffe67f" alt=""><figcaption><p>Mensaje/botón de error JSON</p></figcaption></figure>

Haz clic en este mensaje para obtener más detalles sobre el error.

### Formato

Puedes autoformatear el JSON haciendo clic **Formato** en la esquina superior derecha de la página.

<figure><img src="https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FBcvly75klfY71hEA0oMj%2Fimage.png?alt=media&#x26;token=009be309-82ff-4dac-828b-146c29def86e" alt=""><figcaption><p>Botón de formato</p></figcaption></figure>

### Autocompletado

El editor puede ofrecer autocompletado de palabras clave conocidas (como permisos) del esquema.

<figure><img src="https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FwyhuLYTSuCJyhdK3K0lX%2Fimage.png?alt=media&#x26;token=20ab28f4-6b98-4349-96fc-1586d609449a" alt=""><figcaption><p>Autocompletado de palabras clave</p></figcaption></figure>

Puedes pulsar "Ctrl" + "Espacio" en cualquier momento para invocar el autocompletado.

## Reglas

Un rol se describe como un par de permisos y usuarios y/o grupos a los que se les conceden estos permisos.

Los roles se enumeran como parte de un array (lista) bajo la palabra clave **Reglas**.

Ejemplo de conjunto de reglas:

```json
{
  "Rules": [
    {
      "Name": "Por defecto: los colaboradores pueden cambiar el usuario principal [27e589a7]",
      "Description": "Regla predeterminada para permitir que los miembros de un grupo de colaboradores cambien el usuario principal de los dispositivos unidos a RealmJoin. Conserva el ID que está incluido en su nombre.",
      "Groups": [
        "f31f5765-f56f-47fa-9248-ac2d77221634",
        "422e6b7c-bd99-4082-be1c-88cbc2bb2734"
      ],
      "Permissions": [
        "CanChangeRealmJoinPrimaryUser"
      ]
    },{
      "Name": "Permitir a John añadir nuevos formularios de autoservicio",
      "Users": [
        "b31f5765-f56f-47fa-9248-ac2d77221622"
      ],
      "Permissions": [
        "CanAddSelfServiceForms"
      ]
    }
  ]
}
```

### Nombre y descripción

**Nombre** es obligatorio, **Descripción** es opcional.&#x20;

Ambos son campos de texto sin formato (cadena).

### Permisos

Un permiso es una cadena única que identifica una determinada acción en RealmJoin Portal. **Permisos** es una lista (array) de permisos.

Consulta [Permisos disponibles](https://docs.realmjoin.com/es/configuracion-de-realmjoin/permission/custom-roles/available-permissions) para obtener una lista y descripción de los permisos comunes.

### Grupos

Una lista (array) de IDs de objeto de grupo de Entra. Dado [permisos](#permissions) se asignará a todos los usuarios que sean miembros de estos grupos.

### Usuarios

Una lista (array) de IDs de objeto de usuario de Entra. Dado [permisos](#permissions) se asignará a estos usuarios.
