Права доступа
Содержание |
Права доступа
Для каждого пользователя в Mid Office Manager имеется возможность настраивать права доступа к различным ресурсам. Это позволяет, ограничить доступ пользователя к определенным элементам программы и предотвратить возможность совешения нежелательных операций с данными. Иначе говоря, права доступа пользователей к данным можно разделять в рамках операций, которые находятся в их компетенции.
Система прав доступа в Mid Office Manager реализована в виде расширенного Access Control List или ACL — списка контроля доступа, который определяет, кто и при каких усовиях может получать доступ к конкретному ресурсу, и какие именно операции разрешено или запрещено этому субъекту проводить над ресурсом.
Основные положения
Система прав доступа состоит из следующих частей:
- Пользователи и группы
- Ресурсы
- Правила
Пользователи и группы
Субъектом любых операций в Mid Office Manager является пользователь. Для каждого пользователя можно настраивать уникальные права доступа. Зачастую, бизнес-процесс требует настройки одних и тех же прав для определеного круга пользователей. В данном случае удобно будет объединить этих пользователей в общую группу и предоставить права доступа не каждому из пользователей индивидуально, а группе. Система прав доступа позволяет создавать любое количество пользователей и групп.
Пользователи и группы представлены в виде иерархической структуры. Каждый пользоватлеь является членом определенной группы. Группа, в свою очередь, также может входить в другую группу и т.д. В основе иерархии лежит специальная группа «Все группы и пользователи». Важно знать, что один и тот же пользователь может входить сразу в несколько групп. Группа, в свою очередь, может иметь лишь одну родительскую группу.
Ресурсы
Объектом любых операций в Mid Office Manager является ресурс. В качестве ресурса могут выступать самые разнообразыне элементы системы. При этом, ресурсы различаются по типам:
- Список
- Справочник
- Объект
- Группа
Ресурс типа Группа играет специальную роль, позволяя объединять несколько ресурсов в группы. Также, он может использоваться как индивидуальный ресурс, отвечая за специализированые элементы системы |
По аналогии с пользователями и группами, ресурсы также представлены в виде иерархической структуры. Каждый ресурс имеет свой родительский ресурс. Во главе иерархии находится специальная группа «Все ресурсы».
Правила
При попытке совершения пользователем какой-либо операции над определенным ресурсом, система должна принять решение, разрешить ли эту операцию пользователю или нет. Решение принимается на основе правил. Правило содержит список операций и соответствующие им разрешения. Каждый ресурс предоставляет свой униклаьный набор операций. В зависимости от типа ресурса, правило может также содержать условия, критерии отбора и запрещенные поля.
Для ресурса типа Список, указание операций является опциональным |
Логика проверки доступа
Для получения пользователем разрешения или запрета на определеную операцию над определенным ресурсом, система производит комплексный иерархический поиск. Первым делом происходит поиск правила, заданного непосредственно для данного пользователя и данного ресурса. В случае если такое правило найдено и оно явным образом определяет тип разрешения, поиск прекращается и пользователю будет предоставлено разрешение, указанное в рамках этого правила. В случае же если такое правило найдено не было, система попытается найти правило, заданное для родительской группы пользователя, и т.д. вверх по ирерархии групп до тех пор пока какое-либо из правил явно не определит тип разрешения на операцию.
В силу того, что пользователь может входить сразу в несколько групп, иерерхическая проверка будет производиться начиная с каждой из групп, в которую он входит. Если в рамках хотя бы одной из них было найдено правило, разрешающее операцию над этим ресурсом, поиск прекращается и пользователю предоставляется право на это операцию. Очень важно знать, что пользователю будет отказано в праве на эту операцию лишь в том случае, если проверка в рамках абсолютно всех групп, в которые входит пользователь, явно определят запрет на эту операцию. В противом же случае, разрешение примет так называемое неопределенное значение.
Если при описанном выше поиске не было найдено ни одного правила, однозначно определяющего тип разрешения, для пользователя назначается неопределенное значение разрешения. Если такая ситуация имеет место, система повторит весь цикл поиска с самого начала, но уже для родительского ресурса. Поиск будет продолжаться до тех пор, пока не будет найдено явное разрешение или запрет на операцию. Если же в результате поиска как по пользователям и группам, так и по ресурсам, явное разрешение или запрет найдено не было, пользователю в итоге будет предоставлено право на операцию над данным ресурсом.
Редактор прав доступа
Настройка прав доступа производится при помощи редактора прав доступа. При помощи редактора можно также создавать новых пользователей или группы, редактировать их и удалять. Для открытия редактора предназначена кнопка «Редактор прав доступа» расположеная в нижней части основного окна Mid Office Manager:
На экране при этом будет отображено диалоговое окно «Редактор прав доступа»:
В левой части окна расположены две древовидные структуры. Первая отражает иерархический список пользователей и групп, вторая - иерархический список ресурсов. Правая часть редактора предназначена для отображения списка правил. Для просмотра списка правил необходимо выбрать интересующего пользователя или группу в первом списке, а затем во втором списке указать ресурс:
Если для определенного пользователя или группы были настроены правила в рамках любого ресурса он будет выделен на списке жирным наклонным шрифтом. При выборе такого пользователя или группы, все ресурсы, для которых настроены правила, также выделяются жирным наклонным шрифтом. Это позволяет быстро оценить, для каких ресурсов у данного пользователя или группы уже настроены правила |
Редактор правил
Для добавления нового правила или редактирования уже существующего предназначен редактор правил. Для каждого из типов ресурсов предусмотрен свой редактор с набором свойств присущих лишь данному ресурсу.
Редактор правил ресурса типа «Список»
При работе с правилами ресурса типа «Список» используется редактор правил списка:
Действия отвечают за настройку типов разрешений для различных операций. Для создания действия сперва необходимо на панели «Действия», в выпадающем списке указать операцию:
Далее, следует указать тип разрешения. Он выбирается из выпадающего списка, расположенного справа от списка операций:
В одном правиле можно указывать сразу несколько действий. Если возникла необходимость настройки единого типа разрешения для абсолютно всех операций, можно воспользоваться специальной операцией Все операции |
Критерии отбора предназначены для настройки дополнительных ограничений, которые будут использоваться при формировании списка прежде чем он будет отображен пользователю. Данные критерии имеют более высокий приоритет, нежели критерии, которые были настроены при помощи редактора рабочей области. Для настройки критерия отбора сперва необходимо на панели «Критерии отбора», в выпадающем списке указать тип критерия:
Затем, необходимо указать категорию критерия отбора. Она выбирается из выпадающего списка, расположенного справа от списка типов критерия:
После этого, следует определить тип сравнения. Он выбирается из выпадающего списка, расположенного справа от списка категорий. Набор типов сравнения зависит от выбранной ранее категории критерия отбора:
Для завершения формирования критерия отбора, необходимо указать значение (или ряд значений), с которым будет производится сравнение. Значение определяется при помощи соответствующего редактора, расположенного в правой части панели. В зависимости от выбранных категории и типа сравнения, редакторы значений могут различаться.
Некоторые типы сравнения не требуют указания значений. В данном случае, в правой части панели редактор значений отображен не будет |
Поля, также как и критерии отбора, используются при формировании списка. Итоговый список, который будет отображен пользователю, не будет содержать поля, указанные в списке «Запрещенные поля». Запрещенные поля имеют более высокий приоритет, нежели поля, которые были настроены при помощи редактора рабочей области. По-умолчанию, все поля, доступные для данного ресурса, являются разрешенными.
Для настройки запрещенных полей необходимо в списке «Разрешенные поля», выделить те поля, отображение которых нужно запретить Шаблон:Step и нажать кнопку переноса Шаблон:Step для перемещения их в список «Запрещенные поля»:
Для того, чтобы запрещенней ранее поля вновь сделать разрешенными, необходимо в списке «Запрещенные поля», выделить те поля, отображение которых нужно разрешить Шаблон:Step и нажать кнопку переноса Шаблон:Step для перемещения их в список «Разрешенные поля»:
Редактор правил ресурса типа «Справочник»
При работе с правилами ресурса типа «Справочник» используется редактор правил справочника:
Действия отвечают за настройку типов разрешений для различных операций. Для создания действия сперва необходимо на панели «Действия», в выпадающем списке указать операцию:
Далее, следует указать тип разрешения. Он выбирается из выпадающего списка, расположенного справа от списка операций:
В одном правиле можно указывать сразу несколько действий. Если возникла необходимость настройки единого типа разрешения для абсолютно всех операций, можно воспользоваться специальной операцией Все операции |
Для правил ресурса типа Справочник указание действий является обязательным. В противном случае, правило будет считаться недействительным |
Редактор правил ресурса типа «Объект»
При работе с правилами ресурса типа «Объект» используется редактор правил объекта:
Действия отвечают за настройку типов разрешений для различных операций. Для создания действия сперва необходимо на панели «Действия», в выпадающем списке указать операцию:
Далее, следует указать тип разрешения. Он выбирается из выпадающего списка, расположенного справа от списка операций:
В одном правиле можно указывать сразу несколько действий. Если возникла необходимость настройки единого типа разрешения для абсолютно всех операций, можно воспользоваться специальной операцией Все операции |
Условия предназначены для дополнительной проверки свойств объекта. Разрешения, указанные в правиле, будут применяться лишь в том случае, если объект успешно прошел проверку на соответствие всем указанным условиям. Если объект не прошел проверку, правило игнорируется и, соответственно, разрешения учтены не будут. Для настройки условия сперва необходимо на панели «Условия», в выпадающем списке указать тип условия:
Затем, необходимо указать объект, свойства которого будут использованы для сравнения. В силу того, что объект может быть иерархически связан с другими объектами, проверки можно настраивать не только собственных свойств, но и свойств связанных объектов. Объект выбирается из выпадающего списка, расположенного справа от списка типов условия:
Далее, необходимо указать категорию условия. Она выбирается из выпадающего списка, расположенного справа от списка объектов:
После этого, следует определить тип сравнения. Он выбирается из выпадающего списка, расположенного справа от списка категорий. Набор типов сравнения зависит от выбранной ранее категории условия:
Для завершения формирования условия, необходимо указать значение (или ряд значений), с которым будет производится сравнение. Значение определяется при помощи соответствующего редактора, расположенного в правой части панели. В зависимости от выбранных категории и типа сравнения, редакторы значений могут различаться.
Некоторые типы сравнения не требуют указания значений. В данном случае, в правой части панели редактор значений отображен не будет |
Для правил ресурса типа Объект указание действий является обязательным. В противном случае, правило будет считаться недействительным. Указание условий является опциональным |
Редактор правил ресурса типа «Группа»
При работе с правилами ресурса типа «Группа» используется редактор правил группы:
Действия отвечают за настройку типов разрешений для различных операций. Для создания действия сперва необходимо на панели «Действия», в выпадающем списке указать операцию:
Далее, следует указать тип разрешения. Он выбирается из выпадающего списка, расположенного справа от списка операций:
В одном правиле можно указывать сразу несколько действий. Если возникла необходимость настройки единого типа разрешения для абсолютно всех операций, можно воспользоваться специальной операцией Все операции |
Для правил ресурса типа Группа указание действия является обязательным. В противном случае, правило будет считаться недействительным |
Добавление правила
Для того, чтобы добавить новое правило, нужно сперва выбрать в списках необходимых пользователя или группу Шаблон:Step и ресурс Шаблон:Step, после чего, в правой части редактора будет отображена панель, содержащая список уже настроенных правил. Список может быть пустым, если для данного ресурса еще не настроено ни одного правила. Затем нажмите на кнопку «Добавить» Шаблон:Step, расположенную в нижней части панели правил:
После этого, на экране отобразиться диалоговое окно редактора правил. Произведите при помощи редактора настройку правила в соответствии с необходимыми требованиями. Если правило пустое или не содержит обязательных данных, будет выведено сообщение, и такое правило добавлено в список не будет:
В случае, если правило валидное, оно отобразиться в списке правил:
Редактирование правила
Для того, чтобы отредактировать уже существующее правило, нужно сперва выбрать в списках необходимых пользователя или группу Шаблон:Step и ресурс Шаблон:Step, после чего, в правой части редактора будет отображена панель, содержащая список уже настроенных правил. Выберите правило, которое необходимо отредактировать Шаблон:Step и нажмите на кнопку «Редактировать» Шаблон:Step, расположенную в нижней части панели правил:
Шаблон:Tool
После этого, на экране отобразиться диалоговое окно редактора правил с данными выбранного правила. Произведите при помощи изменения в соответствии с необходимыми требованиями. Если правило после изменений стало пустым или не содержит обязательных данных, будет выведено сообщение, с предложением удалить такое правила из списка:
В случае, если измененное правило валидное, оно отобразиться в списке правил:
Удаление правил
Для того, чтобы удалить правило, нужно сперва выбрать в списках необходимых пользователя или группу Шаблон:Step и ресурс Шаблон:Step, после чего, в правой части редактора будет отображена панель, содержащая список уже настроенных правил. Выберите правила, которые необходимо удалить Шаблон:Step и нажмите на кнопку «Удалить» Шаблон:Step, расположенную в нижней части панели правил:
Шаблон:Tool
На экране отобразиться диалоговое окно подтверждения:
Нажмите кнопку «Да», после чего выбранные правила будут удалены из списка:
Приоритеты правил
Для ресурсов типа «Объект» можно задавать более одного правила. Это необходимо для того, чтобы можно было настраивать правила, разрешающие или запрещающие различные операции, но при разных условиях. При определении разрешения на операцию, происхоидт проверка объекта на соответствие заданным правилам. Первое правило из списка, содержащее разрешение или запрет на искомую операцию и условия которого удовлетворяет объект, будет использовано в качестве определяющего. Очень важно понимать, что проверка правил происходит в строго определенном порядке, а именно, в той последовательности, в которой правила располагаются в списке. Это означает, что приоритет правила напрямую зависит от того, где оно расположено в списке. Следовательно, чем «выше» расположено правило, тем выше его приоритет:
Рассмотрим более подробно процесс определенеия разрешений на примере ресурса «Заказ». Предположим, что с целью разграничения разрешений, были сформированы следующие требования:
- Если агентством является компания Airesine Inc операцию «Редактирование» запретить, операцию «Просмотр» разрешить
- Если агентством является компания Airesine Inc и клиентом является компания WTP Investment Group операцию «Редактирование» запретить, операцию «Просмотр» запретить
Список правил для этого ресурса может выглядеть следующим образом:
В качестве примера будем пытаться определить тип разрешения на операцию «Просмотр» для двух разных заказов у которых, среди прочих реквизитов, указаны следующие данные:
Реквизит заказа | Заказ №01 | Заказ №02 |
---|---|---|
Клиент | Sliwork Foundation | WTP Investment Group |
Агентство | Airesine Inc | Airesine Inc |
Исходя из значений реквизитов заказов, видно, что для заказа «Заказ №01» просмотр должен быть разрешен, а для заказа «Заказ №02» - запрещен. Однако, вопреки ожиданиям, для обоих заказов просмотр будет разрешен. Попытаемся разобраться почему такая ситуация имеет место. Для этого проследим поэтапно как происходит проверка условий. Каждый из двух билетов проходит последовательную проверку у всех правил в порядке их следования в списке. Первое правило имеет одно единственное условие: заказ должен содержать агентство «Airesine Inc». Очевидно, что оба заказа успешно пройдут проверку на это условие, и, как следствие, для обоих заказов будет однозначно определено право на операцию «Просмотр». Дальнейшие проверки заказов на соответствие другим правилам просто не будут производиться.
Для корректной работы прав, нужно изменить приоритет правил, изменив их порядок следования в списке:
После этого, разрешения будут определяться корректно. Снова рассмотрим последовательно работу правил. Заказ «Заказ №01» попытается пройти проверку у первого правила. В силу того, что у заказа «Заказ №01» клиент отличается от требуемого, условия этого правила заказ не пройдет, и разрешение определено не будет. При сопоставлении этого заказа со вторым правилом, все условия будут удовлетворены, и, как следствие, будет определено разрешение на операцию «Просмотр». Теперь рассмотрим заказ «Заказ №02». Для него уже на первом этапе будет определен запрет, т.к. данные заказа полностью удовлетворяют всем условиям правила.
Чтобы повысить приоритет правила, нужно переместить его на более высокую позицию в списке. Для этого, сперва выберите правило, приоритет которого необходимо изменить Шаблон:Step, а затем нажмите на кнопку «Переместить выше» Шаблон:Step, расположенную в нижней части панели правил:
Если необходимо понизить приоритет, нужно переместить правило на более низкую позицию в списке. Для этого, сперва выберите правило, для которого предполагается понизить приоритет Шаблон:Step и нажмите на кнопку «Переместить ниже» Шаблон:Step, расположенную в нижней части панели:
Редактор пользователей и групп
Для добавления нового пользователя или группы, а также для редактирования уже существующих пользователей или групп предназначены соответствующие им редакторы.
Редактор пользователя
При работе с пользователем используется редактор пользователя:
Поле «Имя» предназначено для указания имени пользователя. В поле «Описание» можно ввести краткое описание пользователя и его роли в системе. Если нужно привязать пользователя к определенному профилю, укажите его в поле «Профиль».
В поле «Логин» необходимо указать уникальный логин пользователя. После того, как пользователь был создан, его логин изменить будет нельзя и при редактировании его данных, поле «Логин» будет отключено. Поля «Пароль» и «Подтверждение» предназначены для установки пароля. При указании пароля, значения в обоих полях должны совпадать. Логин и пароль будут затем использоваться для входа пользователя в систему.
Логин может содержать только латинские буквы в нижнем регистре, цифры и символы «_», «-», «~», «!», «#», «$», «%», «^», «&», «*», «(», «)», «{», «}», «[», «]», «+», «=», «;», «:», «<», «>», «?», «/», «@», «.», «,», «|» |
Флаг «Активный» определяет статус пользователя.
Группы, в которые входит пользователь выбираются на списке групп, расположенном в правой части редактора. Для пользователя можно указывать сразу несколько групп:
При редактировании пользователей system и admin список групп доступен не будет.
Редактор группы
При работе с группой используется редактор группы:
Поле «Наименование» предназначено для указания названия группы. В поле «Описание» можно ввести краткое описание группы.
Группа, в которую входит данная группа, выбирается на списке групп, расположенном в правой части редактора. Для группы можно указывать только одну родительскую группу:
При редактировании групп Все группы и пользователи и Администраторы список групп доступен не будет.
Создание пользователя или группы
Для того, чтобы создать нового пользователя или группу, нужно сперва выбрать родительскую группу, в которую будет добавлен создаваемый пользователь или группа, затем нажать на заголовке выбранной группы правой кнопкой мыши и, в появившемся контекстном меню, выбрать опцию «Добавить пользователя» (в случае создания пользователя) «Добавить группу» (в случае создания группы):
После этого, на экране отобразится диалоговое окно редактора пользователя или группы, в котором нужно указать все необходимые данные. Если какие-либо даные отсутсвуют или данные не соответствуют требованиям, будет выведено сообщение:
В случае, если все данные указаны верно, пользователь или группа будут добавлены в список: