//public UsersRolesModel prepareModelForPost(UsersRolesModel model) //{ //} private UsersRolesModel createBasicModel() { var rolesFullIEnum = roleManager.Roles; var users = userManager.Users; UsersRolesModel returnModel = new UsersRolesModel() { Roles = rolesFullIEnum, Users = users, AdvancedSearchModel = new AdvancedSearchModel(rolesFullIEnum.Count()) }; return(returnModel); }
public async Task <ActionResult> UserRoles(string ID) { UsersRolesModel model = new UsersRolesModel(); model.UserID = ID; var user = await UserManager.FindByIdAsync(ID); var userRoleIDs = user.Roles.Select(x => x.RoleId).ToList(); model.UserRoles = RoleManager.Roles.Where(x => userRoleIDs.Contains(x.Id)).ToList(); model.Roles = RoleManager.Roles.Where(x => !userRoleIDs.Contains(x.Id)).ToList(); return(PartialView("_UserRoles", model)); }
public ActionResult Index() { var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var users = userManager.Users; var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); var rolesFullIEnum = roleManager.Roles; UsersRolesModel returnModel = new UsersRolesModel() { Roles = rolesFullIEnum, Users = users, AdvancedSearchModel = new AdvancedSearchModel(rolesFullIEnum.Count()) }; return(View(returnModel)); }
public ActionResult Index(UsersRolesModel model) { var searchString = model.AdvancedSearchModel.Keyword; var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var users = userManager.Users.ToList(); var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); var rolesFullIEnum = roleManager.Roles; //Check if user entered a search string if (!String.IsNullOrEmpty(searchString)) { //Keep only those users that match the search string users = users.Where(u => u.UserName.ToLower().Contains(searchString.ToLower())).ToList(); } //Determine which roles' checkboxes were checked by the user for (int i = 0; i < model.AdvancedSearchModel.RoleHolders.Count; i++) { var currentRole = model.AdvancedSearchModel.RoleHolders[i]; //If the user checked a checkbox, then for every user that's left after search string matching, //check if he is in current role if (currentRole.IsChecked) { //The loop is decrementing because if you increment and drop current, the whole list will shift by one //This will cause us to miss one element for (int j = users.Count - 1; j >= 0; j--) { ApplicationUser currentUser = users[j]; if (!userManager.IsInRole(currentUser.Id, currentRole.RoleName)) { //If not in current role, remove him from the list users.RemoveAt(j); } } } } UsersRolesModel returnModel = new UsersRolesModel() { Roles = rolesFullIEnum, Users = users, AdvancedSearchModel = new AdvancedSearchModel(rolesFullIEnum.Count()) }; return(View(returnModel)); }
public async Task <IActionResult> ManageUserRoles(string userId) { ViewBag.userId = userId; var user = await userManager.FindByIdAsync(userId); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found"; return(View("NotFound")); } //List the properties of the UsersRolesModel (RoleId, RoleName, IsSelected) var model = new List <UsersRolesModel>(); //Loop through each role we have in the application foreach (var role in roleManager.Roles) { var userRolesViewModel = new UsersRolesModel { RoleId = role.Id, RoleName = role.Name }; if (await userManager.IsInRoleAsync(user, role.Name)) { userRolesViewModel.IsSelected = true; } else { userRolesViewModel.IsSelected = false; } model.Add(userRolesViewModel); } return(View(model)); }