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

GetRoleByIdQuery

Назначение

Получение полной информации о роли по идентификатору. Возвращает RoleEntity, ScopesFromRole (переопределения Include/Exclude), ScopesFromTemplate (из шаблона), RoleTemplate. Требует разрешение Identity.Roles.View.

Цели

  • Загрузить RoleEntity
  • Загрузить RoleScopeReferenceEntity (Include/Exclude)
  • Загрузить RoleTemplateScopeReferenceEntity (scopes из шаблона)
  • Вернуть ScopesFromRole и ScopesFromTemplate

Query: GetRoleByIdQuery

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

ПолеТипОбязательноеОписание
RoleIdlongДаИдентификатор роли

Result: GetRoleByIdQueryResult

ПолеТипОбязательноеОписание
RoleIdlongДаИдентификатор роли
CreatedAtDateTimeOffsetДаДата создания
NamestringДаНазвание роли
CodestringДаКод роли
ScopesFromRoleIReadOnlyCollection<RoleScopeFromRoleDomainModel>ДаScopes из RoleScopeReference (Include/Exclude)
ScopesFromTemplateIReadOnlyCollection<RoleScopeFromTemplateDomainModel>ДаScopes из шаблона
RoleTemplateRoleTemplateDomainModel?НетШаблон роли

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

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

  1. Получить RoleEntity через roleEntityRepository.FindById.
  2. Если не найдена — ошибка «Роль не найдена».
  3. Если RoleTemplateId указан: загрузить RoleTemplateEntity, RoleTemplateScopeReferenceEntity.
  4. Загрузить RoleScopeReferenceEntity через GetByRoleId.
  5. Загрузить RoleScopeEntity и RoleScopeGroupEntity для ScopesFromRole и ScopesFromTemplate.
  6. Сформировать Result.
  7. Вернуть результат.

Альтернативные сценарии

  • Роль не найдена: ошибка «Роль не найдена» с метаданными RoleId.

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

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