Практикум. Сервис бронирования отелей. Ролевая модель.
Общие сведения о ролевой модели
Платформа позволяет пользователям управлять правами доступа к объектам платформы и допустимым операциям с ними, благодаря различным настройкам ролевой модели. Основой ролевой модели доступа к данным является концепция сбора прав в ролях.
Роль (группа доступа) – это набор полномочий, который необходим пользователю или группе пользователей для выполнения определенных задач. Каждый пользователь системы может иметь одну или несколько ролей, а каждая роль может содержать от одного до множества полномочий, которые разрешены пользователю в рамках этой роли.
Сотрудник – объект, содержащий личную информацию о пользователе, а именно его ФИО, должность, номер телефона, почту и т.д.
Пользователь – учетная запись сотрудника с указанием логина, пароля и группы доступа. Создание пользователя позволяет пройти авторизацию и зайти в интерфейс Системы с разрешенными для него объектами;
На платформе есть возможность:
-
Создавать группы доступа, пользователей и сотрудников;
-
Разграничивать права доступа к объектам системы для разных групп доступа;
-
Устанавливать правила для предоставления прав доступа и операциям с объектами системы.
Последовательность настройки доступа:
-
Создание записи о сотруднике организации, если этого не было сделано ранее. Настройка записи сотрудника определяет, для кого настраивается доступ;
-
Определение требуемых групп доступа, если этого не было сделано ранее. Настройка групп доступа уточняет, в какие группы будет включен пользователь;
-
Создание учетной записи пользователя Системы. Настройки учетной записи отвечают на вопрос, какой аккаунт будет назначен сотруднику.
Описание модуля
Необходимо настроить права к системе для трех групп пользователей: клиент, менеджер и руководитель.
Клиент должен иметь возможность видеть свою стартовую страницу, переходить в необходимые пункты меню, видеть список всех своих заявок на бронирование, создавать заявку на бронирование, просматривать и выбирать номер и отель, заносить информацию о себе и своих гостях.
Менеджер должен иметь возможность видеть свою стартовую страницу, переходить в необходимые пункты меню, просматривать все заявки и менять их статус.
Руководитель должен иметь возможность видеть свою стартовую страницу и просматривать все заявки.
Для решения поставленной бизнес-задачи необходимо создать 3 группы пользователей: клиент, менеджер и руководитель. Также необходимо настроить права к объектам системы, с которыми эти пользователи будут взаимодействовать:
-
Типы объектов: Заявка на бронирование, Отель, Номер;
-
К настройкам реестра типа Заявка на бронирование;
-
К визуалам объекта типа Заявка на бронирование;
-
К пунктам меню;
-
К стартовым страницам;
|
Перед настройкой модуля «Ролевая модель» необходимо предварительно реализовать настройки, описанные в главах: |
Создание групп доступа
Для решения бизнес-задачи в системе должно быть предусмотрено три типа пользователей: Клиент, который имеет доступ только к созданию заявки и просмотру собственных заявок, Менеджер и Руководитель, которые имеют доступ к просмотру всех поступивших заявок.
Создайте группы доступа, для этого на стартовой странице в виджете «Роли» создайте новую роль по кнопке «Создать».

В появившейся форме заполните поля: Наименование – «Клиент», Идентификатор – CLIENT_GROUP.
Пользователи этой и остальных групп доступа будут являться пользователями, принадлежащим группе доступа «Все пользователи», которая является системной и ее не нужно создавать – эта группа по умолчанию имеет разрешение только на чтение некоторых объектов и имеет ограничения на создание, изменение и удаление типов и объектов системы. Любой создаваемый пользователь автоматически сопоставляется с этой группой.
Аналогично добавьте новую группу доступа «Руководитель» [HEAD_GROUP].
Аналогично добавьте новую группу доступа «Менеджер» [MANAGER_GROUP].
Создание сотрудников и пользователей
Для каждой созданной группы доступа необходимо добавить пользователей.
Каждый пользователь Системы ассоциируется с сотрудником, занесенным в справочник сотрудников. Соответственно, для создания нового пользователя необходимо убедиться, что соответствующий сотрудник заведен в Системе. Каждый сотрудник может принадлежать одной или нескольким группам доступа одновременно.
Создайте нового сотрудника в реестре типа объектов «Персональные данные», для этого перейдите в пункт меню «Справочники» - «Сотрудники».

Создайте новый объект и выберите тип «Сотрудник».

Заполните минимальный набор полей для создания сотрудника:
-
Фамилия – «Иванов»;
-
Имя – «Иван»;
-
Отчество – «Иванович».
Сохраните сотрудника с помощью кнопки сохранения на панели управления.

Для того, чтобы была возможность осуществить авторизацию в системе через созданного сотрудника, необходимо создать для него пользователя и указать группы доступа, к которым пользователь принадлежит. Для этого перейдите в пункт меню «Администрирование» - «Управление доступом» - «Пользователи».

Добавьте нового пользователя. В поле «Сотрудник» выберите из списка созданного ранее сотрудника. Также можно создать нового сотрудника при создании пользователя с помощью кнопки «Создать нового».

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

Заполните поле «Логин» и «Пароль» — это учетные данные, необходимые для авторизации в системе. Логин может состоять только из латинских букв и цифр, пробелы и специальные символы не допускаются. Пароль должен содержать не менее 8 символов. Пароль должен содержать не менее 1 символов верхнего регистра. Пароль должен содержать не менее 1 цифр. Пароль должен содержать не менее 1 специальных символов. Пароль соответствует 1 из 4 правил, как минимум 3 является обязательными.

В группе «Группы пользователя» необходимо добавить группу, которой будет принадлежать пользователь. По умолчанию все пользователи имею группу доступа «Все пользователи», которая имеет минимальный набор прав для доступа к объектам системы.
Добавьте группу доступа «Клиент».
Сохраните настройки пользователя.
Аналогично создайте по одному новому сотруднику и добавьте по пользователю на каждого для групп доступа «Менеджер» и «Руководитель».
Настройка динамического визуала типа «Заявка на бронирование»
Динамический визуал позволяет отобразить соответствующий визуал для каждой из групп доступа. Для его работы необходимо создать новый алгоритм, который в зависимости от группы доступа будет отображать тот или иной визуал.
В основном меню перейдите в пункт «Администрирование» – «Управление объектами» – «Алгоритмы объектов».

Откроется реестр алгоритмов: добавьте новый объект, для этого на панели инструментов нажмите на кнопку «Создать».

Создайте новый алгоритм «Выбор визуала по группе доступа», который будет проверять принадлежность текущего пользователя к той или иной группе доступа, в зависимости от этого будет показывать соответствующий визуал. В качестве базового типа объектов укажите тип «Заявка на бронирование».
Заполните формулу алгоритма:

Для этого воспользуйтесь следующими функциями:
Чтобы повторить формулу алгоритма, выполните следующие шаги:
-
Вызовите функцию if;
-
В скобках в качестве условия вставьте функцию currentUserHasGroup;
-
С помощью клавиатуры удалите параметр функции в скобках и вставьте там значение «Менеджер» типа объекта «Группа доступа» с помощью функции dict;
-
В фигурных скобках функции if вставьте значение «Форма для менеджера» типа объекта «Визуальная группировка»;
-
После фигурных скобок функции else if, вызовите функцию else;
-
В качестве инструкции в фигурных скобках вставьте значение «Форма для клиента» типа объекта «Визуальная группировка» с помощью функции dict;
Сохраните алгоритм с помощью кнопки сохранения на панели управления.
Через предметную область создайте новый визуал для типа объектов «Заявка на бронирование». Заполните Наименование – «Динамический визуал».
Из списка Вид визуала выберите «Визуал по алгоритму» и в поле Алгоритм определения визуала выберите созданный алгоритм «Выбор визуала по группе доступа». Сохраните настройки динамического визуала по кнопке сохранения на панели управления.

В меню перейдите в пункт «Администрирование» – «Управление объектами» – «Реестр объектов». Откройте реестр типа объектов «Визуал», для этого найдите и выберите тип и воспользуйтесь кнопкой «Открыть реестр».

Чтобы пользователь видел всегда только предназначенный ему визуал, необходимо установить по умолчанию созданный объект «Динамический визуал», который с помощью алгоритма будет показывать соответствующий.
С помощью поиска найдите визуалы, принадлежащие объектам типа «Заявка на бронирование».
Из списка выделите объект «Форма для клиента» и перейдите к его редактированию в модальном окне, для этого раскройте список дополнительных действий кнопки «Редактировать» на панели управления и выберите «В модальном окне».

В появившемся модальном окне деактивируйте переключатель «Сделать визуалом по умолчанию» и сохраните изменения по кнопке «Ок».

Аналогично откройте для редактирования в модальном окне объект «Динамический визуал», активируйте переключатель настройки «Сделать визуалом по умолчанию» и сохраните изменения по кнопке «Ок».

Настройка прав для групп доступа
Для того чтобы пользователи могли взаимодействовать с объектами типов, далее необходимо настроить права на экземпляры типов объектов.
Настройка прав для типов объектов
Настройте права для групп доступа для типов объектов. Настроенные права доступа определяют возможность создания новых экземпляров типов объекта, а также их чтения, редактирования и удаления.
Перейдите к предметной области из стартовой страницы. Необходимо настроить права для типов объектов, содержащих справочные значения.
Перейдите в настройки типа объектов «Рейтинг». В разделе «Дополнительные настройки» на вкладке «Контроль доступа» установите «Вид контроля прав» – «Все пользователи имеют право на чтение». Сохраните настройки типа объектов.

Аналогично настройте вид контроля прав для типов объектов «Тип номера», «Тип питания»,
«Шаги бронирования», «Отель», «Номер». Для настройки типа объектов «Шаги бронирования» необходимо добавить его на предметную область, как существующий.
Настройте права доступа для типа объектов «Рейтинг», для этого в настройках типа объектов на панели управления раскройте список действий и выберите «Права доступа».

В окне настройки прав доступа располагается список групп и пользователей системы, у которых есть настроенные права. Добавьте новую группу по кнопке
.

В появившемся окне отметьте группы доступа Руководитель, Менеджер, Клиент, активировав переключатели в строках. Затем добавьте по кнопке «Добавить».

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

Сохраните настройки прав для типа объектов с помощью кнопки на панели настройки прав.

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

Для группы доступа «Менеджер» дайте разрешение на Чтение экземпляров, активировав в столбце «Разрешено» переключатель в соответствующем столбце. Аналогично для группы доступа «Руководитель» дайте разрешение на Чтение экземпляров и Редактирование экземпляров. Аналогично для группы доступа «Клиент» дайте разрешение на Создание экземпляров, Чтение экземпляров и Редактирование экземпляров.

Аналогично настройте права доступа для типов объектов «Гость» и «Клиент».
Настройка прав для объектов
Необходимо перейти к настройкам доступа к объектам системы, чтобы настроить права для определенных экземпляров типов объектов. Для этого перейдите в пункт меню «Администрирование» - «Управление доступом» - «Доступ к объектам системы».

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

Выделите реестр «Заявка на бронирование» и ниже настройте права доступа для него. Добавьте группы доступа «Клиент», «Менеджер» и «Руководитель».
Настройте права для групп доступа:
-
Клиент: Запретить – Чтение;
-
Менеджер: Разрешить – Чтение;
-
Руководитель: Разрешить – Чтение.

Сохраните настройки прав для реестра.
Аналогично для объекта «Мои заявки» настройте группы доступа: Настройте права для групп доступа:
-
Клиент: Разрешить – Чтение;
-
Менеджер: Запретить – Чтение;
-
Руководитель: Запретить – Чтение.

Сохраните настройки прав для реестра.
Для того, чтобы каждый из пользователей имел доступ только к предусмотренному визуалу, необходимо настроить доступ к каждому из созданных визуалов и к динамическому визуалу. В качестве Типа объектов выберите «Визуал». С помощью поиска найдите и отметьте «Динамический визуал». Добавьте группы доступа Клиент, Менеджер, Руководитель – они автоматически получат разрешение на чтение. Сохраните настройки прав.

С помощью поиска найдите и отметьте «Форма для клиента» добавьте группу доступа Клиент и установите право на чтение – для того, чтобы клиент видел предназначенный ему визуал. Сохраните настройки прав.
Аналогично найдите объект «Форма для менеджера», добавьте группы доступа Менеджер и Руководитель и установите право на чтение. Сохраните настройки прав.