public async Task <IActionResult> DeleteRole(string roleId) { var role = await RoleMangerService.FindByIdAsync(roleId); if (role == null) { ViewBag.ErrorMessage = $"Role with id: {roleId} cannot be found"; return(View("NotFound")); } else { try { var result = await RoleMangerService.DeleteAsync(role); if (result.Succeeded) { return(RedirectToAction("ListRole")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return(View("LisrRole")); } catch (DbUpdateException e) { logger.LogError($"Error deleting role {e}"); ViewBag.ErrorTitle = $"{role.Name} role is in use"; ViewBag.ErrorMessage = $"{role.Name} role cannot be deleted as there are users in this role"; return(View("Error")); } } }
public async Task <IActionResult> EditUsersInRole(List <UserRoleViewModel> model, string roleId) { var role = RoleMangerService.FindByIdAsync(roleId); if (role == null) { ViewBag.ErrorMessage = $"The 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; var isInRole = await UserManager.IsInRoleAsync(user, role.Result.Name); if (model[i].IsSelected && !(isInRole)) { result = await UserManager.AddToRoleAsync(user, role.Result.Name); } else if (!model[i].IsSelected && isInRole) { result = await UserManager.RemoveFromRoleAsync(user, role.Result.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> EditUsersInRole(string roleId) { ViewBag.roleId = roleId; var role = RoleMangerService.FindByIdAsync(roleId); if (role == null) { ViewBag.ErrorMessage = $"The role with id : {roleId} cannot be found"; return(View("NotFound")); } /* * var usersInRole = await UserManager.GetUsersInRoleAsync(role.Name); * if (usersInRole == null) * { * ViewBag.ErrorMessage = $"No users for this role id {roleId}."; * } */ var model = new List <UserRoleViewModel>(); var allUsers = UserManager.Users; var UserInThisRole = await UserManager.GetUsersInRoleAsync(role.Result.Name); foreach (var user in allUsers) { var userRoleViewModel = new UserRoleViewModel { UserId = user.Id, UserName = user.UserName, IsSelected = false }; if (UserInThisRole.Any(x => x.Id == userRoleViewModel.UserId)) { userRoleViewModel.IsSelected = true; } model.Add(userRoleViewModel); } return(View(model)); }
public async Task <IActionResult> EditRole(string id) { var role = await RoleMangerService.FindByIdAsync(id); if (role != null) { var model = new EditRoleViewModel { Id = role.Id, RoleName = role.Name, }; foreach (var user in await UserManager.GetUsersInRoleAsync(role.Name)) { model.Users.Add(user.UserName); } return(View(model)); } ViewBag.ErrorMassage = $"role with id: {id} cannot be found!"; return(View("NotFound")); }
public async Task <IActionResult> EditRole(EditRoleViewModel model) { var role = await RoleMangerService.FindByIdAsync(model.Id); if (role != null) { role.Name = model.RoleName; var result = await RoleMangerService.UpdateAsync(role); if (result.Succeeded) { return(RedirectToAction("ListRole")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } //in case there were errors, return to edit return(View(model)); } ViewBag.ErrorMassage = $"role with id: {model.Id} cannot be found!"; return(View("NotFound")); }