Права доступа
Права доступа
Для каждого пользователя в Mid Office Manager имеется возможность настраивать права доступа к различным ресурсам. Это позволяет ограничить доступ пользователя к определенным элементам программы и предотвратить возможность совершения нежелательных операций с данными. Иначе говоря, права доступа пользователей к данным можно разделять в рамках операций, которые находятся в их компетенции.
Система прав доступа в Mid Office Manager реализована в виде расширенного Access Control List или ACL — списка контроля доступа, который определяет, кто и при каких условиях может получать доступ к конкретному ресурсу, и какие именно операции разрешено или запрещено этому субъекту проводить над ресурсом.
Основные положения
Система прав доступа состоит из следующих частей:
- Пользователи и группы
- Ресурсы
- Правила
Пользователи и группы
Субъектом любых операций в Mid Office Manager является пользователь. Для каждого пользователя можно настраивать уникальные права доступа. Зачастую, бизнес-процесс требует настройки одних и тех же прав для определеного круга пользователей. В данном случае удобно будет объединить этих пользователей в общую группу и предоставить права доступа не каждому из пользователей индивидуально, а группе. Система прав доступа позволяет создавать любое количество пользователей и групп.
Пользователи и группы представлены в виде иерархической структуры. Каждый пользователь является членом определенной группы. Группа, в свою очередь, также может входить в другую группу и т.д. В основе иерархии лежит специальная группа Все группы и пользователи. Важно знать, что один и тот же пользователь может входить сразу в несколько групп. Группа, в свою очередь, может иметь лишь одну родительскую группу.
Ресурсы
Объектом любых операций в Mid Office Manager является ресурс. В качестве ресурса могут выступать самые разнообразные элементы системы. При этом ресурсы различаются по типам:
- Список
- Справочник
- Объект
- Группа
Ресурс типа Группа играет специальную роль, позволяя объединять несколько ресурсов в группы. Также, он может использоваться как индивидуальный ресурс, отвечая за специализированные элементы системы |
По аналогии с пользователями и группами, ресурсы также представлены в виде иерархической структуры. Каждый ресурс имеет свой родительский ресурс. Во главе иерархии находится специальная группа «Все ресурсы».
Правила
При попытке совершения пользователем какой-либо операции над определенным ресурсом, система должна принять решение, разрешить ли эту операцию пользователю или нет. Решение принимается на основе правил. Правило содержит список операций и соответствующие им разрешения. Каждый ресурс предоставляет свой уникальный набор операций. В зависимости от типа ресурса, правило может также содержать условия, критерии отбора и запрещенные поля.
Для ресурса Список задавать операции необязательно. |
Логика проверки доступа
Для получения пользователем разрешения или запрета на определенную операцию над определенным ресурсом, система производит комплексный иерархический поиск. Первым делом происходит поиск правила, заданного непосредственно для данного пользователя и данного ресурса. В случае, если такое правило найдено, и оно явным образом определяет тип разрешения, поиск прекращается и пользователю будет предоставлено разрешение, указанное в рамках этого правила. В случае же, если такое правило найдено не было, система попытается найти правило, заданное для родительской группы пользователя, и т.д. вверх по иерархии групп до тех пор, пока какое-либо из правил явно не определит тип разрешения на операцию.
В силу того, что пользователь может входить сразу в несколько групп, иерархическая проверка будет производиться начиная с каждой из групп, в которую он входит. Если в рамках хотя бы одной из них было найдено правило, разрешающее операцию над этим ресурсом, поиск прекращается, и пользователю предоставляется право на эту операцию. Очень важно знать, что пользователю будет отказано в праве на эту операцию лишь в том случае, если проверка в рамках абсолютно всех групп, в которые входит пользователь, явно определяет запрет на эту операцию. В противном же случае, разрешение примет так называемое неопределенное значение.
Если при описанном выше поиске не было найдено ни одного правила, однозначно определяющего тип разрешения, для пользователя назначается неопределенное значение разрешения. Если такая ситуация имеет место, система повторит весь цикл поиска с самого начала, но уже для родительского ресурса. Поиск будет продолжаться до тех пор, пока не будет найдено явное разрешение или запрет на операцию. Если же в результате поиска как по пользователям и группам, так и по ресурсам, явное разрешение или запрет найдены не были, пользователю в итоге будет предоставлено право на операцию над данным ресурсом.
Редактор прав доступа
Настройка прав доступа производится при помощи редактора прав доступа. При помощи редактора можно также создавать новых пользователей или группы, редактировать их и удалять. Для открытия редактора предназначена кнопка «Редактор прав доступа», расположенная в нижней части основного окна Mid Office Manager:
На экране при этом будет отображено диалоговое окно «Редактор прав доступа»:
В левой части окна расположены две древовидные структуры. Первая отражает иерархический список пользователей и групп, вторая - иерархический список ресурсов. Правая часть редактора предназначена для отображения списка правил. Для просмотра списка правил необходимо выбрать интересующего пользователя или группу в первом списке, а затем во втором списке указать ресурс:
Если для определенного пользователя или группы были настроены правила в рамках любого ресурса, он будет выделен на списке жирным наклонным шрифтом. При выборе такого пользователя или группы, все ресурсы, для которых настроены правила, также выделяются жирным наклонным шрифтом. Это позволяет быстро оценить, для каких ресурсов у данного пользователя или группы уже настроены правила |
Редактор правил
Для добавления нового правила или редактирования уже существующего предназначен редактор правил. Для каждого из типов ресурсов предусмотрен свой редактор с набором свойств, присущих лишь данному ресурсу.
Редактор правил ресурса типа «Список»
При работе с правилами ресурса типа «Список» используется редактор правил списка:
Действия отвечают за настройку типов разрешений для различных операций. Для создания действия сперва необходимо на панели «Действия», в выпадающем списке указать операцию:
Далее, следует указать тип разрешения. Он выбирается из выпадающего списка, расположенного справа от списка операций:
В одном правиле можно указывать сразу несколько действий. Если возникла необходимость настройки единого типа разрешения для абсолютно всех операций, можно воспользоваться специальной операцией Все операции |
Критерии отбора предназначены для настройки дополнительных ограничений, которые будут использоваться при формировании списка прежде чем он будет отображен пользователю. Данные критерии имеют более высокий приоритет, нежели критерии, которые были настроены при помощи редактора рабочей области. Для настройки критерия отбора сперва необходимо на панели «Критерии отбора», в выпадающем списке указать тип критерия:
Затем необходимо указать категорию критерия отбора. Она выбирается из выпадающего списка, расположенного справа от списка типов критерия:
После этого следует определить тип сравнения. Он выбирается из выпадающего списка, расположенного справа от списка категорий. Набор типов сравнения зависит от выбранной ранее категории критерия отбора:
Для завершения формирования критерия отбора, необходимо указать значение (или ряд значений), с которым будет производится сравнение. Значение определяется при помощи соответствующего редактора, расположенного в правой части панели. В зависимости от выбранных категории и типа сравнения, редакторы значений могут различаться.
Некоторые типы сравнения не требуют указания значений. В данном случае, в правой части панели редактор значений отображен не будет |
Поля, так же как и критерии отбора, используются при формировании списка. Итоговый список, который будет отображен пользователю, не будет содержать поля, указанные в списке «Запрещенные поля». Запрещенные поля имеют более высокий приоритет, нежели поля, которые были настроены при помощи редактора рабочей области. По умолчанию все поля, доступные для данного ресурса, являются разрешенными.
Для настройки запрещенных полей необходимо в списке «Разрешенные поля», выделить те поля, отображение которых нужно запретить (1):
Чтобы запрещенные ранее поля вновь сделать разрешенными, необходимо в списке «Запрещенные поля» выделить те поля, отображение которых нужно разрешить (1):
Чтобы запрещенные ранее поля вновь сделать разрешенными, необходимо в списке «Запрещенные поля» выделить те поля, отображение которых нужно разрешить (1), и нажать кнопку переноса (2) для перемещения их в список «Разрешенные поля»:
Для переноса поля из одного списка в другой, можно использовать двойной щелчок левой кнопкой мыши на соответствующем элементе списка |
Редактор правил ресурса типа «Справочник»
При работе с правилами ресурса типа «Справочник» используется редактор правил справочника:
Действия отвечают за настройку типов разрешений для различных операций. Для создания действия сперва необходимо на панели «Действия», в выпадающем списке указать операцию:
Далее, следует указать тип разрешения. Он выбирается из выпадающего списка, расположенного справа от списка операций:
В одном правиле можно указывать сразу несколько действий. Если возникла необходимость настройки единого типа разрешения для абсолютно всех операций, можно воспользоваться специальной операцией Все операции |
Для правил ресурса типа Справочник указание действий является обязательным. В противном случае, правило будет считаться недействительным |
Редактор правил ресурса типа «Объект»
При работе с правилами ресурса типа «Объект» используется редактор правил объекта:
Действия отвечают за настройку типов разрешений для различных операций. Для создания действия сперва необходимо на панели «Действия», в выпадающем списке указать операцию:
Далее, следует указать тип разрешения. Он выбирается из выпадающего списка, расположенного справа от списка операций:
В одном правиле можно указывать сразу несколько действий. Если возникла необходимость настройки единого типа разрешения для абсолютно всех операций, можно воспользоваться специальной операцией Все операции |
Условия предназначены для дополнительной проверки свойств объекта. Разрешения, указанные в правиле, будут применяться лишь в том случае, если объект успешно прошел проверку на соответствие всем указанным условиям. Если объект не прошел проверку, правило игнорируется и, соответственно, разрешения учтены не будут. Для настройки условия сперва необходимо на панели «Условия», в выпадающем списке указать тип условия:
Затем, необходимо указать объект, свойства которого будут использованы для сравнения. В силу того, что объект может быть иерархически связан с другими объектами, проверки можно настраивать не только собственных свойств, но и свойств связанных объектов. Объект выбирается из выпадающего списка, расположенного справа от списка типов условия:
Далее необходимо указать категорию условия. Она выбирается из выпадающего списка, расположенного справа от списка объектов:
После этого следует определить тип сравнения. Он выбирается из выпадающего списка, расположенного справа от списка категорий. Набор типов сравнения зависит от выбранной ранее категории условия:
Для завершения формирования условия, необходимо указать значение (или ряд значений), с которым будет производиться сравнение. Значение определяется при помощи соответствующего редактора, расположенного в правой части панели. В зависимости от выбранных категории и типа сравнения, редакторы значений могут различаться.
Некоторые типы сравнения не требуют указания значений. В данном случае в правой части панели редактор значений отображен не будет |
Для правил ресурса типа Объект указание действий является обязательным. В противном случае правило будет считаться недействительным. Указание условий является опциональным |
Редактор правил ресурса типа «Группа»
При работе с правилами ресурса типа «Группа» используется редактор правил группы:
Действия отвечают за настройку типов разрешений для различных операций. Для создания действия сперва необходимо на панели «Действия», в выпадающем списке указать операцию:
Далее следует указать тип разрешения. Он выбирается из выпадающего списка, расположенного справа от списка операций:
В одном правиле можно указывать сразу несколько действий. Если возникла необходимость настройки единого типа разрешения для абсолютно всех операций, можно воспользоваться специальной операцией Все операции |
Для правил ресурса типа Группа указание действия является обязательным. В противном случае, правило будет считаться недействительным |
Добавление правила
Для того, чтобы добавить новое правило, нужно сперва выбрать в списках необходимых пользователя или группу (1) и ресурс (2), после чего в правой части редактора будет отображена панель, содержащая список уже настроенных правил. Список может быть пустым, если для данного ресурса еще не настроено ни одного правила. Затем щелкните кнопку Добавить (3), расположенную в нижней части панели правил:
После этого на экране отобразится диалоговое окно редактора правил. Произведите при помощи редактора настройку правила в соответствии с необходимыми требованиями. Если правило пустое или не содержит обязательных данных, будет выведено сообщение, и такое правило добавлено в список не будет:
В случае если правило валидное, оно отобразится в списке правил:
Редактирование правила
Для того, чтобы отредактировать уже существующее правило, нужно сперва выбрать в списках необходимых пользователя или группу (1) и ресурс (2), после чего, в правой части редактора будет отображена панель, содержащая список уже настроенных правил. Выберите правило, которое необходимо отредактировать (3) и щелкните кнопку Редактировать (4), расположенную в нижней части панели правил:
Для открытия правила на редактирование можно также использовать двойной щелчок левой кнопкой мыши на соответствующем правиле в списке |
После этого, на экране отобразиться диалоговое окно редактора правил с данными выбранного правила. Произведите при помощи редактора изменения в соответствии с необходимыми требованиями. Если правило после изменений стало пустым или не содержит обязательных данных, будет выведено сообщение, с предложением удалить такое правила из списка:
Если правило определено корректно, изменения будут приняты:
Удаление правил
Для того, чтобы удалить правило, нужно сперва выбрать в списках необходимых пользователя или группу (1):
Для удаления правил можно также использовать клавишу Delete |
На экране отобразиться диалоговое окно подтверждения:
Нажмите кнопку «Да», после чего выбранные правила будут удалены из списка:
Приоритеты правил
Для ресурсов типа «Объект» можно задавать более одного правила. Это необходимо для того, чтобы можно было настраивать правила, разрешающие или запрещающие различные операции, но при разных условиях. При определении разрешения на операцию, происхоидт проверка объекта на соответствие заданным правилам. Первое правило из списка, содержащее разрешение или запрет на искомую операцию и условия которого удовлетворяет объект, будет использовано в качестве определяющего. Очень важно понимать, что проверка правил происходит в строго определенном порядке, а именно в той последовательности, в которой правила располагаются в списке. Это означает, что приоритет правила напрямую зависит от того, где оно расположено в списке. Следовательно, чем «выше» расположено правило, тем выше его приоритет:
Рассмотрим более подробно процесс определенеия разрешений на примере ресурса «Заказ». Предположим, что с целью разграничения разрешений, были сформированы следующие требования:
- Если агентством является компания 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». Для него уже на первом этапе будет определен запрет, т.к. данные заказа полностью удовлетворяют всем условиям правила.
Чтобы повысить приоритет правила, нужно переместить его на более высокую позицию в списке. Для этого сперва выберите правило, приоритет которого необходимо изменить (1)Если необходимо понизить приоритет, нужно переместить правило на более низкую позицию в списке. Для этого сперва выберите правило, для которого предполагается понизить приоритет (1):
Редактор пользователей и групп
Для добавления нового пользователя или группы, а также для редактирования уже существующих пользователей или групп, предназначены соответствующие им редакторы.
Редактор пользователя
При работе с пользователем используется редактор пользователя:
Поле «Имя» предназначено для указания имени пользователя. В поле «Описание» можно ввести краткое описание пользователя и его роли в системе. Если нужно привязать пользователя к определенному профилю, укажите его в поле «Профиль».
В поле «Логин» необходимо указать уникальный логин пользователя. После того, как пользователь был создан, его логин изменить будет нельзя и при редактировании его данных, поле «Логин» будет отключено. Поля «Пароль» и «Подтверждение» предназначены для установки пароля. При указании пароля значения в обоих полях должны совпадать. Если при редактировании пароль менять не нужно, оставьте эти поля пустыми. Логин и пароль будут затем использоваться для входа пользователя в систему.
Логин может содержать только латинские буквы в нижнем регистре, цифры и символы «_», «-», «~», «!», «#», «$», «%», «^», «&», «*», «(», «)», «{», «}», «[», «]», «+», «=», «;», «:», «<», «>», «?», «/», «@», «.», «,», «|» |
Флаг «Активный» определяет статус пользователя.
Группы, в которые входит пользователь выбираются на списке групп, расположенном в правой части редактора. Для пользователя можно указывать сразу несколько групп:
При редактировании пользователей Система и Администратор флаг «Активный» и список групп доступен не будет.
Редактор группы
При работе с группой используется редактор группы:
Поле «Наименование» предназначено для указания названия группы. В поле «Описание» можно ввести краткое описание группы.
Группа, в которую входит данная группа, выбирается на списке групп, расположенном в правой части редактора. Для группы можно указывать только одну родительскую группу:
При редактировании групп Все группы и пользователи и Администраторы список групп доступен не будет.
Создание пользователя или группы
Чтобы создать нового пользователя или группу, нужно сперва выбрать родительскую группу, в которую будет добавлен создаваемый пользователь или группа (1) (в случае создания пользователя) (2) (в случае создания группы):
Для создания нового пользователя можно также использовать сочетание клавиш Ctrl+N, для добавления новой группы предусмотрено сочетание клавиш Ctrl+Shift+N |
После этого на экране отобразится диалоговое окно редактора пользователя или группы, в котором нужно указать все необходимые данные. Если какие-либо данные отсутствуют или данные не соответствуют требованиям, будет выведено соответствующее сообщение. Например:
В случае, если все данные указаны верно, пользователь или группа будет добавлен в список:
Редактирование пользователя или группы
Для того, чтобы отредактировать уже существующего пользователя или группу, нужно сперва выбрать пользователя или группу, которого необходимо отредактировать (1):После этого, на экране отобразится диалоговое окно редактора пользователя или группы, в котором нужно произвести все необходимые изменения данных. Если после изменений какие-либо данные отсутствуют или данные не соответствуют требованиям, будет выведено соответствующее сообщение. Например:
В случае если все данные указаны верно, изменения будут приняты:
Удаление пользователя или группы
Для того, чтобы удалить пользователя или группу, нужно сперва выбрать пользователя или группу, которого необходимо удалить (1):Для групп Все группы и пользователи и Администраторы пункт меню Удалить доступен не будет |
Для удаления пользователя или группы можно также использовать клавишу Delete |
В случае удаления пользователя на экране отобразиться диалоговое окно подтверждения с предложением указать режим удаления:
Нажмите кнопку «Из текущей группы», для того, чтобы удалить пользователя только из группы, в которой пользователь был выбран. При нажатии на кнопку «Из всех групп» пользователь будет удален из всех групп, в которые он входит.
При удаления группы, на экране отобразится обычное диалоговое окно подтверждения:
Группу можно удалять только в том случае, если она пустая, т.е. не содержит пользователей и другие группы. При попытке удаления непустой группы будет выдано соответствующее предупреждение:
После того, как потверждение было получено и никаких препятсвий к удалению не возникает, пользователь или группа будут удалены из списка:
При удалении пользователя (в случае, если не осталось групп, в которые он входит), а также при удалении группы, все правила, настроенные для этого пользователя или группы будут также удалены! |
Реорганизация пользователей и групп
Бывают ситуации, когда необходимо определенного пользователя или группу переместить в другую группу. Для этого, можно воспользоваться соответствующим редактором. Однако, существует более простой и наглядный способ это сделать. Пользователь может перетаскивать элементы прямо на списке. Для того, чтобы переместить пользователя или группу в другую группу, нужно сперва выбрать пользователя или группу, которого необходимо переместить Шаблон:Step
Для групп Все группы и пользователи и Администраторы, а также для пользователей Система и Администратор перенос запрещен |
Отпустите кнопку мыши, и выбранный пользователь или группа будет помещен в указанную группу:
Для пользователей также поддерживается операция копирования. Она необходима, когда пользователя нужно поместить в еще одну группу. Для этого, нужно сперва выбрать пользователя, которого необходимо скопировать Шаблон:Step, нажать на его заголовок левой кнопкой мыши и, не отпуская кнопки, перетащить мышку на заголовок группы, в которую нужно скопировать выбранного пользователя Шаблон:Step
Отпустите кнопку мыши, и выбранный пользователь будет скопирован в указанную группу:
Система не разрешает копировать пользователей Система и Администратор. |