# j-PermissionsOP

> Bearbeiten Sie Rollen-, Gruppen- und Benutzerberechtigungen für OpenPlatform-Anwendungen.

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

Die Komponente bearbeitet Berechtigungen für Benutzer, Rollen und Gruppen in OpenPlatform. Binden Sie die ausgewählten Berechtigungen an einen Modellpfad und konfigurieren Sie die Endpunkte `find` und `read`. Das Modell enthält Berechtigungszeichenfolgen:

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

- Der erste Buchstabe bedeutet den zulässigen Typ, definiert in `types`
- `@admin` bedeutet eine Rolle `admin`
- `#employees` bedeutet eine Gruppe `employees`
- `123456` bedeutet einen bestimmten `userid`

__Konfiguration__:

- `placeholder` {String} ein Platzhalter für die `j-Directory`-Komponente (Standard: `Search`)
- `types` {String} Berechtigungstypen (Array getrennt durch Zeichen, Standard: `CRUD`)
- `disabled` {Boolean} optional, deaktiviert diese Komponente
- `default` {String} Standardwert von `type` (Standard: `R`)
- `dirkey` {String} optional, ein Schlüssel für Text in `j-Directory` (Standard: `name`)
- `labelrole` {String} optional eine Bezeichnung für Rollen (Standard: `Role`)
- `labelgroup` {String} optional eine Bezeichnung für Gruppen (Standard: `Group`)
- `limit` {Number} eine Anzahl der zulässigen Berechtigungen (Standard: `0` = unbegrenzt)
- `pk` {String} ein Primärschlüssel, dessen Wert in das Modell eingebunden wird (Standard: `id`)
- __IMPORTANT__ `find` {String} URL-Adresse zum Suchen von Rollen, Gruppen und Benutzern, die Komponente sendet `url?q=SEARCH_QUERY` (sie sendet einen leeren Wert)
- __IMPORTANT__ `read` {String} URL-Adresse zum Lesen von Rollen, Gruppen und Benutzern, die Komponente sendet `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' }];
```

## Nutzung

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

Deklarieren Sie `j-Directory` für das Auswahlmenü. Beide Endpunkte liefern ein Array von Objekten mit den Zeichenfolgeneigenschaften `id` und `name`. Der Endpunkt `find` erhält den Suchtext in `q`. Der Endpunkt `read` erhält kommagetrennte Kennungen in `id` und löst die bereits im Modell vorhandenen Berechtigungen auf. Wählen Sie mit `pk` das Kennungsfeld; der Standardwert ist `id`. Rollenkennungen haben das Präfix `@`, Gruppenkennungen das Präfix `#`.

Quelle: [Total.js Komponenten](https://github.com/totaljs/components/tree/910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e/j-PermissionsOP). Copyright Peter Širka und Mitwirkende. [MIT-Lizenz](/knowledge-licenses.json).
