public async Task <IActionResult> DeleteUser(string id) { string currentUserId = _userManager.GetUserId(User); if (currentUserId == id) { return(StatusCode((int)HttpStatusCode.BadRequest, _localizer["YouCanNotDeleteYourself"].Value)); } GoNorthUser user = await _userDbAccess.GetUserById(id); IdentityResult result = await _userManager.DeleteAsync(user); if (result.Succeeded) { _logger.LogInformation("User was deleted."); await _timelineService.AddTimelineEntry(TimelineEvent.UserDeleted, user.Email); return(Ok(id)); } else { return(ReturnErrorResultFromIdentityResult(result)); } }
/// <summary> /// Removes the unused roles for the users /// </summary> /// <param name="userDbAccess">Usser Db Access</param> /// <returns>Task</returns> private async Task RemoveUnusedRolesForUsers(IUserDbAccess userDbAccess) { List <string> existingRoles = RoleNames.GetAllRoleNames(); IList <GoNorthUser> users = await userDbAccess.GetUsers(0, int.MaxValue); foreach (GoNorthUser curUser in users) { IEnumerable <string> deletedRoles = curUser.Roles.Except(existingRoles); if (deletedRoles != null && deletedRoles.Any()) { GoNorthUser user = await userDbAccess.GetUserById(curUser.Id); user.Roles = curUser.Roles.Except(deletedRoles).ToList(); await userDbAccess.UpdateUser(user); } } }
/// <summary> /// Finds a user by his id /// </summary> /// <param name="userId">User Id</param> /// <param name="cancellationToken">Cancellation token</param> /// <returns>User</returns> public async Task <GoNorthUser> FindByIdAsync(string userId, CancellationToken cancellationToken) { GoNorthUser user = await _UserDbAccess.GetUserById(userId); return(user); }