public async Task <ActionResult> ManageUserAdmin(ManageUserAdminViewModel model) { List <string> AddRoles = new List <string>(); List <string> DeleteRoles = new List <string>(); var usr = _UserManager.FindByNameAsync(model.UserName).Result; foreach (string roleName in model.UserRoles.Keys) { if (model.UserRoles[roleName]) { AddRoles.Add(roleName); } //if true we want the user to have this role else { DeleteRoles.Add(roleName); } } await _UserManager.AddToRolesAsync(usr, AddRoles); //assign role await _UserManager.RemoveFromRolesAsync(usr, DeleteRoles); //remove other roles return(RedirectToAction("ManageAccounts", "Account")); }
public ActionResult ManageUserAdmin(string userName) { var model = new ManageUserAdminViewModel(); //viewmodel to be used in form model.UserName = userName; ViewBag.UserName = userName; var usr = _UserManager.FindByNameAsync(userName).Result; var roles = _Context.Roles.ToList(); for (int i = 0; i < roles.Count; i++) { string roleName = roles[i].Name; model.UserRoles.Add(roleName, _UserManager.IsInRoleAsync(usr, roleName).Result); } return(View(model)); //return view, with data stored in viewResult.ViewData.Model }