Назначение
Получение полной информации о роли по идентификатору. Возвращает RoleEntity, ScopesFromRole (переопределения Include/Exclude), ScopesFromTemplate (из шаблона), RoleTemplate. Требует разрешение Identity.Roles.View.
Цели
- Загрузить RoleEntity
- Загрузить RoleScopeReferenceEntity (Include/Exclude)
- Загрузить RoleTemplateScopeReferenceEntity (scopes из шаблона)
- Вернуть ScopesFromRole и ScopesFromTemplate
Query: GetRoleByIdQuery
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|
| RoleId | long | Да | Идентификатор роли |
Result: GetRoleByIdQueryResult
| Поле | Тип | Обязательное | Описание |
|---|
| RoleId | long | Да | Идентификатор роли |
| CreatedAt | DateTimeOffset | Да | Дата создания |
| Name | string | Да | Название роли |
| Code | string | Да | Код роли |
| ScopesFromRole | IReadOnlyCollection<RoleScopeFromRoleDomainModel> | Да | Scopes из RoleScopeReference (Include/Exclude) |
| ScopesFromTemplate | IReadOnlyCollection<RoleScopeFromTemplateDomainModel> | Да | Scopes из шаблона |
| RoleTemplate | RoleTemplateDomainModel? | Нет | Шаблон роли |
Бизнес-логика
Основной сценарий
- Получить RoleEntity через
roleEntityRepository.FindById.
- Если не найдена — ошибка «Роль не найдена».
- Если RoleTemplateId указан: загрузить RoleTemplateEntity, RoleTemplateScopeReferenceEntity.
- Загрузить RoleScopeReferenceEntity через GetByRoleId.
- Загрузить RoleScopeEntity и RoleScopeGroupEntity для ScopesFromRole и ScopesFromTemplate.
- Сформировать Result.
- Вернуть результат.
Альтернативные сценарии
- Роль не найдена: ошибка «Роль не найдена» с метаданными RoleId.
Диаграмма алгоритма
Связанные сущности