public async Task <ActionResult> ConfirmDetails(UserManagerEditViewModel model) { //All users should have User permission by default if (model.Permissions == null || model.Permissions.Length == 0) { return(RedirectToAction("Edit", "UserManager", model.Id)); } var user = await UserManager.FindByIdAsync(model.Id); var NewPermissions = model.Permissions.Trim().Split(", "); if (user != null) { user.Email = model.Email; user.UserName = model.DisplayName; var response = new StatusReponse(); var update = await UserManager.UpdateAsync(user); var OldPermissions = await UserManager.GetRolesAsync(user); var RemoveOldPermissions = await UserManager.RemoveFromRolesAsync(user, OldPermissions); var AddNewPermissions = await UserManager.AddToRolesAsync(user, NewPermissions); if (update.Succeeded && AddNewPermissions.Succeeded && RemoveOldPermissions.Succeeded) { response.Result = true; return(Ok(response)); } } return(NoContent()); }
public async Task <IActionResult> Edit(Guid id, UserManagerEditViewModel vm) { var user = await _userManager.Users.FirstAsync(u => u.Id == id); if (id == null) { return(NotFound()); } if (ModelState.IsValid) { try { var roles = await _userManager.GetRolesAsync(user); var role = _roleManager.FindByNameAsync(roles.First()).Result; user.UserName = vm.User.Email; user.Email = vm.User.Email; user.Phone = vm.User.Phone; user.FirstName = vm.User.FirstName; user.LastName = vm.User.LastName; // Console.WriteLine(role.Name + "Current role"); // Console.WriteLine(vm.Role.Name + "New role"); if (role.Name != vm.Role !.Name) { await _userManager.RemoveFromRolesAsync(user, roles); await _userManager.AddToRoleAsync(user, vm.Role.Name); } await _userManager.UpdateAsync(user); } catch (DbUpdateConcurrencyException) { if (!UserExists(user.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } vm.Roles = new SelectList(_roleManager.Roles, nameof(AppRole.Name), nameof(AppRole.Name)); return(View(vm)); }
// GET: UserManager/Edit/5 public async Task <IActionResult> Edit(Guid?id) { if (id == null) { return(NotFound()); } var user = await _userManager.Users.FirstAsync(u => u.Id == id); var roles = await _userManager.GetRolesAsync(user); var role = _roleManager.FindByNameAsync(roles.First()).Result; var vm = new UserManagerEditViewModel { User = user, Role = role, Roles = new SelectList(_roleManager.Roles.Where(r => !roles.Contains(r.Name)), nameof(AppRole.Name), nameof(AppRole.Name)), }; return(View(vm)); }
public async Task <ActionResult <UserManagerEditViewModel> > Edit(string id) { if (id.Length == 0 || id == null) { return(RedirectToAction("Index", "UserManager")); } var user = await UserManager.FindByIdAsync(id); if (user == null) { return(RedirectToAction("Index", "UserManager")); } var UserRights = await UserManager.GetRolesAsync(user); StringBuilder stringBuilder = new StringBuilder(); for (int j = 0; j < UserRights.Count; j++) { stringBuilder.Append(UserRights[j]); if (UserRights.Count - 1 != j) { stringBuilder.Append(", "); } } var model = new UserManagerEditViewModel { Email = user.Email, DisplayName = user.UserName, Id = user.Id, Permissions = stringBuilder.ToString() }; return(Ok(model)); }