Esempio n. 1
0
        //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));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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));
        }