Платформа 3V/Отчет/6. Дополнительные действия в отчете/Фильтр выпадающих списков/Фильтр от значений атрибута из токена пользователя: различия между версиями
Перейти к навигации
Перейти к поиску
G.kalin (обсуждение | вклад) |
|||
(не показано 5 промежуточных версий 3 участников) | |||
Строка 68: | Строка 68: | ||
# Во вкладке пользователя выбираем вкладку "Attributes". | # Во вкладке пользователя выбираем вкладку "Attributes". | ||
# Добавляете атрибут и его значение. | # Добавляете атрибут и его значение. | ||
+ | # Необходимо убедиться, что для атрибута есть маппер в KeyCloak (1. Clients, Corp-engine, Mappers или 2. Client Scopes, Profile, Mappers).[[Платформа_3V/Права_доступа/Настройка_значений_атрибута_пользователя_в_KeyCloak|Подробнее]]. | ||
[[Файл:Настройка значений атрибута пользователя в KeyCloak.png|left|text-bottom|600px|thumb|Настройка значений атрибута пользователя в KeyCloak]] | [[Файл:Настройка значений атрибута пользователя в KeyCloak.png|left|text-bottom|600px|thumb|Настройка значений атрибута пользователя в KeyCloak]] |
Текущая версия на 07:29, 23 ноября 2021
Для фильтрации справочников в отчёте от значений атрибута из токена пользователя:
- Необходимо добавить пользовательский атрибут в токен Настройка пользовательского атрибута в Keycloak
- Заполнить значение атрибута для пользователя или роли #Настройка значений атрибута пользователя в KeyCloak
- Использовать операнд на атрибуте токена TokenAttributeFormulaOperandDto в фильтре справочника по формуле FormulaConditionalDictionaryFilterDto.
Настройка фильтрации справочника в отчет по значению атрибута из токена
- Для фильтрации справочника по значению атрибута из токена необходимо использовать фильтр на формуле FormulaConditionalDictionaryFilterDto.
- В качестве операнда будет использоваться операнд, который получает значения из атрибута в токена TokenAttributeFormulaOperandDto.
Пример фильтра для справочника отчёта по значению атрибута из токена:
1 {
2 "filter": {
3 "value": {
4 "expression": "[0]",
5 "operands": [
6 {
7 "attributeId": "test_attribute",
8 "discriminator": "TokenAttributeFormulaOperandDto"
9 }
10 ],
11 "discriminator": "FormulaDto"
12 },
13 "attributeId": 1,
14 "attribute": {
15 "Id": 1,
16 "discriminator": "OwnAttributeDefinitionDto"
17 },
18 "conditionType": "AttributeInCollection",
19 "inversion": false,
20 "conditionId": null,
21 "discriminator": "FormulaConditionalDictionaryFilterDto"
22 }
23 }
Предопределенные атрибуты
Предопределенные атрибуты нужно для удобного доступа к "системным" (например: роли пользователя, логин пользователя и тд..) атрибутам токена, т.к. доступ к их значения отличается от доступа к значениям пользовательского атрибута. Все идентификаторы преопределенных атрибутов начинаются с специального символа '$'.
Преопределенный идентификатор | Предопределяемый атрибут | Определение |
---|---|---|
$Role | http://schemas.microsoft.com/ws/2008/06/identity/claims/role | Роли пользователя |
Пример использования предопределенного идентификатора атрибута токена в формуле.
1 {
2 "expression": "if(in('Test Role', [0]), 2, 3)",
3 "operands": [
4 {
5 "id": 0,
6 "AttributeId": "$Role",
7 "discriminator": "TokenAttributeFormulaOperandDto"
8 }
9 ],
10 "discriminator": "FormulaDto"
11 }
Настройка значений атрибута пользователя в KeyCloak
- В Keycloak выбираем в блоке "Manage" пункт "Users".
- Выбираем нужного пользователя.
- Во вкладке пользователя выбираем вкладку "Attributes".
- Добавляете атрибут и его значение.
- Необходимо убедиться, что для атрибута есть маппер в KeyCloak (1. Clients, Corp-engine, Mappers или 2. Client Scopes, Profile, Mappers).Подробнее.