Example #1
0
        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"));
        }
Example #2
0
        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));
        }