Практикум. Сервис бронирования отелей. Ролевая модель.
Общие сведения о ролевой модели
Платформа позволяет пользователям управлять правами доступа к объектам платформы и допустимым операциям с ними, благодаря различным настройкам ролевой модели. Основой ролевой модели доступа к данным является концепция сбора прав в ролях.
Роль (группа доступа) – это набор полномочий, который необходим пользователю или группе пользователей для выполнения определенных задач. Каждый пользователь системы может иметь одну или несколько ролей, а каждая роль может содержать от одного до множества полномочий, которые разрешены пользователю в рамках этой роли.
Сотрудник – объект, содержащий личную информацию о пользователе, а именно его ФИО, должность, номер телефона, почту и т.д.
Пользователь – учетная запись сотрудника с указанием логина, пароля и группы доступа. Создание пользователя позволяет пройти авторизацию и зайти в интерфейс Системы с разрешенными для него объектами;
На платформе есть возможность:
-
Создавать группы доступа, пользователей и сотрудников;
-
Разграничивать права доступа к объектам системы для разных групп доступа;
-
Устанавливать правила для предоставления прав доступа и операциям с объектами системы.
Последовательность настройки доступа:
-
Создание записи о сотруднике организации, если этого не было сделано ранее. Настройка записи сотрудника определяет, для кого настраивается доступ;
-
Определение требуемых групп доступа, если этого не было сделано ранее. Настройка групп доступа уточняет, в какие группы будет включен пользователь;
-
Создание учетной записи пользователя Системы. Настройки учетной записи отвечают на вопрос, какой аккаунт будет назначен сотруднику.
Описание модуля
Необходимо настроить права к системе для трех групп пользователей: клиент, менеджер и руководитель.
Клиент должен иметь возможность видеть свою стартовую страницу, переходить в необходимые пункты меню, видеть список всех своих заявок на бронирование, создавать заявку на бронирование, просматривать и выбирать номер и отель, заносить информацию о себе и своих гостях.
Менеджер должен иметь возможность видеть свою стартовую страницу, переходить в необходимые пункты меню, просматривать все заявки и менять их статус.
Руководитель должен иметь возможность видеть свою стартовую страницу и просматривать все заявки.
Для решения поставленной бизнес-задачи необходимо создать 3 группы пользователей: клиент, менеджер и руководитель. Также необходимо настроить права к объектам системы, с которыми эти пользователи будут взаимодействовать:
-
Типы объектов: Заявка на бронирование, Отель, Номер;
-
К настройкам реестра типа Заявка на бронирование;
-
К визуалам объекта типа Заявка на бронирование;
-
К пунктам меню;
-
К стартовым страницам;
Перед настройкой модуля «Ролевая модель» необходимо предварительно реализовать настройки, описанные в главах: Либо установить пакет обновлений. |
Создание групп доступа
Для решения бизнес-задачи в системе должно быть предусмотрено три типа пользователей: Клиент, который имеет доступ только к созданию заявки и просмотру собственных заявок, Менеджер и Руководитель, которые имеют доступ к просмотру всех поступивших заявок.
Создайте группы доступа, для этого на стартовой странице в виджете «Роли» создайте новую роль по кнопке «Создать».
В появившейся форме заполните поля: Наименование – «Клиент», Идентификатор – CLIENT_GROUP.
Пользователи этой и остальных групп доступа будут являться пользователями, принадлежащим группе доступа «Все пользователи», которая является системной и ее не нужно создавать – эта группа по умолчанию имеет разрешение только на чтение некоторых объектов и имеет ограничения на создание, изменение и удаление типов и объектов системы. Любой создаваемый пользователь автоматически сопоставляется с этой группой.
Аналогично добавьте новую группу доступа «Руководитель» [HEAD_GROUP].
Аналогично добавьте новую группу доступа «Менеджер» [MANAGER_GROUP].
Настройка динамического визуала типа «Заявка на бронирование»
Динамический визуал позволяет отобразить соответствующий визуал для каждой из групп доступа. Для его работы необходимо создать новый алгоритм, который в зависимости от группы доступа будет отображать тот или иной визуал.
В основном меню перейдите в пункт «Администрирование» – «Управление объектами» – «Алгоритмы объектов».
Откроется реестр алгоритмов: добавьте новый объект, для этого на панели инструментов нажмите на кнопку «Создать».
Создайте новый алгоритм «Выбор визуала по группе доступа» [GROUP_ACCESS_ALG], который будет проверять принадлежность текущего пользователя к той или иной группе доступа, в зависимости от этого будет показывать соответствующий визуал. В качестве базового типа объектов укажите тип «Заявка на бронирование».
Заполните формулу алгоритма:
Для этого воспользуйтесь следующими функциями:
Чтобы повторить формулу алгоритма, выполните следующие шаги:
-
Вызовите функцию if;
-
В скобках в качестве условия вставьте функцию currentUserHasGroup;
-
С помощью клавиатуры удалите параметр функции в скобках и вставьте там значение «Менеджер» типа объекта «Группа доступа» с помощью функции dict;
-
В фигурных скобках функции if вставьте значение «Форма для менеджера» типа объекта «Визуальная группировка»;
-
После фигурных скобок функции else if, вызовите функцию else;
-
В качестве инструкции в фигурных скобках вставьте значение «Форма для клиента» типа объекта «Визуальная группировка» с помощью функции dict;
Сохраните алгоритм с помощью кнопки сохранения на панели управления.
В меню перейдите в пункт «Администрирование» – «Управление объектами» – «Реестр объектов».
Откройте реестр типа объектов «Визуальная группировка», выбрав его в раскрывающемся списке на панели управления.
Создайте новый объект, заполните Наименование – «Динамический визуал», Тип объекта – «Заявка на бронирование».
Из списка Вид визуала выберите «Визуальная группировка по алгоритму» и в поле Алгоритм определения визуала выберите созданный алгоритм «Выбор визуала по группе доступа». Сохраните настройки динамического визуала по кнопке сохранения на панели управления.
Вернитесь к реестру типа объектов «Визуал» по кнопке на панели с наименованием объекта.
Чтобы пользователь видел всегда только предназначенный ему визуал, необходимо установить по умолчанию созданный объект «Динамический визуал», который с помощью алгоритма будет показывать соответствующий.
С помощью поиска найдите визуалы, принадлежащие объектам типа «Заявка на бронирование».
Из списка выделите объект «Форма для клиента» и перейдите к его редактированию в модальном окне, для этого раскройте список дополнительных действий кнопки «Редактировать» на панели управления и выберите «В модальном окне».
В появившемся модальном окне деактивируйте переключатель «Сделать визуальной группировкой по умолчанию» и сохраните изменения по кнопке «Ок».
Аналогично откройте для редактирования в модальном окне объект «Динамический визуал», активируйте переключатель настройки «Сделать визуальной группировкой по умолчанию» и сохраните изменения по кнопке «Ок».
Настройка прав для групп доступа
Для того чтобы пользователи могли взаимодействовать с объектами типов, далее необходимо настроить права на экземпляры типов объектов.
Настройка прав для типов объектов
Настройте системные права для групп доступа для типов объектов. Настроенные права доступа определяют возможность создания новых экземпляров типов объекта, а также их чтения, редактирования и удаления.
В основном меню перейдите в пункт «Администрирование» – «Управление доступом» – «Доступ к объектам системы».
Для настройки прав на типе объектов на панели управления в поле тип объекта – «Тип объекта». С помощью поиска по объектам справа сверху найдите тип объектов «Заявка по бронированию» и выберите его в реестре.
Добавьте группу атрибутов для настройки прав. Для этого нажмите на кнопку «Добавить группу или пользователей». В появившемся окне отметьте группы доступа Руководитель, Менеджер, Клиент, активировав переключатели в строках. Затем добавьте по кнопке «Добавить».
Для группы доступа «Руководитель» дайте разрешение на Чтение экземпляров, активировав в столбце «Разрешено» переключатель в соответствующем столбце. Аналогично для группы доступа «Менеджер» дайте разрешение на Чтение экземпляров и Редактирование экземпляров. Аналогично для группы доступа «Клиент» дайте разрешение на Создание экземпляров, Чтение экземпляров и Редактирование экземпляров.
Сохраните настройки прав для типа объектов «Заявка на бронирование» с помощью кнопки на панели настройки прав.
С помощью поиска найдите тип объектов «Отель» и выберите его из списка. Добавьте группы доступа и дайте разрешения для них:
-
Клиент: Чтение экземпляров;
-
Менеджер: Создание экземпляров, Чтение экземпляров, Редактирование экземпляров, Удаление экземпляров (чтобы менеджер имел возможность менять объекты в справочниках);
-
Руководитель: Чтение экземпляров.
Сохраните настройки прав для типа объектов.
Аналогичные разрешения дайте для типов объектов «Шаги бронирования», «Номер», «Рейтинг», «Тип номера», «Тип питания».
Настройка прав для объектов
Для того, чтобы менеджера и руководители могли использовать экзмепляры справочника «Шаги бронирования», а клиенты могли работать на своем визуале и менять шаги бронирования во время заполнения заявки, необходимо выдать им права на объекты типа объектов «Шаги бронирования». Для этого перейдите к стартовой странице, из которой перейдите к настройке типа объектов «Шаги бронирования».
Раскройте раздел «Дополнительные настройки» и на вкладке «Контроль доступа» измените значение в поле «Вид контроля прав» на «Все пользователи имеют право на чтение». Сохраните настройки типа объектов.
Вернитесь в настройке доступа к элементам системы через главное меню.
Для того, чтобы каждый пользователь видел только свой реестр, необходимо настроить доступ к каждому из созданных настроек.
В качестве Типа объекта выберите «Базовое представление реестра». С помощью поиска справа вверху найдите объект «Заявки на бронирование» – реестр, предназначенный для менеджера.
Настройте права для групп доступа:
-
Клиент: Запретить – Чтение;
-
Менеджер: Разрешить – Чтение;
-
Руководитель: Разрешить – Чтение.
Сохраните настройки прав для реестра.
Аналогично для объекта «Мои заявки» настройте группы доступа:
Настройте права для групп доступа:
-
Клиент: Разрешить – Чтение;
-
Менеджер: Запретить – Чтение;
-
Руководитель: Запретить – Чтение.
Сохраните настройки прав для реестра.
Для того чтобы каждый из пользователей имел доступ только к предусмотренному визуалу, необходимо настроить доступ к каждому из созданных визуалов и к динамическому визуалу.
В качестве Типа объектов выберите «Визуальная группировка». С помощью поиска найдите и отметьте «Динамический визуал». Добавьте группы доступа Клиент, Менеджер, Руководитель – они автоматически получат разрешение на чтение. Сохраните настройки прав.
С помощью поиска найдите и отметьте «Форма для клиента» добавьте группу доступа Клиент и установите право на чтение – для того, чтобы клиент видел предназначенный ему визуал. Сохраните настройки прав.
Аналогично найдите объект «Форма для менеджера», добавьте группы доступа Менеджер и Руководитель и установите право на чтение. Сохраните настройки прав.