Настройка правил доступа может выполняться пользователем, создавшим модель или имеющим права на администрирование данной модели. Объектом доступа являются строки данных. Настройка правил определяет условия, которым должны отвечать доступные пользователю строки (например, территориальная привязка пользователей соответствует территориальной привязке данных модели).
Настройка правил атрибутного доступа выполняется в интерфейсе настройки доступа к конкретной модели (см. п. Управление доступом к моделям и настройки планировщика) в разделе «Правила доступа» (Рисунок «Раздел «Правила доступа» интерфейса настройки моделей).
Интерфейс настройки правил доступа содержит список созданных правил, а также предоставляет возможности:
-
создания нового правила;
-
изменения существующего правила;
-
удаления одного или нескольких существующих правил.
Подробно данные операции описаны в п. Создание нового правила – Применение изменений правил.
Чтобы добавить новое правило, нажмите на кнопку «Добавить» (см. Рисунок «Вкладка «Правила доступа» интерфейса настройки моделей»).
Отобразится интерфейс добавления правила доступа, содержащий:
-
редактируемое поле названия правила (1, Рисунок «Интерфейс добавления правила доступа»);
-
кнопку «Сохранить» для сохранения нового правила или внесенных изменений (2, Рисунок «Интерфейс добавления правила доступа»);
-
поле выбора типа субъекта доступа «Тип объекта доступа» (3, Рисунок «Интерфейс добавления правила доступа»);
-
интерфейс ввода условий (4, Рисунок «Интерфейс добавления правила доступа»).
Для настройки правил доступа по строкам в поле «Тип объекта доступа» выберите значение «Доступ к строкам» (см. Рисунок «Интерфейс добавления правила доступа»).
Группа условий может включать в себя два вида ограничений:
-
ограничения по пользователям (необязательно) – дает ограничения на пользователей, т.е. определяет группу пользователей (кого ограничиваем), к которым будут применены условия по полю модели (как ограничиваем);
-
ограничения по данным (обязательно) – дает ограничения на данные, т.е. определяет поля модели, которые ограничивают видимость данных.
Для добавления условия нажмите на кнопку «Добавить условие» в необходимом блоке.
Условия в блоке «Ограничения по пользователям» строятся из следующих компонентов:
-
атрибут пользователя, входящий в состав схемы доступов – выберите значение из выпадающего списка (Рисунок «Выбор атрибута доступа в блоке «Ограничения по пользователям»);
Примечание Специальный атрибут «Роль» применяется в настройке атрибутного доступа к пользовательской модели для ограничения пользователей внешнего провайдера с помощью задания условий по значениям, указанным в маппинге атрибутов внешнего провайдера.
-
оператор сравнения – выберите значение из выпадающего списка (Рисунок «Выбор оператора сравнения в блоке «Ограничения по пользователям»);
-
постоянное значение для сравнения, с которым будет сравниваться значение атрибута – введите значение с клавиатуры (Рисунок «Ввод постоянного значения для сравнения в блоке «Ограничения по пользователям»).
Условия в блоке «Ограничения по данным (по полю модели)» строятся из следующих компонентов:
-
поле модели – выберите значение из выпадающего списка (Рисунок «Выбор поля модели в блоке «Ограничения по данным (по полю модели)»);
-
тип строки (доступно для типа поля модели «Строка») – выберите значение из выпадающего списка (Рисунок «Выбор типа строки в блоке «Ограничения по данным (по полю модели)»):
-
«Строка» – любое строковое значение (без преобразования);
-
«Массив json» – для преобразования строкового значения в тип «Массив», ожидается одномерный json массив строк (например, ["1", "2", "3"]);
-
«Массив с разделителем ;» – для преобразования строкового значения в тип «Массив», ожидаются значения, указанные через разделитель «;» (например, 1;2;3).
Примечание Для преобразования строкового значения в тип «Массив» предпочтительно использовать тип строки «Массив json», т.к. данный вариант является более оптимальным с точки зрения производительности (сравнение данных выполняется быстрее).
-
-
оператор сравнения – выберите значение из выпадающего списка (Рисунок «Выбор оператора сравнения в блоке «Ограничения по данным (по полю модели)»);
Примечания 1 Оператор «IN» доступен для типа поля модели «Строка» или «Число». Используется для сравнения с массивом данных (атрибут типа «Массив» или значения, указанные через разделитель «,»).
2 Оператор «Содержит» для типа поля «Строка» регистрозависимый, имеет маску типа '%[значение]%'.
3 Операторы «Пересекается» и «Не пересекается» доступны для типов строки «Массив json», «Массив с разделителем ;». Используются для проверки пересечения значений.
Примеры 1 ([массив данных из поля модели]) Пересекается (значение атрибута пользователя), т.е. (значение атрибута пользователя) должно равняться одному из значений выражения ([массив данных из поля модели]).
2 ([массив данных из поля модели]) Пересекается ([массив данных из атрибута пользователя]), т.е. массивы пересекаются, у них есть хотя бы один общий элемент (например, ["1", "2", "3"] ∩ ["3", "4"] –> ["3"]).
-
вид сравнения (Рисунок «Выбор вида сравнения в блоке «Ограничения по данным (по полю модели)») – нажмите на один из вариантов:
-
«Значение» – для ввода в следующем поле константы, с которой будет сравниваться атрибут пользователя;
-
«Атрибут» – для выбора поля из модели (к которой ограничивается доступ), с которым будет сравниваться атрибут пользователя.
-
-
атрибут пользователя или постоянное значение, с которым будет сравниваться значение в поле модели – введите значение с клавиатуры (если вид сравнения «Значение») или выберите из выпадающего списка (если вид сравнения «Атрибут») (Рисунок «Выбор атрибута пользователя в блоке «Ограничения по данным (по полю модели)»).
Пример настройки правила доступа приведен на рисунке ниже (Рисунок «Пример настройки правила доступа»).
В составе одного правила может быть введено одно или несколько условий в одной группе либо несколько условий в разных группах, при этом:
-
условия, введенные в каждой группе, объединяются по принципу логического «И» – доступ к строке данных будет предоставлен только при выполнении всех условий, или логического «ИЛИ» – доступ к строке данных будет предоставлен при выполнении одного из условий;
-
группы условий объединяются между собой по принципу логического «ИЛИ» – доступ к строке данных будет предоставлен при выполнении любой из заданных групп условий.
На рисунке (Рисунок «Настроенное правило доступа с использованием групп условий») настроено правило, при котором пользователям будет предоставлен доступ к данным их региона и дочерних структур, кроме пользователей из региона 12, для которых будет предоставлен доступ к данным только их собственного региона.
Чтобы перейти в окно редактирования и изменить существующее правило, дважды нажмите левой кнопкой мыши по строке данного правила в списке правил (см. Рисунок «Вкладка «Правила доступа» интерфейса настройки моделей»). Операции и интерфейс изменения существующего правила ограничения доступа аналогичны описанным действиям по созданию нового правила (см. п. Создание нового правила).
Если для доступа к модели создано несколько отдельных правил (см. п. Рисунок «Вкладка «Правила доступа» интерфейса настройки моделей»), то при формировании итоговых доступов пользователя все заданные отдельными правилами ограничения будут соединяться операцией логического умножения (логическое «И»), то есть к доступу будут применяться все ограничения из отдельных правил.
Чтобы удалить одно или несколько из существующих правил, выполните следующие действия:
-
выберите в списке удаляемые правила установкой «флажка»;
-
нажмите на кнопку «Удалить»;
-
подтвердите действие в открывшемся окне (Рисунок «Подтверждение операции удаления правил доступа»).
Применение изменений правил по отношению к пользователям происходит сразу после их сохранения. Вход и выход пользователей в Систему для этого не требуются.
При выполнении операции замены одного правила на другое необходимо помнить, что после удаления правила все связанные с ним ограничения также удаляются и пользователи получат полный доступ к данным. Аналогичная ситуация может возникнуть при некорректном изменении правила. Поэтому рекомендуется вначале создать новое (заменяющее) правило, а после удалять существующее.