public async Task <IActionResult> EditUsersInRole(ListUserRoleViewModel model, string roleId) { IdentityRole role = await RoleManager.FindByIdAsync(roleId); if (role == null) { _flashMessage.Danger("You can not edit a role that no longer exists"); return(RedirectToAction("ListUsers")); } var currentUser = await GetCurrentUserAsync(); IList <string> userRoles = await UserManager.GetRolesAsync(currentUser); if (!userRoles.Any(r => r.Equals("Admin"))) { _flashMessage.Danger("Your changes were not saved.\n You do not have the right permissions to edit user list in a role."); return(RedirectToAction("ListUsers")); } for (var i = 0; i < model.List.Count; i++) { Customer user = await UserManager.FindByIdAsync(model.List[i].UserId); IdentityResult result; if (model.List[i].IsSelected && !(await UserManager.IsInRoleAsync(user, role.Name))) { user.UserName = user.Email; result = await UserManager.AddToRoleAsync(user, role.Name); } else if (!model.List[i].IsSelected && await UserManager.IsInRoleAsync(user, role.Name)) { user.UserName = user.Email; result = await UserManager.RemoveFromRoleAsync(user, role.Name); } else { continue; } if (!result.Succeeded) { continue; } if (i < (model.List.Count - 1)) { continue; } _flashMessage.Confirmation("Edit user's role succeeded"); return(RedirectToAction("EditRole", new { Id = roleId })); } _flashMessage.Confirmation("Edit user's role succeeded"); return(RedirectToAction("EditRole", new { Id = roleId })); }
public async Task <IActionResult> EditUsersInRole(string roleId) { ViewBag.roleId = roleId; IdentityRole role = await RoleManager.FindByIdAsync(roleId); if (role == null) { _flashMessage.Danger("You can not edit a role that no longer exists"); return(RedirectToAction("ListUsers")); } var viewModel = new ListUserRoleViewModel() { List = new List <UserRoleViewModel>() }; foreach (Customer user in UserManager.Users.ToList()) { var userRoleViewModel = new UserRoleViewModel { UserId = user.Id, UserName = user.Email, Email = user.Email, }; if (await UserManager.IsInRoleAsync(user, role.Name)) { userRoleViewModel.IsSelected = true; } else { userRoleViewModel.IsSelected = false; } viewModel.List.Add(userRoleViewModel); } return(View(viewModel)); }
// GET: UserRoles/Delete/5 public ActionResult Delete(string uid, string rid) { if (uid == null || rid == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } UserRoles userRoles = db.IdentityUserRoles.Find(uid, rid); if (userRoles == null) { return(HttpNotFound()); } ListUserRoleViewModel model = new ListUserRoleViewModel { UserId = userRoles.UserId, UserName = db.Users.Find(userRoles.UserId).UserName, RoleId = userRoles.RoleId, Name = db.IdentityRoles.Find(userRoles.RoleId).Name }; return(View(model)); }
// GET: UserRoles public ActionResult Index(UserRolesMessageId?message) { ViewBag.StatusMessage = message == UserRolesMessageId.CreateUserRoleFail ? "No se pudo asignar el rol, el usuario ya tiene un rol asignado." : message == UserRolesMessageId.CreateRoleFail ? "No se pudo asignar el rol, debe crear al menos un rol para asignar." : ""; List <ListUserRoleViewModel> list = new List <ListUserRoleViewModel>(); foreach (var item in db.IdentityUserRoles.ToList()) { ListUserRoleViewModel model = new ListUserRoleViewModel { UserId = item.UserId, UserName = db.Users.Find(item.UserId).UserName, RoleId = item.RoleId, Name = db.Roles.Find(item.RoleId).Name }; list.Add(model); } return(View(list.ToList().OrderBy(item => item.UserName))); }