public async Task <IActionResult> DeleteUser(string id) { var user = await Usermanager.FindByIdAsync(id); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {id} cannot be found"; return(View("NotFound")); } else { if (await Usermanager.IsInRoleAsync(user, "Admin") || await Usermanager.IsInRoleAsync(user, "Employee")) { var claims = await Usermanager.GetClaimsAsync(user); var claimResult = await Usermanager.RemoveClaimsAsync(user, claims); if (!claimResult.Succeeded) { ModelState.AddModelError("", "Cannot remove user existing claims"); return(View("ListUsers")); } var roles = await Usermanager.GetRolesAsync(user); var RolesResult = await Usermanager.RemoveFromRolesAsync(user, roles); if (!RolesResult.Succeeded) { ModelState.AddModelError("", "Cannot remove user existing roles"); return(View("ListUsers")); } user.isactive = false; var result1 = await Usermanager.UpdateAsync(user); if (result1.Succeeded) { return(RedirectToAction("ListUsers")); } foreach (var error in result1.Errors) { ModelState.AddModelError("", error.Description); } return(View("ListUsers")); } var result = await Usermanager.DeleteAsync(user); if (result.Succeeded) { return(RedirectToAction("ListUsers")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return(View("ListUsers")); } }
public async Task <IActionResult> EditRole(string id) { // Find the role by Role ID var role = await Rolemanager.FindByIdAsync(id); if (role == null) { ViewBag.ErrorMessage = $"Role with Id = {id} cannot be found"; return(View("NotFound")); } var model = new EditRoleViewModel { Id = role.Id, RoleName = role.Name }; // Retrieve all the Users foreach (var user in Usermanager.Users) { // If the user is in this role, add the username to // Users property of EditRoleViewModel. This model // object is then passed to the view for display if (await Usermanager.IsInRoleAsync(user, role.Name)) { model.Users.Add(user.UserName); } } return(View(model)); }
public async Task <IActionResult> EditUsersInRole(List <UserRoleViewModel> model, string roleId) { var role = await Rolemanager.FindByIdAsync(roleId); if (role == null) { ViewBag.ErrorMessage = $"Role with Id = {roleId} cannot be found"; return(View("NotFound")); } for (int i = 0; i < model.Count; i++) { var user = await Usermanager.FindByIdAsync(model[i].UserId); IdentityResult result = null; if (model[i].IsSelected && !(await Usermanager.IsInRoleAsync(user, role.Name))) { result = await Usermanager.AddToRoleAsync(user, role.Name); } else if (!model[i].IsSelected && await Usermanager.IsInRoleAsync(user, role.Name)) { result = await Usermanager.RemoveFromRoleAsync(user, role.Name); } else { continue; } if (result.Succeeded) { if (i < (model.Count - 1)) { continue; } else { return(RedirectToAction("EditRole", new { Id = roleId })); } } } return(RedirectToAction("EditRole", new { Id = roleId })); }
public async Task <IActionResult> ManageRoles(string userId) { ViewBag.userId = userId; string loggedInAdminId = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value; var user = await Usermanager.FindByIdAsync(userId); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found"; return(View("NotFound")); } var model = new List <UserRoles>(); foreach (var role in Rolemanager.Roles) { if (User.IsInRole("Super Admin") || User.IsInRole("Admin") && role.Name != "Admin" && role.Name != "Super Admin") { var Eachuserviewmodel = new UserRoles { RoleId = role.Id, RoleName = role.Name }; if (await Usermanager.IsInRoleAsync(user, role.Name)) { Eachuserviewmodel.isSelected = true; } else { Eachuserviewmodel.isSelected = false; } model.Add(Eachuserviewmodel); } } return(View(model)); }
public async Task <IActionResult> EditUsersInRole(string roleId) { ViewBag.roleId = roleId; var role = await Rolemanager.FindByIdAsync(roleId); if (role == null) { ViewBag.ErrorMessage = $"Role with Id = {roleId} cannot be found"; return(View("NotFound")); } var model = new List <UserRoleViewModel>(); foreach (var user in Usermanager.Users) { if (User.IsInRole("Super Admin") || User.IsInRole("Admin") && !(await Usermanager.IsInRoleAsync(user, "Admin") || await Usermanager.IsInRoleAsync(user, "Super Admin"))) { var userRoleViewModel = new UserRoleViewModel { UserId = user.Id, UserName = user.UserName }; if (await Usermanager.IsInRoleAsync(user, role.Name)) { userRoleViewModel.IsSelected = true; } else { userRoleViewModel.IsSelected = false; } model.Add(userRoleViewModel); } } return(View(model)); }