3.2. Централизованные фильтры реестров и права доступа к ним

В предыдущих версиях Synergy для того, чтобы распределить однотипные записи по пользователям или департаментам, приходилось создавать несколько идентичных реестров и в каждом из них задавать требуемый набор прав. Аналогичные проблемы возникали, например, при распределении заявок по типу.

Для того, чтобы разрешить эту проблему, мы реализовали новое свойство реестров: централизованные фильтры реестров, прозволяющие отдельно настраивать права для каждого типа записей в зависимости от условий фильтров.

3.2.1. Новые условия фильтров в реестрах на основе компонентов формы «Объекты Synergy» и «Ссылка на реестр»

В условиях фильтров реестров (как пользовательских, так и централизованных) добавлена возможность использования условий на компоненты с типами «Объекты Synergy» и «Ссылка на реестр».

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

3.2.2. Централизованные фильтры реестров

В редакторе реестра добавлена новая функция «Управление фильтрами». Она позволяет составить дерево централизованных фильтров реестра, с указанием для каждого фильтра сведений:

  • название;

  • пиктограмма;

  • код;

  • блок условий фильтра, аналогичных ранее реализованным фильтрам реестра в пользовательском приложении Synergy;

  • набор прав на реестр (без права «Создание»).

Изменение централизованных фильтров реестра доступно только разработчику Synergy, имеющему право «Изменение» на текущий реестр.

Правила определения прав пользователя на запись реестра

  1. Для каждой записи реестра итоговый набор прав пользователя определяется как объединение прав каждого фильтра (в том числе прав самого реестра), если одновременно:

  2. запись удовлетворяет условиям фильтра;

  3. пользователь входит в группу, которой установлены права в фильтре.

  4. Пользовательские фильтры работают только с теми записями, которые доступны пользователю в корне (непосредственно в реестре).

  5. Вне зависимости от установленных прав на реестр и фильтры пользователю доступно право «Редактирование» для записей, созданных им лично.

Примечание:

Условия дочернего фильтра наследуются от родительского. Наследования прав не происходит.

Отображение фильтров и доступных записей в клиентской части

В клиентской части для реестра отображаются как централизованные, так и пользовательские фильтры, причем централизованные фильтры располагаются выше пользовательских.

Если у пользователя нет прав на фильтр, то этот фильтр ему не отображается. При этом дерево централизованных фильтров соответствующим образом адаптируется.

Централизованные фильтры в клиентском приложении не имеют контекстного меню: их нельзя редактировать, создавать в них вложенные пользовательские фильтры.

Если у пользователя есть права хотя бы на один фильтр реестра, то ему отображается и сам реестр. При этом в реестре отображаются только записи, удовлетворяющие условиям фильтров, доступных пользователю, а также те, которые он создал.

Если запись, созданная пользователем, не удовлетворяет ни одному набору условий доступных ему фильтров, то эта запись отображается только в корне (т.е. при выборе самого реестра).

Централизованные и пользовательские фильтры реестра, доступные пользователю, отображаются и в диалоговом «Выбор записи реестра».

Изменения методов API, вызванные реализацией централизованных фильтров реестра, описаны в разделе «Модификация методов поиска по реестру».