public async Task <IActionResult> Index() { if (AuthorizeManager.InAdminGroup(User.Identity.Name)) { // 返回所有產品 return(View(await _context.Product2.OrderBy(m => m.SellerEmail).ToListAsync())); } else if (AuthorizeManager.InSellerGroup(User.Identity.Name)) { // 返回符合上架者 Id 的產品 return(View(await _context.Product2.Where(m => m.SellerId == User.FindFirstValue(ClaimTypes.NameIdentifier)).ToListAsync())); } else { return(NotFound()); } }
public ActionResult Delete(string id, int returnPage = 0) { if (!AuthorizeManager.InAdminGroup(User.Identity.Name)) { return(NotFound()); } if (returnPage != 0) { HttpContext.Session.SetInt32("returnPage", returnPage); } var user = _context.Users.FirstOrDefault(u => u.Id == id); // 令超級管理員不能被刪除 if (user.Email == AuthorizeManager.SuperAdmin) { return(NotFound()); } // 查看該使用者是否為賣方,如果是...則刪除其產品 if (AuthorizeManager.InSellerGroup(user.Email)) { var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); _context.RemoveRange(_context.Product2.Where(m => m.SellerId == userId)); } // 查看該使用者是否為特權用戶,如果是...則從特權資料表和 HashTable 中移除 if (AuthorizeManager.InAuthorizedMember(user.Email)) { AuthorizeManager.UpdateAuthority("DeleteAll", _context, user.Email, null, null); } // 刪除該使用者 _context.Users.Remove(user); _context.SaveChanges(); _logger.LogWarning($"[{User.Identity.Name}]刪除了用戶[{user.Email}]"); // 返回之前的分頁 int?TryGetPage = HttpContext.Session.GetInt32("returnPage"); int page = TryGetPage != null ? (int)TryGetPage : 1; return(RedirectToAction("Index", new { page })); }