Права (Rights)

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

Коллекция правил

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

Параметры:

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

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

Пример получения прав на объект: sectionId=1
Ответ: 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 — право изменять раздел, создавать или менять структуру каталогов

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

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

URL: /{api url}/rights

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

Запрос: (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)


results matching ""

    No results matching ""