Перейти к основному содержимому

GetRoleListQuery

Назначение

Получение списка ролей с информацией о scopes (IncludedScopes, ExcludedScopes, ScopesFromTemplate). Требует разрешение Identity.Roles.View.

Цели

  • Загрузить все RoleEntity тенанта
  • Для каждой роли: подсчитать IncludedScopes, ExcludedScopes, ScopesFromTemplate
  • Загрузить RoleTemplate для каждой роли

Query: GetRoleListQuery

Входные данные

Входные параметры отсутствуют. TenantId из контекста (через tenanted repository).

Result: GetRoleListQueryResult

ПолеТипОбязательноеОписание
EntriesIReadOnlyCollection<GetRoleListQueryResultEntry>ДаСписок ролей

ResultEntry: GetRoleListQueryResultEntry

ПолеТипОбязательноеОписание
RoleIdlongДаИдентификатор роли
CreatedAtDateTimeOffsetДаДата создания
NamestringДаНазвание роли
CodestringДаКод роли
ScopesRoleScopesInfoDomainModelДаIncludedScopes, ExcludedScopes, ScopesFromTemplate
RoleTemplateRoleTemplateDomainModel?НетШаблон роли

Бизнес-логика

Основной сценарий

  1. Вызвать roleEntityRepository.Search (все роли тенанта), сортировка по Name.
  2. Загрузить RoleTemplateEntity, RoleTemplateScopeReferenceEntity, RoleScopeReferenceEntity.
  3. Для каждой роли: подсчитать IncludedScopes, ExcludedScopes, ScopesFromTemplate из RoleScopeReference и TemplateScopes.
  4. Сформировать Entries.
  5. Вернуть результат.

Диаграмма алгоритма

Связанные сущности