diff --git a/asg_form/Controllers/admin.cs b/asg_form/Controllers/admin.cs index f4ff52f..58e271d 100644 --- a/asg_form/Controllers/admin.cs +++ b/asg_form/Controllers/admin.cs @@ -249,21 +249,22 @@ else{ [Authorize] public async Task> getalladmin_v2(string? keyword, short pageindex = 1, short pagesize = 10) { - if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + bool isAdmin = this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"); + if (isAdmin) { 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(); - + a.msg = await userManager.Users.Paginate(pageindex, pagesize).Select(a => new { a.Id, a.Email, a.chinaname, a.UserName, a.Integral, a.officium,a.isadmin ,a.Roles}).ToListAsync(); + } else { 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(); + 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, a.isadmin, a.Roles }).ToListAsync(); } return Ok(a); } diff --git a/asg_form/Controllers/news.cs b/asg_form/Controllers/news.cs index ff21899..e6a0a3d 100644 --- a/asg_form/Controllers/news.cs +++ b/asg_form/Controllers/news.cs @@ -140,7 +140,11 @@ namespace asg_form.Controllers { using (TestDbContext ctx = new TestDbContext()) { - var qwq= await ctx.news.FindAsync(newsid); + var qwq= await ctx.news.Where(n => n.Id == newsid && n.Type == req_News.Type).FindAsync(newsid); + if (qwq == null) + { + return NotFound("News item not found or type mismatch."); + } qwq.msg=req_News.msg; qwq.Title=req_News.Title; qwq.FormName = user.UserName; diff --git a/asg_form/User.cs b/asg_form/User.cs index cf6410b..a1718ce 100644 --- a/asg_form/User.cs +++ b/asg_form/User.cs @@ -21,7 +21,9 @@ namespace asg_form public string? officium { get; set; } public int point { get; set; } - + + public bool isadmin { get; set; } + public List? Roles { get; set; } } public class Role : IdentityRole