Ограничение доступа к информации


Вы можете скрыть некоторые записи в компонентах TableGrid и ComboBox, которые не должен видеть пользователь.

Для этого в свойстве компонента "Roles" предусмотрен подраздел "Data Filter", в котором для каждой роли вы можете написать условие для фильтрации записей. Синтаксис условия аналогичен синтаксису языка запросов SQL в секции WHERE



Пример


Допустим у вас база данных документов, каждому документу присваивается его важность: "Высокая", "Средняя", "Низкая". Сделаем так, чтобы:

  • пользователь с ролью "User" мог видеть документы только с важностью "Низкая"
  • пользователь с ролью "Manager", будет видеть документы с важностью "Средняя" и "Низкая"
  • пользователь с ролью "Director" будет видеть все документы


Так выглядить структура база данных документов и данные в них.

 


Соответственно настройка компонента TableGrid  будет выглядеть так:

Для роли Director оставляем поле пустым, т.о. данная роль будет иметь доступ к любым документам.

Для роли Manager перечисляем идентификаторы важности документов, т.о. данная роль будет иметь доступ к документам Средней и Низкой важности.

Для роли User будут доступны только документы с идентификатором важности 3, что соответствует документам Низкой важности.



Допустим и такой вариант настройки


На первый взгляд он кажется более простым и логичным, когда указываем непосредственно важность документа в текстовом виде, но он обладает рядом недостатков:

  1. Поле "level.name" обязательно должно присутствовать в настройках компонента TableGrid
  2. При изменении названия важности, например с "Низкая" на "Низкий", вам необходимо будет исправлять условие.
  3. Будет работать медленнее.


Настройка компонента ComboBox  производится аналогично.



Далее: Создание пользователей