-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[EDP-DDM-27530] Added info about the renewed user and attributes crea…
…tion and getting role delegates, added deprecated note, edited save-user-roles.adoc Change-Id: I74fd13f685a3950eebab1b536e5ff5010613acbf (cherry picked from commit be222587c111102b2955e2ca672e7e550ed9d2b1)
- Loading branch information
1 parent
dfaa8ca
commit aa463d5
Showing
8 changed files
with
482 additions
and
8 deletions.
There are no files selected for viewing
Binary file added
BIN
+4.78 KB
...bp-modeling/bp/element-temp/service-task/save-user-roles/save-user-roles-01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
106 changes: 106 additions & 0 deletions
106
...nt-templates/service-task-templates/user-roles/get-keycloak-roles-by-realm.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
= Отримання ролей з Keycloak-реалму: _Get Keycloak roles by realm_ | ||
include::platform:ROOT:partial$templates/document-attributes/default-set-ua.adoc[] | ||
|
||
Цей документ пояснює, як отримати перелік системних та реєстрових ролей з певного Keycloak-реалму. | ||
|
||
== Загальна інформація | ||
|
||
Інтеграційне розширення *Get Keycloak roles by realm* дозволяє вам отримати список усіх ролей з певного Keycloak-реалму. | ||
|
||
.Короткі відомості про делегат | ||
|=== | ||
|Назва |Пояснення | ||
|
||
|Бізнес-назва інтеграційного розширення | ||
|*Get Keycloak roles by realm* | ||
|
||
|Службова назва інтеграційного розширення | ||
|`${keycloakGetRolesByRealmConnectorDelegate}` | ||
|
||
|Назва файлу в бібліотеці розширень | ||
|_keycloakGetRolesByRealmConnectorDelegate.json_ | ||
|=== | ||
|
||
== Перед початком | ||
|
||
include::partial$admonitions/install-element-templates.adoc[] | ||
|
||
== Налаштування делегата | ||
|
||
Делегат *Get Keycloak roles by realm* призначений для використання у сервісних завданнях (Service Task) бізнес-процесу. Він отримує список усіх ролей з певного Keycloak-реалму: | ||
|
||
* `citizen` -- список ролей для призначення отримувачам послуг. | ||
* `officer` -- список ролей для призначення надавачам послуг. | ||
|
||
=== Налаштування сервісного завдання | ||
|
||
. Створіть завдання типу *Service Task* у вашому бізнес-процесі. | ||
. Назвіть завдання, наприклад, `Отримання переліку можливих регламентих ролей для реалма`. | ||
. Застосуйте шаблон делегата, обравши відповідний зі списку в налаштуваннях завдання. | ||
+ | ||
image:bp-modeling/bp/element-temp/service-task/get-kc-roles-by-realm/get-keycloak-roles-by-realm-1.png[] | ||
|
||
=== Налаштування делегата | ||
|
||
. У полі *Realm* оберіть `Officer` для надавачів послуг або `Citizen` для отримувачів послуг. | ||
. Оберіть *Role Type*, щоб визначити, які ролі повертати: `REGISTRY ROLES`, `PLATFORM ROLES` або `ALL ROLES`. Ви можете запитати всі (системні та реєстрові), лише системні, або лише реєстрові ролі, доступні для використання у реєстрі. _За замовчуванням встановлено_ `REGISTRY ROLES`. | ||
. Вкажіть змінну процесу (наприклад, `rolesResponse`), куди буде збережено відповідь. Ця змінна буде тимчасовою (transient). Це дозволяє ефективно управляти отриманими даними без зайвого зберігання інформації в базі даних. | ||
|
||
Результатом виконання запита буде повернення переліку назв ролей певного користувача для визначеного реалма: `List<String>`. | ||
|
||
.Приклад відповіді зі списком ролей у форматі JSON | ||
[source,json] | ||
---- | ||
[ | ||
"user", | ||
"admin", | ||
"hierarchy-registry-manager", | ||
"personnel-officer-admin", | ||
"reviewer" | ||
] | ||
---- | ||
|
||
Надалі ви зможете використовувати отриманий список ролей для різних цілей у бізнес-процесі. Наприклад, ви зможете отримати лише певну роль зі списку за індексом, сформувати payload із відповідним значенням та зберегти до тимчасової змінної для подальшого застосування у процесі: | ||
|
||
.Приклад groovy-скрипту для отримання першої ролі з масиву | ||
[source,groovy] | ||
---- | ||
// Визначення масиву ролей | ||
def roles = ["user", "admin", "hierarchy-registry-manager", "personnel-officer-admin", "reviewer"] | ||
// Отримання першої ролі з масиву | ||
def firstRole = roles[0] | ||
// Формування результату. Наприклад, створимо Map для тимчасової змінної payload | ||
def payload = [firstRole: firstRole] | ||
// Припустимо, що весь масив ролей є доступними ролями, які ми хочемо зберегти | ||
def availableRoles = roles | ||
// Запис даних у змінні процесу | ||
set_transient_variable('payload', payload) | ||
set_variable('availableRoles', availableRoles) | ||
---- | ||
|
||
== Приклад | ||
|
||
Ось референтний приклад, який показує, як відповідний делегат використовується у бізнес-процесі: | ||
|
||
.Референтний приклад. Управління користувачами | ||
image::bp-modeling/bp/element-temp/service-task/get-kc-roles-by-realm/get-keycloak-roles-by-realm-2.png[] | ||
|
||
[TIP] | ||
==== | ||
[%collapsible] | ||
.Де можна знайти приклад референтного бізнес-процесу? | ||
===== | ||
include::registry-develop:partial$snippets/demo-reg-reference-examples-ua.adoc[] | ||
|
||
Приклад BPMN-схеми процесу буде доступний у регламенті демо-реєстру за пошуком по ключовим словам -- *_reference-officers-management_*. Назви форм ви можете знайти всередині відповідних користувацьких задач бізнес-процесу у полі *`Form key`*. | ||
===== | ||
==== | ||
|
||
== Пов'язані сторінки | ||
|
||
* xref:bp-modeling/bp/element-templates/service-task-templates/user-roles/get-keycloak-roles-from-user.adoc[] | ||
* xref:bp-modeling/bp/element-templates/service-task-templates/save-user-roles.adoc[] |
115 changes: 115 additions & 0 deletions
115
...t-templates/service-task-templates/user-roles/get-keycloak-roles-from-user.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
= Отримання ролей користувача з Keycloak: _Get Keycloak roles from user_ | ||
include::platform:ROOT:partial$templates/document-attributes/default-set-ua.adoc[] | ||
|
||
Цей документ пояснює, як отримати системні та реєстрові ролі користувача з Keycloak у бізнес-процесі. | ||
|
||
== Загальна інформація | ||
|
||
Інтеграційне розширення *Get Keycloak roles from user* дозволяє вам отримати ролі користувача з певного Keycloak-реалму за `userName`. | ||
|
||
.Короткі відомості про делегат | ||
|=== | ||
|Назва |Пояснення | ||
|
||
|Бізнес-назва інтеграційного розширення | ||
|*Get Keycloak roles from user* | ||
|
||
|Службова назва інтеграційного розширення | ||
|`${keycloakGetUserRoleConnectorDelegate}` | ||
|
||
|Назва файлу в бібліотеці розширень | ||
|_keycloakGetUserRoleConnectorDelegate.json_ | ||
|=== | ||
|
||
== Перед початком | ||
|
||
include::partial$admonitions/install-element-templates.adoc[] | ||
|
||
== Налаштування делегата | ||
|
||
Делегат *Get Keycloak roles from user* призначений для використання у сервісних завданнях (Service Task) бізнес-процесу. Він отримує список ролей користувача з певного Keycloak-реалму за іменем користувача. | ||
|
||
=== Налаштування сервісного завдання | ||
|
||
. Створіть завдання типу *Service Task* у вашому бізнес-процесі. | ||
. Назвіть завдання, наприклад, `Отримання системних і реєстрових ролей користувача`. | ||
. Застосуйте шаблон делегата, обравши відповідний зі списку в налаштуваннях завдання. | ||
+ | ||
image:bp-modeling/bp/element-temp/service-task/get-kc-roles-from-user/get-keycloak-roles-from-user-1.png[] | ||
|
||
=== Налаштування делегата | ||
|
||
. У полі *Realm* оберіть `Officer` для надавачів послуг або `Citizen` для отримувачів послуг. | ||
. Для *Username* встановіть, наприклад, `${initiator}`, щоб вказати ініціатора процесу. | ||
. Оберіть *Role Type*, щоб визначити, які ролі повертати: `REGISTRY ROLES`, `PLATFORM ROLES` або `ALL ROLES`. Ви можете запитати всі (системні та реєстрові), лише системні, або лише реєстрові ролі, доступні для використання у реєстрі. _За замовчуванням встановлено_ `REGISTRY ROLES`. | ||
. Вкажіть змінну процесу (наприклад, `rolesResponse`), куди буде збережено відповідь. Ця змінна буде тимчасовою (transient). Це дозволяє ефективно управляти отриманими даними без зайвого зберігання інформації в базі даних. | ||
|
||
Результатом виконання запита буде повернення переліку назв ролей певного користувача для визначеного реалма: `List<String>`. | ||
|
||
.Приклад відповіді зі списком ролей у форматі JSON | ||
[source,json] | ||
---- | ||
[ | ||
"user", | ||
"admin", | ||
"hierarchy-registry-manager", | ||
"personnel-officer-admin", | ||
"reviewer" | ||
] | ||
---- | ||
|
||
Надалі ви зможете використовувати отриманий список ролей для різних цілей у бізнес-процесі. Наприклад, ви зможете отримати лише певну роль зі списку за індексом, сформувати payload із відповідним значенням та зберегти до тимчасової змінної для подальшого застосування у процесі: | ||
|
||
.Приклад groovy-скрипту для отримання першої ролі з масиву | ||
[source,groovy] | ||
---- | ||
// Визначення масиву ролей | ||
def roles = ["user", "admin", "hierarchy-registry-manager", "personnel-officer-admin", "reviewer"] | ||
// Отримання першої ролі з масиву | ||
def firstRole = roles[0] | ||
// Формування результату. Наприклад, створимо Map для тимчасової змінної payload | ||
def payload = [firstRole: firstRole] | ||
// Припустимо, що весь масив ролей є доступними ролями, які ми хочемо зберегти | ||
def availableRoles = roles | ||
// Запис даних у змінні процесу | ||
set_transient_variable('payload', payload) | ||
set_variable('availableRoles', availableRoles) | ||
---- | ||
|
||
== Приклад | ||
|
||
Ось референтний приклад, який показує, як відповідний делегат використовується у бізнес-процесі: | ||
|
||
.Референтний приклад. Призначення ролей та запуск бізнес-процесу за прямим посиланням | ||
image::best-practices/bp-assign-role-via-url/assign-role-via-url-3.png[] | ||
|
||
[TIP] | ||
==== | ||
[%collapsible] | ||
.Де можна знайти приклад бізнес-процесу? | ||
===== | ||
include::partial$snippets/demo-reg-reference-examples-ua.adoc[] | ||
|
||
Приклад BPMN-схеми процесу буде доступний у регламенті демо-реєстру за пошуком по ключовим словам -- *_reference-assign-role-officer_ та _reference-assign-role_*. | ||
|
||
Назви форм ви можете знайти всередині відповідних користувацьких задач (User Task) бізнес-процесів у полі *`Form key`*: | ||
|
||
* _reference-assign-role-start-form.json_ | ||
* _reference-role-assigned-info-form.json_ | ||
* _reference-role-not-assigned-error-info-form.json_ | ||
|
||
У Кабінеті користувача бізнес-процес буде доступний у розділі menu:Доступні послуги[📂 Бізнес-процеси по призначенню ролей через спеціальні посилання]. | ||
|
||
image::best-practices/bp-assign-role-via-url/assign-role-via-url-06.png[] | ||
===== | ||
==== | ||
|
||
== Пов'язані сторінки | ||
|
||
* xref:best-practices/bp-launch-via-url.adoc#get-keycloak-roles-from-user[Референтний приклад. Призначення ролей та запуск бізнес-процесу за прямим посиланням] | ||
* xref:bp-modeling/bp/element-templates/service-task-templates/save-user-roles.adoc[] | ||
* xref:bp-modeling/bp/element-templates/service-task-templates/user-roles/get-keycloak-roles-by-realm.adoc[] |
Oops, something went wrong.