diff --git a/server/StrDss.Api/Controllers/UsersController.cs b/server/StrDss.Api/Controllers/UsersController.cs index 0e1235b5..39a7f735 100644 --- a/server/StrDss.Api/Controllers/UsersController.cs +++ b/server/StrDss.Api/Controllers/UsersController.cs @@ -142,5 +142,13 @@ public async Task UpdateUser(long userId, UserUpdateDto dto) return Ok(); } + + [ApiAuthorize] + [HttpGet("currentuser/bceiduserinfo", Name = "GetBceidUserInfo")] + public async Task GetBceidUserInfo() + { + var userinfo = await _userService.GetBceidUserInfo(); + return Ok(userinfo); + } } } diff --git a/server/StrDss.Service/UserService.cs b/server/StrDss.Service/UserService.cs index 39f3b1d0..cbd04047 100644 --- a/server/StrDss.Service/UserService.cs +++ b/server/StrDss.Service/UserService.cs @@ -26,6 +26,7 @@ public interface IUserService Task UpdateBceidUserInfo(long userId, string firstName, string LastName); Task GetUserByIdAsync(long userId); Task>> UpdateUserAsync(UserUpdateDto dto); + Task GetBceidUserInfo(); } public class UserService : ServiceBase, IUserService { @@ -496,5 +497,24 @@ public async Task>> ValidateUserUpdateDto(UserUp return errors; } + + public async Task GetBceidUserInfo() + { + if (_currentUser.IdentityProviderNm == StrDssIdProviders.BceidBusiness) + { + try + { + var (error, account) = await _bceid.GetBceidAccountCachedAsync(_currentUser.UserGuid, "", StrDssIdProviders.BceidBusiness, _currentUser.UserGuid, _currentUser.IdentityProviderNm); + return account; + } + catch (Exception ex) + { + _logger.LogError($"BCeID Web call failed - {ex.Message}", ex); + _logger.LogInformation("BCeID Web call failed - Skipping UpdateBceidUserInfo "); + } + } + + return null; + } } }