Права (Rights)

Ресурс Rights — правила доступа сотрудников к другим ресурсам.

Ресурс Rights — правила доступа сотрудников к другим ресурсам.

Получить правила

URL: {domain}/api/v1/rights{?sectionId}{?catalogId}{?recordId}{?withSearch}

Метод: GET

Параметры:

  • sectionId: (number, опционально) — идентификатор раздела

  • catalogId: (number, опционально) — идентификатор каталога

  • recordId: (number, опционально) — идентификатор записи

  • withSearch: true (boolean, опционально) — показывать ли автоматически создаваемые правила search — видеть объект в списке (по умолчанию false)

Ответ: 200 OK (application/json)

[{ "object": { "sectionId": "1" }, "rules": [{ "rightSubject": { // правило для всех сотрудников "userAttr": "allUsers", // указатель, что правило для всех сотрудников "userAttrTitle": "", "catalogId": null, "catalogIcon": "", "recordId": null, "recordTitle": "Все сотрудники" }, "privilegeCode": "view" }, { "rightSubject": { // правило для 5-го сотрудника "userAttr": "id", // указатель, что правило для сотрудника "userAttrTitle": "", "catalogId": "3", // идентификатор каталога сотрудников "catalogIcon": "users-1", "recordId": "1", // идентификатор сотрудника "recordTitle": "User Name" // имя сотрудника }, "privilegeCode": "admin" }, { "rightSubject": { // правило для ролевой группы «Москва» в 8 поле анкеты сотрудника "userAttr": "8", // идентификатор поля в анкете сотрудника "userAttrTitle": "Город обслуживания", // название поля в анкете "catalogId": "34", // идентификатор связанного каталога "catalogIcon": "places-24", // иконка связанного каталога "recordId": "1", // идентификатор связанной записи "recordTitle": "Москва" // текстовое наименование связанной записи }, "privilegeCode": "edit" } ] }]

В примере выше три правила:

  • «Все сотрудники» могут «видеть» все записи внутри всех каталогов отдела

  • Сотрудник со свойством {id: 1} может «администрировать» отдел и все каталоги внутри неё

  • Сотрудники со свойством «Город обслуживания» ("userAttr": "8") и значением {"Город"("catalogId": "34"): "Москва"("recordId": "1")} могут «редактировать» все записи внутри всех каталогов отдела

Подробнее о групповых правилах в статье «Правовые группы»

Возможные привилегии

  • search — право видеть иконку каталога или отдела в меню, чтобы видеть некоторые записи внутри

  • view — право видеть все записи каталога (или во всех каталогов отдела)

  • edit — право редактировать все записи каталога (или каталогах отдела)

  • create — право создавать записи в каталоге (или каталогах отдела)

  • export — право выгружать в Excel записи каталога (или каталогов отдела)

  • delete — право удалять записи в каталоге (или каталогах отдела)

  • access — право задавать права на записи в каталоге (или каталогах отдела)

  • admin — право изменять отдел, создавать или менять структуру каталогов

Подробнее о привилегиях в статье «Привилегии»

Сохранение/пересохранение правил

URL: {domain}/api/v1/rights

В примере, создаются (или перезатираются) права на раздел 1 (sectionId: 1).
Операция удаляет все ранее существующие правила на объект.

Метод: POST

Запрос: (application/json)

{ "object": { "sectionId": "1" }, "rules": [ { "rightSubject": { // правило "userAttr": "allUsers", // для всех сотрудников "catalogId": null, "recordId": null }, "privilegeCode": "view" }, { "rightSubject": { // правило для сотрудника "userAttr": "id", // c идентификатором "catalogId": "3", "recordId": "1" // один }, "privilegeCode": "admin" }, { "rightSubject": { // правило для сотрудников "userAttr": "8", // у кого в 8 поле анкеты сотрудника (связанный объект) "catalogId": "34", // выбрана запись из 34 каталога "recordId": "1" // c номером 1 }, "privilegeCode": "edit" } ] }

В ходе создания правил могут автоматически создасться правила с привилегиями search на родительских объектах. Для записи или вида — это каталог и отдел, для каталога — отдел.

Ответ: 200 OK (application/json)