# j-PermissionsOP

> Editare i ruoli, i gruppi e le autorizzazioni utente per le applicazioni OpenPlatform.

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: it
Content-SHA256: b215e8864b7631bfd053e9fd8aba00ad8f3af36ed24bee590a8c501b15fef4fc
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: usage-reviewed

Il componente modifica i permessi di utenti, ruoli e gruppi OpenPlatform. Collega i permessi selezionati a un percorso del modello e configura gli endpoint `find` e `read`. Il modello contiene stringhe di permessi:

```
['C@admin', 'U@admin', 'R@admin', 'D@admin', 'R123456', 'R#employees']
```

- La prima lettera significa il tipo consentito, definito in `types`
- `@admin` significa un ruolo di `admin`
- `#employees` significa un gruppo di `employees`
- `123456` significa un specifico `userid`

__Configurazione__:

- `placeholder` {String} un contenitore di spazio per il componente `j-Directory` (default: `Search`)
- `types` {String} tipi di permesso (array delimitato da caro, standard: `CRUD`)
- `disabled` {Boolean} opzionale, disabilita questo componente
- Valore di `default` {String} di `type` (default: `R`)
- `dirkey` {String} opzionale, una chiave per il testo in `j-Directory` (default: `name`)
- `labelrole` {String} opzionale un'etichetta per i ruoli (default: `Role`)
- `labelgroup` {String} un'etichetta opzionale per i gruppi (default: `Group`)
- `limit` {Numero} un numero di autorizzazioni consentite (default: `0` = illimitato)
- `pk` {String} una chiave primaria la cui valore sarà legato al modello (default: `id`)
- __IMPORTANT__ `find` {String} URL per trovare ruoli, gruppi e utenti, il componente invia `url?q=SEARCH_QUERY` (invia valore vuoto)
- __IMPORTANT__ `read` {String} URL per i ruoli di lettura, i gruppi e gli utenti, il componente invia `url?id=@role,#group,userid,...`

```javascript
// The component expects data:
['C@admin', 'U@admin', 'R@admin', 'D@admin', 'R123456', 'R#employees'];

// The component tries to find data:
// The component tries to read data and it pairs them with the model automatically:
[{ id: '123456', name: 'Peter Širka' }, { id: '@admin', name: 'Administrators' }, { id: '#employees', name: 'Employees' }];
```

## Utilizzo

```html
<ui-component name="directory"></ui-component>
<ui-component name="permissionsop" path="form.permissions"
  config="find:/api/permissions/search/;read:/api/permissions/read/;types:CRUD"></ui-component>
<script>
  ON('request', function(request) {
    if (request.method === 'GET' && request.data &&
        request.url.indexOf('/api/permissions/') === 0) {
      request.url = QUERIFY(request.url, request.data);
      request.data = null;
    }
  });
  SET('form.permissions', ['R@admin', 'U#employees']);
</script>
```

Dichiara `j-Directory` per il menu di selezione. Entrambi gli endpoint restituiscono un array di oggetti con le proprietà stringa `id` e `name`. L’endpoint `find` riceve il testo cercato in `q`. L’endpoint `read` riceve identificatori separati da virgole in `id` e risolve i permessi già presenti nel modello. Usa `pk` per scegliere il campo identificatore; il valore predefinito è `id`. Gli identificatori dei ruoli hanno il prefisso `@`, quelli dei gruppi il prefisso `#`.

La fonte: [Componenti di Total.js](https://github.com/totaljs/components/tree/910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e/j-PermissionsOP)Copyright Peter Širka e contribuenti. [La mia licenza](/knowledge-licenses.json).
