예제 #1
0
        public async Task <ActionResult> SubmitSelected(SelectionUsersRolesViewModel model)
        {
            var account = new AccountController();
            var roles   = context.Roles.OrderBy(r => r.Name).ToList();

            foreach (var user in model.Users)
            {
                foreach (var role in user.Roles)
                {
                    if (needRemoveRole(account.UserManager, user, role))
                    {
                        await account.UserManager.RemoveFromRoleAsync(user.Id, role.Name);
                    }
                    else if (needAddRole(account.UserManager, user, role))
                    {
                        await account.UserManager.AddToRoleAsync(user.Id, role.Name);
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #2
0
        //
        // GET: /Roles?tc=ulstu
        public ActionResult Index(string tc = "")
        {
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));

            var model = new SelectionUsersRolesViewModel();
            var roles = new List <IdentityRole>();

            if (tc.Equals("") || tc.Equals("empty"))
            {
                roles = context.Roles.Where(x => !x.Name.Contains("_")).OrderBy(r => r.Name).ToList();//только общие роли admin и manager
            }
            else
            {
                tc    = string.Format("_{0}", tc);
                roles = context.Roles.Where(x => x.Name.Contains(tc)).OrderBy(r => r.Name).ToList();//роли admin_tc, etc.
            }

            foreach (var user in context.Users)
            {
                var userViewModel = new SelectionUserEditorViewModel()
                {
                    Id       = user.Id,
                    UserName = user.UserName
                };
                userViewModel.Roles = roles.Select(
                    role => new SelectionRoleEditorViewModel()
                {
                    Name     = role.Name,
                    Selected = userManager.IsInRole(user.Id, role.Name)
                }).ToList();

                model.Users.Add(userViewModel);
            }
            ViewBag.Roles = roles;
            return(View(model));
        }