Рассмотрим варианты использования на примере доступа к Объектам ремонта в зависимости Статьи затрат.
Допустим, в системе есть 3 Статьи затрат:
EAM_SECURITY_SYSTEM_1

Так же в системе есть  3 объекта ремонта относящихся к разным Статьям затрат:

EAM_SECURITY_SYSTEM_2

Пользователь имеет права доступа в зависимости от ролей, в которые он входит. Поэтому в системе безопасности  необходимо завести 3 Роли (для каждой Статьи затрат 1 роль).

Пункт меню: Администратор -> Роли. Создаем новую Роль: «Роль1 – Доступ к Статье затрат 1». Так как нам нужно ограничить права только на Объекты ремонта и Статьи затрат, на закладке «Права доступа к объектам» даем права для всех объектов на все действия (Чтение, Запись, Создание, Удаление, Переход). Для этого выделяем все типы объектов на закладке и нажимаем действие «Дать права»:

EAM_SECURITY_SYSTEM_3

А для типов Объект ремонта и Статья затрат c помощью действия «Лишить прав» забираем все права. И даем права на действие «Переход», если этого не сделать, пункты меню «Объекты ремонта» и «Статьи затрат» будут недоступны:

EAM_SECURITY_SYSTEM_4

Теперь нужно дать права доступа к Объектам ремонта у которых поле Статья затрат имеет значение «Статья затрат1», для этого делаем двойной клик на тип «Объект ремонта» в закладке «Права доступа к объектам». Откроется окно «Объект ремонта – Детали доступа к типу», в этом окне переходим на закладку «Права на объекты». Здесь необходимо задать условия, при которых объект будет доступен.  Для этого жмем кнопку «Создать». На закладке появится новая запись, в которой нужно задать критерий, и установить какие действия будут доступны для объектов, которые будут удовлетворять данному критерию:

EAM_SECURITY_SYSTEM_5

Аналогично для типа «Статья затрат»:

EAM_SECURITY_SYSTEM_6

Так же необходимо для данной роли дать все права на действия, для этого переходим на закладку «Права доступа к действиям», выделяем все действия и жмем кнопку «Дать права»:

EAM_SECURITY_SYSTEM_7

На закладке «пользователи» необходимо добавить пользователей, которым необходимо дать права к «Статья затрат1»:

EAM_SECURITY_SYSTEM_8

Аналогично создаем еще 2 Роли для «Статья затрат2» и «Статья затрат3»:

EAM_SECURITY_SYSTEM_9EAM_SECURITY_SYSTEM_10

Примечание: политика безопасности имеет разрешающий характер а не запрещающий, поэтому:

  • если по умолчанию дать права на объект ремонта в закладке «Права доступа к объектам», то условия, которые вы задавали в выпадающем окне «Детали доступа к типу», проверяться не будут и все объекты будет доступен для пользователя.
  • Если пользователь входит в 2 роли, то он будет иметь права этих двух ролей. Например: если пользователь входит в Роли «Роль1 - Доступ к Статье затрат 1» и «Роль2 - Доступ к Статье затрат 2», то этому пользователю будут доступны статьи затрат: «Статья затрат1»  и «Статья затрат2».

Проверяем:

  1. Заходим в систему с помощью пользователя «Пользователь2»EAM_SECURITY_SYSTEM_11
  2. Заходим в список «Статьи затрат». Видим только «Статья затрат2»EAM_SECURITY_SYSTEM_12
  3. Заходим в Объекты ремонта. Видим только объекты ремонта с «Статья затрат2» EAM_SECURITY_SYSTEM_13

Права доступа к объектам из меню.

Чтобы разрешить права доступа к объекту из меню необходимо в карточке Роли на закладке «Права доступа к объектам»,  для нужного вам типа, разрешить права на «Переход», если этого не сделать, то пункт меню, который должен открывать форму нужного вам объекта, будет отсутствовать в АРМ.

Рассмотрим на примере «График работ».

  1. Даем все права на объект  «График работ»:
    EAM_SECURITY_SYSTEM_14Запускаем приложение под пользователем, который входит только в роль  «Роль - Доступ к графику работ Разрешен». Видим в АРМ пункт Планирование работ -> График:
    EAM_SECURITY_SYSTEM_15
  2. Даем все права на объект  «График работ», кроме колонки «Переход» :
    EAM_SECURITY_SYSTEM_16
    Запускаем приложение под пользователем, который входит только в роль  «Роль - Доступ к графику работ Запрещен». В АРМ пункт Планирование работ -> График отсутствует.
    EAM_SECURITY_SYSTEM_17

Права доступа к свойствам объекта.

Чтобы ограничить доступ к свойствам объекта необходимо дать все права для объекта, кроме прав на «Чтение» и «Запись»:EAM_SECURITY_SYSTEM_18

Двойной клик на тип «Статья затрат» в закладке «Права доступа к объектам». Откроется окно «Статья затрат – Детали доступа к типу», в этом окне переходим на закладку «Права на свойства». Для свойств, значения которых вы ходите видеть, нужно установить  признак «Чтение». Для свойств, значения которых вы ходите редактировать, нужно установить  признак «Запись».  Например, для типа «Статья затрат»  поле Код  доступно только для чтения, а поле Наименование доступно для редактирования, остальные поля должны быть не доступны.EAM_SECURITY_SYSTEM_19

Ограничение:

В текущей версии XAF есть большое ограничение: если для данного типа существуют права по «условию» то ограничение прав доступа к свойствам не будет работать. Команда XAF работает в данном направлении…

Проверка:

Список:

Для чтения доступны значения свойств  Код и Наименование. Для остальных свойств мы видим «Скрытый текст»:

EAM_SECURITY_SYSTEM_20

Карточка:

Поле код доступно только для чтения. Поле Наименование доступно для редактирования. Остальные поля отображают «Скрытый текст»:

EAM_SECURITY_SYSTEM_21