From 42424a5b7fe8a304652f004f6cc9ecc8d104fb07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=82=9C=E7=BF=94?= <2307953404@qq.com> Date: Sun, 18 Aug 2024 21:47:33 +0800 Subject: [PATCH] admin --- asg_form/Controllers/admin.cs | 47 +++++++++++++++++++++-------------- asg_form/Controllers/news.cs | 2 +- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/asg_form/Controllers/admin.cs b/asg_form/Controllers/admin.cs index fb99000..4ad1184 100644 --- a/asg_form/Controllers/admin.cs +++ b/asg_form/Controllers/admin.cs @@ -249,28 +249,39 @@ else{ [Authorize] public async Task> getalladmin_v2(string? keyword, short pageindex=1, short pagesize = 10) { - string id = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value; - var user = await userManager.FindByIdAsync(id); - var isadmin = await userManager.IsInRoleAsync(user, "admin"); - List roles = (List)await userManager.GetRolesAsync(user); - if (isadmin) + if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { - var a = new all_record(); - - if (keyword == null) - { - a.cout = userManager.Users.Count(); - a.msg = await userManager.Users.Paginate(pageindex, pagesize).Select(a => new {a.Id,a.Email,a.chinaname,a.UserName,a.Integral,a.officium}).ToListAsync(); + var users = userManager.Users; + var userList = new List(); - } - else + foreach (var user in users) { - - a.cout = userManager.Users.Where(a=>a.chinaname==keyword||a.UserName==keyword||a.Email==keyword).Count(); - a.msg = await userManager.Users.Where(a => a.chinaname == keyword || a.UserName == keyword || a.Email == keyword).Paginate(pageindex, pagesize).Select(a => new { a.Id, a.Email, a.chinaname, a.UserName, a.Integral, a.officium }).ToListAsync(); - } - return Ok(new { data = a,isadmin, roles }); + var isAdmin = await userManager.IsInRoleAsync(user, "admin"); + var roles = await userManager.GetRolesAsync(user); + userList.Add(new + { + user.Id, + user.Email, + user.chinaname, + user.UserName, + user.Integral, + user.officium, + isAdmin, + roles + }); + } + + var pagedUsers = userList.Skip((pageindex - 1) * pagesize).Take(pagesize).ToList(); + var totalCount = userList.Count; + + var result = new all_record + { + cout = totalCount, + msg = pagedUsers + }; + + return Ok(result); } else { diff --git a/asg_form/Controllers/news.cs b/asg_form/Controllers/news.cs index cf74a1a..ff21899 100644 --- a/asg_form/Controllers/news.cs +++ b/asg_form/Controllers/news.cs @@ -109,7 +109,7 @@ namespace asg_form.Controllers if (a) { TestDbContext ctx = new TestDbContext(); - await ctx.news.AddAsync(new T_news { Title = req_News.Title, msg = req_News.msg, FormName = user.UserName ,time=DateTime.Now,Type=req_News.Type}); + await ctx.news.AddAsync(new T_news { Title = req_News.Title, msg = req_News.msg,Type=req_News.Type, FormName = user.UserName ,time=DateTime.Now}); await ctx.SaveChangesAsync(); return "ok!"; }