public async Task <IActionResult> OnPostAsync(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var user = await _context.Users.FindAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            try
            {
                _context.Users.Remove(user);
                await _context.SaveChangesAsync();

                return(RedirectToPage("./Index"));
            }
            catch (DbUpdateException /* ex */)
            {
                //Log the error (uncomment ex variable name and write a log.)
                return(RedirectToAction("./Delete",
                                        new { id, saveChangesError = true }));
            }
        }
示例#2
0
        public async Task <IActionResult> OnPostAsync(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var user = await _context.Users.FindAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            try
            {
                //var claims = await _userManager.GetClaimsAsync(user);

                // get all users with admin permissions
                var currentAdmins = await _userManager.GetUsersForClaimAsync(Constants.IsAdminClaim);

                // get all registered users with IsAdmin claim set to False
                var registeredUsers = await _userManager.GetUsersForClaimAsync(Constants.IsNotAdminClaim);

                // remove IsAdmin - False claims from every created user
                foreach (var u in registeredUsers)
                {
                    await _userManager.RemoveClaimAsync(u, Constants.IsNotAdminClaim);
                }
                await _context.SaveChangesAsync();

                // check if selected user has admin permissions if not grant him permissions
                if (!currentAdmins.Contains(user))
                {
                    await _userManager.AddClaimAsync(user, Constants.IsAdminClaim);

                    await _context.SaveChangesAsync();
                }
                return(RedirectToPage("./Index"));
            }
            catch (DbUpdateException /* ex */)
            {
                //Log the error (uncomment ex variable name and write a log.)
                return(RedirectToAction("./GrantAdminRights",
                                        new { id, saveChangesError = true }));
            }
        }