# j-PermissionsOP

> Bewerken van rollen, groepen en gebruikersvergunningen voor OpenPlatform applicaties.

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

De component bewerkt machtigingen voor gebruikers, rollen en groepen in OpenPlatform. Koppel de geselecteerde machtigingen aan een modelpad en configureer de endpoints `find` en `read`. Het model bevat machtigingsstrings:

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

- eerste letter betekent toegestane type, gedefinieerd in `types`
- `@admin` betekent een rol van `admin`
- `#employees` betekent een groep van `employees`
- `123456` betekent een specifieke `userid`

__Configuratie__:

- `placeholder` {String} een plaatshouder voor de `j-Directory` component (default: `Search`)
- `types` {String} types van vergunning (array gedefinieerd door char, standaard: `CRUD`)
- `disabled` {Boolean} optioneel, deze component wordt uitgeschakeld
- `default` De standaardwaarde van `type` (De standaard is : `R`)
- `dirkey` {String} optioneel, een tekstleutel in `j-Directory` (default: `name`)
- `labelrole` {String} optioneel een label voor rollen (default: `Role`)
- `labelgroup` {String} optioneel een etiket voor groepen (default: `Group`)
- `limit` {Nummer} een aantal toegestane vergunningen (default: `0` = onbeperkt)
- `pk` {String} een primaire sleutel waarvan de waarde in het model wordt gebonden (default: `id`)
- __IMPORTANT__ `find` {String} URL voor het vinden van rollen, groepen en gebruikers, de component stuurt `url?q=SEARCH_QUERY` (het stuurt leeg)
- __IMPORTANT__ `read` {String} URL voor lezen rollen, groepen en gebruikers, de component stuurt `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' }];
```

## Gebruik

```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>
```

Declareer `j-Directory` voor het keuzemenu. Beide endpoints retourneren een array van objecten met de stringeigenschappen `id` en `name`. Het endpoint `find` ontvangt de zoektekst in `q`. Het endpoint `read` ontvangt door komma’s gescheiden identificaties in `id` en haalt de machtigingen op die al in het model staan. Kies met `pk` het identificatieveld; de standaardwaarde is `id`. Rolidentificaties hebben het voorvoegsel `@` en groepsidentificaties het voorvoegsel `#`.

De bron: [Total.js componenten](https://github.com/totaljs/components/tree/910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e/j-PermissionsOP)Copyright Peter Širka en bijdragen. [Mijn licentie](/knowledge-licenses.json).
