# j-PermissionsOP

> Editați rolurile, grupurile și permisiunile utilizatorului pentru aplicațiile OpenPlatform.

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

Componenta editează permisiunile utilizatorilor, rolurilor și grupurilor OpenPlatform. Asociați permisiunile selectate cu o cale a modelului și configurați endpointurile `find` și `read`. Modelul conține șiruri de permisiuni:

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

- Prima literă înseamnă tipul permis, definit în `types`
- `@admin` înseamnă un rol `admin`
- `#employees` înseamnă un grup de `employees`
- `123456` înseamnă un anumit `userid`

__Configurarea__:

- `placeholder` {String} un depozitar pentru componenta `j-Directory` (default: `Search`)
- `types` {String} tipuri de permisiune (array delimited by char, default: `CRUD`)
- `disabled` {Boolean} opțional, dezactivă acest component
- `default` {String} valoarea standardă a `type` (default: `R`)
- `dirkey` {String} opțional, o cheie pentru text în `j-Directory` (default: `name`)
- `labelrole` {String} opțional o etichetă pentru roluri (default: `Role`)
- `labelgroup` {String} opțional o etichetă pentru grupuri (defață: `Group`)
- `limit` {Număr} un număr de permisiuni permise (default: `0` = nelimitat)
- `pk` {String} o cheie primară a cărei valoare va fi legată la model (default: `id`)
- __IMPORTANT__ `find` {String} adresa URL pentru a găsi roluri, grupuri și utilizatori, componenta trimite `url?q=SEARCH_QUERY` (să trimită valoare goală)
- __IMPORTANT__ `read` {String} adresa URL pentru rolurile de citire, grupurile și utilizatorii, componenta trimite `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' }];
```

## Utilizare

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

Declarați `j-Directory` pentru meniul de selecție. Ambele endpointuri returnează un array de obiecte cu proprietățile de tip șir `id` și `name`. Endpointul `find` primește textul căutat în `q`. Endpointul `read` primește identificatori separați prin virgule în `id` și încarcă permisiunile deja prezente în model. Utilizați `pk` pentru a alege câmpul identificator; valoarea implicită este `id`. Identificatorii rolurilor au prefixul `@`, iar cei ai grupurilor au prefixul `#`.

Sursă : [Componente Total.js](https://github.com/totaljs/components/tree/910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e/j-PermissionsOP)Copyright Peter Širka și contribuitorii. [Licența mea](/knowledge-licenses.json).
