//public async Task<IActionResult> Index(string userId) //{ // var viewModel = new List<UserRolesViewModel>(); // var user = await _userManager.FindByIdAsync(userId); // ViewData["Title"] = $"{user.UserName} - Roles"; // ViewData["Caption"] = $"Manage {user.Email}'s Roles."; // foreach (var role in _roleManager.Roles) // { // var userRolesViewModel = new UserRolesViewModel // { // RoleName = role.Name // }; // if (await _userManager.IsInRoleAsync(user, role.Name)) // { // userRolesViewModel.Selected = true; // } // else // { // userRolesViewModel.Selected = false; // } // viewModel.Add(userRolesViewModel); // } // var model = new ManageUserRolesViewModel() // { // UserId = userId, // UserRoles = viewModel // }; // return View(model); //} //public async Task<IActionResult> Update(string id, ManageUserRolesViewModel model) //{ // var user = await _userManager.FindByIdAsync(id); // var roles = await _userManager.GetRolesAsync(user); // var result = await _userManager.RemoveFromRolesAsync(user, roles); // result = await _userManager.AddToRolesAsync(user, model.UserRoles.Where(x => x.Selected).Select(y => y.RoleName)); // var currentUser = await _userManager.GetUserAsync(User); // await _signInManager.RefreshSignInAsync(currentUser); // await Infrastructure.Identity.Seeds.DefaultSuperAdminUser.SeedSuperAdminAsync(_userManager, _roleManager); // _notify.Success($"Updated Roles for User '{user.Email}'"); // return RedirectToAction("Index", new { userId = id }); //} public async Task <IActionResult> Update(string userId) { ViewBag.userId = userId; var user = await _userManager.FindByIdAsync(userId); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found"; return(View("NotFound")); } ViewBag.UserName = user.UserName; var model = new List <UserRolesEditViewModel>(); foreach (var role in _roleManager.Roles) { var userRolesEditViewModel = new UserRolesEditViewModel { RoleId = role.Id, RoleName = role.Name }; if (await _userManager.IsInRoleAsync(user, role.Name)) { userRolesEditViewModel.Selected = true; } else { userRolesEditViewModel.Selected = false; } model.Add(userRolesEditViewModel); } return(View(model)); }
public async Task <IActionResult> EditUser([FromBody] UserRolesEditViewModel model) { User user = await userManager.FindByIdAsync(model.userId); if (user != null) { var userRoles = await userManager.GetRolesAsync(user); var addedRoles = model.roles.Except(userRoles); var removedRoles = userRoles.Except(model.roles); await userManager.AddToRolesAsync(user, addedRoles); await userManager.RemoveFromRolesAsync(user, removedRoles); return(Ok()); } return(NotFound()); }