Mid Office Manager позволяет управлять правами доступа. Права доступа покрывают различные части системы: интерфейс, справочники, списки и объекты которые они отражают и многие другие. Кроме всего прочего, права доступа также распространяются и на веб составляющую системы.
В Mid Office Manager имеется два подхода управления правами: классический и аспектный. Первый подход подразумевает управление правами в стиле классического ACL (Access Control List). В этом случае управление правами производится на уровне пользователей и групп. С другой стороны, аспектный подход предоставляет более гибкую систему управления правами. Управление производится на уровне более универсальных понятий: ролей, аспектов и вариантов.
Классический подход, будучи более простым в управлении, может быть использован для компаний с простой внутренней структурой. Однако, в случае если компания имеет сложную, разветвленную структуру с большим количеством сотрудников, мы рекомендуем использовать аспектный подход. Только аспектный подход может предоставить необходимую в этом случае гибкость.
Аспектный подход
Аспектный подход подразумевает работу со следующими структурами:
- Роли
- Аспекты работы
- Варианты
Начнем с аспектов работы. Аспект представляет собой набор прав доступа объединенных какой-то одной тематикой. Например, аспект работы может относиться к профилям организаций, или к заказам, или к отчетам. По какой тематике группировать правила решает сам пользователь на свое усмотрение. Но основная идея заключается в том, чтобы разделить контексты таким образом, чтобы каждый отдельно взятый аспект работы отвечал за определенную тематику.
Внутри аспекта работы должны быть расположены права доступа относящиеся к выбранной тематике. Например, если пользователь создает аспект работы относящийся к профилям организаций, в этот аспект должны быть включены права для всех ресурсов имеющих отношение к профилям организаций: интерфейс организации, списки организаций, объекты организаций и пр.
Очевидно, что для сотрудников разных уровней, мы должны предоставить различные права доступа к ресурсам. Мы не можем настроить универсальные права доступа, которые подошли бы для всех. Поэтому, при настройке прав внутри аспекта работы, мы должны предоставить несколько настроек прав доступа к выбранным ресурсам. Это решено при помощи так называемых вариантов. Каждый аспект работы может содержать несколько вариантов, а вариант, в свою очередь, содержит соответствующие права доступа. Таким образом, мы может в рамках одного аспекта работы объединенного одной тематикой настроить несколько вариантов работы с этим ресурсом.
Варианты, подразумевают разделение не по тематическому принципу (они уже и так расположены в аспекте с единой тематикой), а по логическому признаку. Например, возвращаясь к предыдущему примеру, если пользователь создает аспект работы относящийся к профилям организаций, варианты могут быть следующими:
- Организации все (разрешено все)
- Организации свои (разрешено все)
- Организации своих холдингов (только просмотр)
- Организации своих клиентов (только просмотр)
Каждый из этих вариантов содержит права доступа обеспечивающие заявленную логику. Естественно, логическое разделение диктуется структурой организации и требованиями к разделению полномочий. Здесь нет универсального правила.
Теперь рассмотрим роли. Роль это логический концепт, подразумевающий функционал сотрудника. В зависимости от функционала сотрудника, определяются и его полномочия. Иначе говоря, роль определяет набор прав доступа которые будут предоставлены сотруднику с этой ролью. Сама роль состоит из набора связанных с ней аспектов работы. При этом, при привязке аспекта работы к роли необходимо указать какой вариант будет использован из доступных в аспекте. Например, для роли администратора можно использовать вариант Организации все (разрешено все), а для роли менеджер Организации свои (разрешено все). Как комбинировать аспекты и варианты для роли решает пользователь.
Затем роль может быть использована для назначения ее пользователю.
Создание аспектов работы
Для создания аспекта нужно сперва настроить список аспектов работы:
Затем, на списке, на панели инструментов в правой части экрана нажать кнопку + (Создать новый объект):
В появившемся редакторе аспекта работы внесите наименование аспекта в поле Название, значение Способ выбора вариантов можно оставить пустым. Теперь, нужно создать первый вариант с правами доступа. Для этого, необходимо нажать кнопку + в таблице Варианты:
Здесь также необходимо внести наименование в поле Название. Последним шагом настройки варианта является указание необходимых прав доступа для данного варианта. Нажмите кнопку + в таблице Правила для добавления записи, затем нажмите ссылку Редактировать правила:
Появится классический редактор прав доступа где можно настроить все необходимые права:
Обратите внимание, что в таблице Правила нельзя добавлять более одной записи. Это значит, что все права должны быть настроены в рамках этой единственной записи. По завершении настроек прав, нажмите кнопку Применить для закрытия редактора прав доступа и возвращения к аспекту работы:
Добавьте и настройте оставшиеся варианты для данного аспекта:
Не забудьте нажать кнопку Сохранить по завершении работы.
Создание ролей
После создания аспектов работы, перейдем в созданию ролей на основе этих аспектов. Для начала, необходимо настроить список ролей при помощи редактора рабочей области:
Для создания новой роли нужно на панели инструментов в правой части экрана нажать кнопку + (Создать новый объект):
В появившемся редакторе роли укажите наименование роли в поле Название. Затем, в таблице Аспекты работы и их варианты, при помощи кнопки +, добавьте первую запись. Внутри записи необходимо указать аспект и выбрать его вариант:
Обратите внимание, что один и тот же аспект работы нельзя добавлять несколько раз. Однако, при необходимости, можно выбрать несколько вариантов из одного аспекта:
Роль, как правило, состоит из множества аспектов. Добавьте другие необходимые аспекты и их варианты:
Не забудьте нажать кнопку Сохранить по завершении работы.
Настройка ролей организации
Одни и те же роли могут быть использованы несколькими организациями. Прежде чем назначать роли пользователям нужно сперва указать какие роли применимы в рамках вашей организации. Для этого, откройте редактор организации и перейдите в раздел Основные параметры. В нижней части панели расположена секция Принадлежность к группам:
В поле Роли организации при помощи кнопки + добавьте все необходимые роли:
Сохраните профиль организации нажав кнопку Сохранить.
Назначение роли пользователю
Теперь можно назначить роль для пользователя. Открываем профиль интересующего пользователя и переходим в раздел Основные параметры, секция Права доступа. Здесь расположено единственное поле Роли:
Выберите необходимую роль из списка и сохраните профиль кнопкой Сохранить:
Рекомендации к настройке
При создании аспектов работы разделяйте их тематически. Не смешивайте несколько тематик в рамках одного аспекта, в этом случае лучше создать отдельные аспекты для каждой из них. Это упросит управление правами доступа, т.к. вы всегда будете знать где искать соответствующие настройки прав. Это также позволит избежать случаев создания противоречивых настроек прав доступа когда один аспект накладывает одни ограничения на ресурс, а другой аспект, на этот же ресурс, накладывает совсем другие ограничения. Найти проблему в этом случае будет не просто. В качестве наименования аспекта используйте название ресурса во множественном числе:
- Организации
- Физические лица
- Заказы
- Продукты
- Отчеты
- Логи GDS
При создании вариантов учитывайте, что они должны содержать настройки прав доступа относящиеся только к тематике данного аспекта. Давайте вариантам описательные наименования отражающие суть наложенных ограничений (фильтр + действия):
- Продукты свои (все разрешено)
- Организации свои (все разрешено)
- Организации своих холдингов (только просмотр)
- Отчеты агента (только просмотр)
При наличии общих настроек можно их вынести в общий вариант. Например, если интерфейсная часть всегда доступна для всех пользователей можно вынести настройки прав доступа для интерфейса в общий вариант. Также, можно создать общие аспекты работы содержащие базовые права. Например, аспект Все ресурсы в котором добавить два варианта:
- Все ресурсы (все разрешено)
- Все ресурсы (все запрещено)
Также, при создании вариантов, старайтесь сделать так, чтобы вам не приходилось комбинировать варианты из одного аспекта в рамках одной роли. Иными словами, каждый вариант должен быть самостоятельным и завершенным. Исключение может составлять лишь комбинация с общими вариантами о которых шла речь выше. Это правило сильно упростит управление правами доступа.
Принципиальное отличие подходов
В то время, как оба подхода выполняют идентичную функцию, они принципиально отличатся в плане управления. В классическом подходе правила можно назначить группам, таким образом мы можем получить группы-варианты. Затем полученные группы-варианты можно объединить, включив их в другие группы, получаем группы-аспекты. И наконец, группы-аспекты объединить в еще одни группы, получаем группы-роли. Для назначения роли пользователю его нужно поместить в соответствующую группу-роль. Кажется, что все выглядит идентично. Однако, здесь есть один существенный недостаток. Группы не могут входить в несколько групп одновременно. А значит мы не может повторно использовать группы-варианты в разных группах-аспектах. Точно так же, нельзя повторно использовать группы-аспекты в разных группах-ролях. Единственный выход это копировать группы-варианты и группы-аспекты. Очевидно, что это приводит к ряду неудобств. В случае если нужно внести изменения у группы-варианта или группы-аспекта, необходимо будет изменить все ее копии. Аспектный же подход изначально не имеет такую проблему. Достаточно изменить существующий вариант или аспект и изменения распространятся на все роли использующие их.
Также, в классическом подходе все группы являются равноценными, т.е. они никак не ранжированы. А значит пользователя можно поместить как в группу-роль, так и в любую из групп-аспектов или групп-вариантов. От этой ошибки пользователь никак не защищен. В аспектном подходе этой проблемы не существует, пользователю назначается непосредственно роль.
Аспектный подход позволяет управлять тем какие роли доступны для определенной организации. Это очень удобная функция при работе со сложной структурой холдинга состоящего из нескольких организаций. В классическом подходе похожего функционала не предусмотрено.
Ну и последнее, в классическом подходе права доступа назначаются непосредственно пользователям. При этом, не важно привязан ли пользователь к профилю физического лица или нет. В аспектном же подходе привязка происходит на уровне профиля физического лица, а значит пользователь обязан иметь привязку к профилю.















