public async Task <IActionResult> EditUsersRoles(RoleCheckboxesViewModel viewModel) { if (!await UserIsAdmin()) { return(Redirect("/Profile/Profile")); } NeobooruUser usr = await _userManager.FindByIdAsync(viewModel.UserId); foreach (var roleCheckboxViewModel in viewModel.Checkboxes) { if (roleCheckboxViewModel.IsChecked) { await _userManager.AddToRoleAsync(usr, roleCheckboxViewModel.RoleName); } else { await _userManager.RemoveFromRoleAsync(usr, roleCheckboxViewModel.RoleName); } } return(RedirectToAction("ListUsers", "AdministrationPanel")); }
public async Task <IActionResult> EditUsersRoles(string id) { if (!await UserIsAdmin()) { return(Redirect("/Profile/Profile")); } ViewBag.SubsectionPages = _subsectionPages; ViewBag.ActiveSubpage = "Edit User"; NeobooruUser usr = await _userManager.FindByIdAsync(id); var usrRoles = await _userManager.GetRolesAsync(usr); string[] arr = new string[usrRoles.Count]; usrRoles.CopyTo(arr, 0); IQueryable <IdentityRole> roles = _roleManager.Roles; RoleCheckboxesViewModel rcvm = new RoleCheckboxesViewModel(); rcvm.UserId = usr.Id; foreach (var role in roles) { RoleCheckboxViewModel vm = new RoleCheckboxViewModel(); vm.RoleName = role.Name; vm.RoleId = role.Id; if (arr.Contains(role.Name)) { vm.IsChecked = true; } else { vm.IsChecked = false; } rcvm.Checkboxes.Add(vm); } return(View(rcvm)); }