GetCurrentUserInformationQuery
Назначение
Получение информации о текущем авторизованном пользователе (профиль). UserId и TenantId берутся из TenantedUserIdentityContext.
Цели
- Загрузить UserEntity текущего пользователя
- Получить роли через IRolesProvider
- Получить связи с Identity Providers (UserIdentityEntity)
Query: GetCurrentUserInformationQuery
Входные данные
Входные параметры отсутствуют. UserId и TenantId извлекаются из IdentityContext (TenantedUserIdentityContext.Actor).
Result: GetCurrentUserInformationQueryResult
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| UserId | Guid | Да | Идентификатор пользователя |
| Name | FullName | Да | ФИО |
| string | Да | ||
| PhoneNumber | string? | Нет | Номер телефона |
| Roles | IReadOnlyCollection<RolesDomainModel> | Да | Роли пользователя |
| UserIdentities | IReadOnlyCollection<UserIdentityDomainModel> | Да | Связи с Identity Providers (Provider, ProviderUserId, CreatedAt) |
Бизнес-логика
Основной сценарий
- Получить UserId из TenantedUserIdentityContext.Actor.Id.
- Получить UserEntity через
userEntityRepository.FindById. - Если не найден — ошибка «Пользователь не найден».
- Загрузить роли через
rolesProvider.GetByUserId. - Загрузить UserIdentityEntity через
userIdentityEntityRepository.GetByUserId. - Сформировать GetCurrentUserInformationQueryResult.
- Вернуть результат.
Альтернативные сценарии
- Пользователь не найден: ошибка «Пользователь не найден».
- Ошибка при загрузке ролей: возвращается Result от rolesProvider.