public async Task <IActionResult> RemoveFromRole(EditUsersRoleViewModel model) { if (ModelState.IsValid && model.Ids != null) { foreach (string id in model.Ids) { AppUser user = await userManager.FindByIdAsync(id); if (user != null) { IdentityResult result = await userManager.RemoveFromRoleAsync(user, model.Name); if (!result.Succeeded) { foreach (IdentityError err in result.Errors) { ModelState.AddModelError("", err.Description); } } } } } if (ModelState.IsValid) { return(RedirectToAction(nameof(Index))); } return(await RemoveFromRole(model.RoleId)); }
public async Task <ActionResult> EditUsersRole(string idRole) { if (string.IsNullOrEmpty(idRole)) { ViewBag.ErrorMessage = $"The role must exist and not empty in the URL !"; return(View("NotFound")); } IdentityRole role = await this.roleManager.FindByIdAsync(idRole); if (role is null) { ViewBag.ErrorMessage = $"The role ID {idRole} cannot be found !"; return(View("NotFound")); } List <EditUsersRoleViewModel> Models = new List <EditUsersRoleViewModel>(); foreach (AppUser user in userManager.Users) { EditUsersRoleViewModel model = new EditUsersRoleViewModel() { UserId = user.Id, UserName = user.UserName, IsSelected = false }; if (await userManager.IsInRoleAsync(user, role.Name)) { model.IsSelected = true; } Models.Add(model); } ViewBag.RoleId = idRole; return(View(Models)); }