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

GetCurrentUserInformationQuery

Назначение

Получение информации о текущем авторизованном пользователе (профиль). UserId и TenantId берутся из TenantedUserIdentityContext.

Цели

  • Загрузить UserEntity текущего пользователя
  • Получить роли через IRolesProvider
  • Получить связи с Identity Providers (UserIdentityEntity)

Query: GetCurrentUserInformationQuery

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

Входные параметры отсутствуют. UserId и TenantId извлекаются из IdentityContext (TenantedUserIdentityContext.Actor).

Result: GetCurrentUserInformationQueryResult

ПолеТипОбязательноеОписание
UserIdGuidДаИдентификатор пользователя
NameFullNameДаФИО
EmailstringДаEmail
PhoneNumberstring?НетНомер телефона
RolesIReadOnlyCollection<RolesDomainModel>ДаРоли пользователя
UserIdentitiesIReadOnlyCollection<UserIdentityDomainModel>ДаСвязи с Identity Providers (Provider, ProviderUserId, CreatedAt)

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

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

  1. Получить UserId из TenantedUserIdentityContext.Actor.Id.
  2. Получить UserEntity через userEntityRepository.FindById.
  3. Если не найден — ошибка «Пользователь не найден».
  4. Загрузить роли через rolesProvider.GetByUserId.
  5. Загрузить UserIdentityEntity через userIdentityEntityRepository.GetByUserId.
  6. Сформировать GetCurrentUserInformationQueryResult.
  7. Вернуть результат.

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

  • Пользователь не найден: ошибка «Пользователь не найден».
  • Ошибка при загрузке ролей: возвращается Result от rolesProvider.

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

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