# j-PermissionsOP

> Редактиране на роли, групи и потребителски разрешения за приложенията на OpenPlatform.

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

Компонентът редактира правата на потребители, роли и групи в OpenPlatform. Свържете избраните права с път в модела и настройте крайните точки `find` и `read`. Моделът съдържа низове с права:

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

- Първото писмо означава разрешен тип, дефиниран в `types`
- `@admin` означава ролята на `admin`
- `#employees` означава групата на `employees`
- `123456` означава специфичен `userid`

__Конфигуриране__:

- `placeholder` {String} място за компонент на `j-Directory` (предварително: `Search`)
- `types` {String} видове разрешение (режимът е ограничен от чар, дефолт: `CRUD`)
- `disabled` {Boolean} опционално, деактивира този компонент
- `default` Декларация за дефектна стойност на `type` (Съгласно с дефолт `R`)
- `dirkey` {String} опционално, ключ за текст в `j-Directory` (предварително: `name`)
- `labelrole` {String} опционално етикет за роли (предварително: `Role`)
- `labelgroup` {String} опционално етикет за групи (предварително: `Group`)
- `limit` {No} броят на разрешените разрешения (предварително: `0` = неограничен)
- `pk` {String} е първичен ключ, чиято стойност ще бъде свързана към модела (предварително: `id`)
- __IMPORTANT__ `find` {String} URL адрес за намиране на роли, групи и потребители, компонентът изпраща `url?q=SEARCH_QUERY` (то изпраща празна стойност)
- __IMPORTANT__ `read` {String} URL адрес за четене роли, групи и потребители, компонентът изпраща `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' }];
```

## Използване

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

Декларирайте `j-Directory` за менюто за избор. Двете крайни точки връщат масив от обекти с текстови свойства `id` и `name`. Крайната точка `find` получава текста за търсене в `q`. Крайната точка `read` получава идентификатори, разделени със запетаи, в `id` и зарежда правата, които вече са в модела. Използвайте `pk`, за да изберете полето за идентификатор; стойността по подразбиране е `id`. Идентификаторите на роли имат префикс `@`, а тези на групи — `#`.

Източникът е: [Total.js съставки](https://github.com/totaljs/components/tree/910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e/j-PermissionsOP)Авторски права Питер Шърка и съучастници. [Лицензът ми](/knowledge-licenses.json).
