# j-PermissionsOP

> Éditer les rôles, groupes et permissions d'utilisateur pour les applications OpenPlatform.

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

Le composant modifie les permissions des utilisateurs, rôles et groupes OpenPlatform. Liez les permissions sélectionnées à un chemin du modèle et configurez les points d’accès `find` et `read`. Le modèle contient des chaînes de permissions :

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

- La première lettre signifie le type autorisé, défini en `types`
- `@admin` signifie un rôle de `admin`
- `#employees` signifie un groupe de `employees`
- `123456` Cela signifie un spécifique `userid`

__Configuration__ :

- `placeholder` {String} un conteneur de place pour le composant `j-Directory` (défaut: `Search`)
- `types` {String} types de permission (range délimité par char, défaut: `CRUD`)
- `disabled` {Boolean} facultatif, désactive ce composant
- `default` {String} valeur par défaut de `type` (defaut: `R`)
- `dirkey` {String} optionnel, une clé pour le texte dans `j-Directory` (defaut: `name`)
- `labelrole` {String} optionnel un étiquette pour les rôles (defaut: `Role`)
- `labelgroup` {String} optionnel un étiquette pour les groupes (défaut: `Group`)
- `limit` {Numéro} un nombre de permissions autorisées (defaut: `0` = illimité)
- `pk` {String} une clé primaire dont la valeur sera liée au modèle (defaut: `id`)
- __IMPORTANT__ `find` {String} URL pour trouver des rôles, groupes et utilisateurs, le composant envoie `url?q=SEARCH_QUERY` (il envoit une valeur vide)
- __IMPORTANT__ `read` {String} URL pour les rôles de lecture, les groupes et les utilisateurs, le composant envoie `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' }];
```

## Utilisation

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

Déclarez `j-Directory` pour le menu de sélection. Les deux points d’accès renvoient un tableau d’objets avec les propriétés de chaîne `id` et `name`. Le point d’accès `find` reçoit le texte recherché dans `q`. Le point d’accès `read` reçoit des identifiants séparés par des virgules dans `id` et résout les permissions déjà présentes dans le modèle. Utilisez `pk` pour choisir le champ identifiant ; sa valeur par défaut est `id`. Les identifiants de rôles portent le préfixe `@` et ceux des groupes le préfixe `#`.

Source : [Composants Total.js](https://github.com/totaljs/components/tree/910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e/j-PermissionsOP). Copyright Peter Širka et contributeurs. [Licence MIT](/knowledge-licenses.json).
