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 })); } }
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 })); } }