예제 #1
0
 public async Task <ActionResult> Delete(CheckboxListModel model)
 {
     foreach (var user in await GetSelectedUsers(model))
     {
         await userManager.DeleteAsync(user);
     }
     return(RedirectToAction("Index"));
 }
        public async Task <IActionResult> Unblock(CheckboxListModel model)
        {
            string current = User.Identity.Name;

            if (current != null)
            {
                return(await ChangeStatus(current, model, Unblocked));
            }
            return(RedirectToAction("Login", "Account"));
        }
 private void DeleteUsers(string current, CheckboxListModel model, List <User> users, ref bool shouldQuit)
 {
     for (int i = 0; i < model.Selected.Count; i++)
     {
         if (!DeleteUser(model.Selected[i], users[i], current))
         {
             shouldQuit = true;
         }
     }
 }
예제 #4
0
        public async Task <ActionResult> MakeAdmin(CheckboxListModel model)
        {
            foreach (var user in await GetSelectedUsers(model))
            {
                await DeleteAllRolesAsync(user);

                await userManager.AddToRoleAsync(user, UserRoles.admin.ToString());
            }
            return(RedirectToAction("Index"));
        }
예제 #5
0
        public async Task <ActionResult> Unlock(CheckboxListModel model)
        {
            foreach (var user in await GetSelectedUsers(model))
            {
                await userManager.SetLockoutEnabledAsync(user, false);

                await userManager.ResetAccessFailedCountAsync(user);
            }
            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> ChangeStatus(string current, CheckboxListModel model, string status)
        {
            bool blockYourself = ChangeUsersStatus(model, db.Users.ToList(), current, status);
            await db.SaveChangesAsync();

            if (blockYourself || db.Users.FirstOrDefault(u => u.Email == current).Status == Blocked)
            {
                return(await Logout());
            }
            return(RedirectToAction("Enter", "Home"));
        }
 private bool ChangeUsersStatus(CheckboxListModel model, List <User> users, string current, string status)
 {
     for (int i = 0; i < model.Selected.Count; i++)
     {
         if (!ChangeUserStatus(model.Selected[i], users[i], current, status))
         {
             return(true);
         }
     }
     return(false);
 }
예제 #8
0
        public async Task <ActionResult> Lock(CheckboxListModel model)
        {
            foreach (var user in await GetSelectedUsers(model))
            {
                await userManager.SetLockoutEnabledAsync(user, true);

                await userManager.SetLockoutEndDateAsync(user, DateTimeOffset.MaxValue);
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult Enter()
        {
            ViewBag.Items = db.Users.ToArray();
            var model = new CheckboxListModel {
                Selected = new List <bool>()
            };

            for (int i = 0; i < db.Users.Count(); i++)
            {
                model.Selected.Add(false);
            }
            return(View(model));
        }
        private async Task <IActionResult> DeleteUsersAsync(string current, CheckboxListModel model, List <User> users)
        {
            bool shouldQuit = false;

            DeleteUsers(current, model, users, ref shouldQuit);
            await db.SaveChangesAsync();

            if (shouldQuit)
            {
                return(await Logout());
            }
            return(RedirectToAction("Enter", "Home"));
        }
예제 #11
0
        public async Task <IActionResult> IndexAsync()
        {
            List <UserModel> usersList = new List <UserModel>();

            await AddUsersAsync(userManager.Users, usersList);

            ViewBag.Users = usersList;
            var model = new CheckboxListModel {
                Selected = new List <bool>(new bool[usersList.Count])
            };

            return(View(model));
        }
        public async Task <IActionResult> Delete(CheckboxListModel model)
        {
            string current = User.Identity.Name;

            if (current != null)
            {
                if (db.Users.FirstOrDefault(u => u.Email == current).Status == Blocked)
                {
                    return(await Logout());
                }
                return(await DeleteUsersAsync(current, model, await db.Users.ToListAsync()));
            }
            return(RedirectToAction("Login", "Account"));
        }
예제 #13
0
        public async Task <IList <IdentityUser> > GetSelectedUsers(CheckboxListModel model)
        {
            var          result      = new List <IdentityUser>();
            IdentityUser currentUser = await userManager.GetUserAsync(HttpContext.User);

            var users = userManager.Users.ToList();

            for (int i = 0; i < users.Count; i++)
            {
                if (model.Selected[i] && users[i].Id != currentUser.Id)
                {
                    result.Add(users[i]);
                }
            }
            return(result);
        }