GetRoleListQuery
Назначение
Получение списка ролей с информацией о scopes (IncludedScopes, ExcludedScopes, ScopesFromTemplate). Требует разрешение Identity.Roles.View.
Цели
- Загрузить все RoleEntity тенанта
- Для каждой роли: подсчитать IncludedScopes, ExcludedScopes, ScopesFromTemplate
- Загрузить RoleTemplate для каждой роли
Query: GetRoleListQuery
Входные данные
Входные параметры отсутствуют. TenantId из контекста (через tenanted repository).
Result: GetRoleListQueryResult
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| Entries | IReadOnlyCollection<GetRoleListQueryResultEntry> | Да | Список ролей |
ResultEntry: GetRoleListQueryResultEntry
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| RoleId | long | Да | Идентификатор роли |
| CreatedAt | DateTimeOffset | Да | Дата создания |
| Name | string | Да | Название роли |
| Code | string | Да | Код роли |
| Scopes | RoleScopesInfoDomainModel | Да | IncludedScopes, ExcludedScopes, ScopesFromTemplate |
| RoleTemplate | RoleTemplateDomainModel? | Нет | Шаблон роли |
Бизнес-логика
Основной сценарий
- Вызвать
roleEntityRepository.Search(все роли тенанта), сортировка по Name. - Загрузить RoleTemplateEntity, RoleTemplateScopeReferenceEntity, RoleScopeReferenceEntity.
- Для каждой роли: подсчитать IncludedScopes, ExcludedScopes, ScopesFromTemplate из RoleScopeReference и TemplateScopes.
- Сформировать Entries.
- Вернуть результат.