Збереження ролей користувачів до Keycloak: Save user roles
| 🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. | 
Цей документ надає інструкції щодо збереження ролей користувачів до Keycloak.
1. Загальна інформація
Загальне інтеграційне розширення-делегат надає можливість взаємодіяти із сервісом управління ідентифікацією та доступом Keycloak для зміни ролей користувача. Делегат налаштовується у сервісних задачах (Service Task) бізнес-процесу за допомогою шаблону Save user roles.
| Назва | Пояснення | 
|---|---|
| Бізнес-назва | Save user roles | 
| Службова назва | 
 | 
| Назва файлу у бібліотеці розширень | keycloakSaveUserRoleConnectorDelegate.json | 
2. Перед початком
| Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки. При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень. | 
3. Налаштування делегата
Делегат Save user roles призначений для використання у сервісних завданнях (Service Task) бізнес-процесу. Він надає можливість додавати або змінювати ролі для надавачів та отримувачів послуг у Keycloak-реалмах citizen та officer.
3.1. Налаштування сервісного завдання
- 
Створіть Service Task. 
- 
У полі Nameвкажіть назву сервісної задачі.
- 
Застосуйте шаблон делегата Save user roles зі списку доступних у каталозі.  
3.2. Налаштування делегата
- 
У секції передайте ролі, які необхідно призначити користувачу. Наприклад, officer.У нашому прикладі передається одна роль ( officer) масивом (List).Доступні типи змінних, через які можна передати ролі: - 
List— список/масив;
- 
Map— ключі-значення;
- 
Script— скрипт;
- 
String or expression— рядок або вираз.
 Приклад 1. Масив ролей, які необхідно призначити користувачу['officer', 'manager1', 'manager2']- 
officer— системна роль, яка призначається користувачу після реєстрації.
- 
manager1таmanager2— можуть бути регламентними ролями у реєстрі.
 
- 
- 
Вкажіть ім’я користувача ( username) у системі Keycloak. Це можна зробити, наприклад, за допомогою juel-функціїinitiator():${initiator().userName}
- 
Оберіть реалм Keycloak, до якого відноситься користувач. Наприклад, officer, при реєстрації посадових осіб.Доступні опції реалмів: - 
CITIZEN— реалм, в якому зберігаються отримувачі послуг та їх ролі.
- 
OFFICER— реалм, в якому зберігаються посадові особи (надавачі послуг) та їх ролі.
 
- 
- 
Вкажіть тип ролей, які можуть бути змінені для користувача. Доступні опції: - 
ALL ROLES— усі поточні ролі будуть заміщені переліком ролей, вказаних у секціїRoles.
- 
PLATFORM ROLES— поточні системні ролі, призначені користувачу, будуть заміщені переліком ролей, вказаних у секціїRoles. Поточні регламентні/реєстрові ролі залишаться без змін.
- 
REGISTRY ROLES— у користувача будуть заміщені лише регламентні/реєстрові ролі.
 - 
Якщо при налаштуванні делегата як input-параметри передати масив ролей, одна з яких — системна, а дві інші - регламентні (тут — officerтаmanager1іmanager2), то необхідно обрати опціюALL ROLES.
- 
Якщо при налаштуванні делегата передати системну роль (тут — officer), то необхідно обрати опціюPLATFORM ROLES.
- 
Якщо при налаштуванні делегата передати регламентні ролі (тут — manager1іmanager2), то необхідно обрати опціюREGISTRY ROLES.
 
- 
| Після завершення операції, делегат не отримує жодних даних у відповідь. | 
4. Приклад
Ось референтний приклад, який показує, як відповідний делегат використовується у бізнес-процесі:
 
| Де можна знайти приклад референтного бізнес-процесу?Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого. Еталонний регламент з прикладами для України зберігається в репозиторії  Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами. Приклад BPMN-схеми процесу буде доступний у регламенті демо-реєстру за пошуком по ключовим словам — officer-selfregistration-handmoderation. Назви форм ви можете знайти всередині відповідних користувацьких задач бізнес-процесу у полі  |