Фильтрация справочников от значений атрибута из токена пользователя
< Платформа 3V | Отчет | 6. Дополнительные действия в отчете | Фильтр выпадающих списков
Перейти к навигации
Перейти к поиску
Версия от 07:08, 23 апреля 2021; A.saydakova (обсуждение | вклад) (A.saydakova переименовал страницу Платформа 3V/Отчет/Фильтрация справочников от значений атрибута из токена пользователя в Платформа 3V/Отчет/Фильтр выпадающих списков/Фильтрация справочников от значений атрибута из токена пользователя)
Для фильтрации справочников в отчёте от значений атрибута из токена пользователя:
- Необходимо добавить пользовательский атрибут в токен Настройка пользовательского атрибута в 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)