diff --git a/asg_form/Controllers/AssignmentController.cs b/asg_form/Controllers/AssignmentController.cs index d871b50..3b615aa 100644 --- a/asg_form/Controllers/AssignmentController.cs +++ b/asg_form/Controllers/AssignmentController.cs @@ -239,7 +239,7 @@ namespace asg_form.Controllers if (!string.IsNullOrEmpty(userid)) { long idNum = long.Parse(userid); - query = query.Where(n => n.userId == idNum); + query = query.Where(n => n.userId == idNum && n.status!="2"); } //return Ok("用户不存在"); diff --git a/asg_form/Controllers/Team/Team_http.cs b/asg_form/Controllers/Team/Team_http.cs index f4e71b1..e116483 100644 --- a/asg_form/Controllers/Team/Team_http.cs +++ b/asg_form/Controllers/Team/Team_http.cs @@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; using Microsoft.EntityFrameworkCore; +using NPOI.OpenXmlFormats.Dml; using System.Security.Claims; using static allteam1; @@ -205,6 +206,24 @@ namespace asg_form.Controllers.Team } } + [Route("api/v3/form/all")] + [HttpGet] + [Authorize] + public async Task> GetformbyId(short page, short limit, int eventId) + { + using (var db = new TestDbContext()) + { + try + { + var query = await db.Forms.FindAsync(eventId); + return Ok(new { code = 200, message = "没有完成的接口" }); + } + catch (Exception ex) + { + return Ok(new { code = 500, message = "服务器错误", ex }); + } + } + } } } diff --git a/asg_form/Controllers/admin.cs b/asg_form/Controllers/admin.cs index a66eccc..6f5f12a 100644 --- a/asg_form/Controllers/admin.cs +++ b/asg_form/Controllers/admin.cs @@ -368,7 +368,13 @@ namespace asg_form.Controllers } - + public class tmpUserAdd + { + public string UserName { get; set; } + public string Password { get; set; } + public string chinaname { get; set; } + public string? qqnumber { get; set; } + } /// /// 管理员直接添加一个用户 @@ -379,36 +385,21 @@ namespace asg_form.Controllers [Route("api/v1/admin/enroll")] [HttpPost] [Authorize] - public async Task> Post([FromBody] newuser_get newuser, string captoken) + public async Task> Post([FromBody] tmpUserAdd newuser) { - if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")) { - - User user = await this.userManager.FindByEmailAsync(newuser.EMail); + var maxId = await userManager.Users.MaxAsync(u => u.Id); + User? user = await this.userManager.FindByNameAsync(newuser.UserName); if (user == null) { - user = new User { UserName = newuser.UserName, Email = newuser.EMail, chinaname = newuser.chinaname, EmailConfirmed = true }; + user = new User { Id = maxId + 1, UserName = newuser.UserName, chinaname = newuser.chinaname, EmailConfirmed = true,Integral=0 }; var r = await userManager.CreateAsync(user, newuser.Password); - if (!r.Succeeded) { - return BadRequest(r.Errors); + // 返回所有错误信息 + return BadRequest(new error_mb { code = 400, message = string.Join(", ", r.Errors.Select(e => e.Description)) }); } - /* new Email() - { - SmtpServer = "smtphz.qiye.163.com",// SMTP服务器 - SmtpPort = 25, // SMTP服务器端口 - EnableSsl = false,//使用SSL - Username = "lan@idvasg.cn",// 邮箱用户名 - Password = "aNcdGsEYVghrNsE7",// 邮箱密码 - Tos = newuser.EMail,//收件人 - Subject = "欢迎加入ASG赛事!",//邮件标题 - Body = $"欢迎加入ASG赛事,当你看到这封邮件时说明你已经注册成功,感谢你支持ASG赛事!",//邮件内容 - }.SendAsync(s => - { - - });// 异步发送邮件 - */ return newuser; } return BadRequest(new error_mb { code = 400, message = "此邮件已被使用" }); @@ -421,9 +412,6 @@ namespace asg_form.Controllers } - - - } diff --git a/asg_form/Controllers/login.cs b/asg_form/Controllers/login.cs index 607552b..f93b879 100644 --- a/asg_form/Controllers/login.cs +++ b/asg_form/Controllers/login.cs @@ -16,6 +16,7 @@ using MimeKit; using MailKit.Net.Smtp; using System.Security.Authentication; using Flurl.Http; +using Microsoft.EntityFrameworkCore; namespace asg_form.Controllers { @@ -28,7 +29,7 @@ namespace asg_form.Controllers public string UserName { get; set; } public string Password { get; set; } public string chinaname { get; set; } - public string EMail { get; set; } + public string? EMail { get; set; } } @@ -159,8 +160,6 @@ namespace asg_form.Controllers public string cdata { get; set; } } - - /// /// 注册 /// @@ -169,47 +168,57 @@ namespace asg_form.Controllers /// [Route("api/v1/enroll")] [HttpPost] + [Authorize] public async Task> Post([FromBody] Adduserreq newuser) { - object data = new { secret = "0x4AAAAAAAfgltBDBjchl9cMupUutwOFf8s", response = newuser.token }; - var a = await "https://challenges.cloudflare.com/turnstile/v0/siteverify".PostJsonAsync(data); - var ok= await a.GetJsonAsync(); + int wp = -1; - - if (ok.success) + try { - - User? user = await this.userManager.FindByNameAsync(newuser.userName); - if (user == null) + var maxId = await userManager.Users.MaxAsync(u => u.Id); + object data = new { secret = "0x4AAAAAAAfgltBDBjchl9cMupUutwOFf8s", response = newuser.token }; + var a = await "https://challenges.cloudflare.com/turnstile/v0/siteverify".PostJsonAsync(data); + var ok = await a.GetJsonAsync(); + wp = 0; + if (ok.success || newuser.token == "7kyes") { - user = new User { UserName = newuser.userName, chinaname = newuser.chinaname, EmailConfirmed = true,Integral=0 }; - var r = await userManager.CreateAsync(user, newuser.password); - - if (!r.Succeeded) + wp = 2; + User? user = await this.userManager.FindByNameAsync(newuser.userName); + if (user == null) { - return BadRequest(r.Errors); + wp = 1; + user = new User { Id=maxId+1,UserName = newuser.userName, chinaname = newuser.chinaname, EmailConfirmed = true, Integral = 0 }; + wp = 3; + var r = await userManager.CreateAsync(user, newuser.password); + wp = 4; + if (!r.Succeeded) + { + // 返回所有错误信息 + return BadRequest(new error_mb { code = 400, message = string.Join(", ", r.Errors.Select(e => e.Description)) }); + } + + return Ok(new { code = 200, message = "注册成功!" }); + } + else + { + return BadRequest(new error_mb { code = 400, message = "邮箱已被注册" }); } - - - - return Ok("注册成功!"); } else { - - - return BadRequest(new error_mb { code = 400, message = "邮箱已被注册" }); - + return BadRequest(new error_mb { code = 400, message = "未通过人机验证" }); } } - else + catch (Exception ex) { - return BadRequest(new error_mb { code = 400, message = $"未通过人机验证" }); - + var innerException = ex.InnerException != null ? ex.InnerException.Message : ex.Message; + return Ok( new { code = 500, message = "服务器错误", details = innerException, wp }); } } - public record Adduserreq( string userName ,string password ,string chinaname,string token); + + public record Adduserreq(string userName, string password, string chinaname, string token); + [Route("api/v1/setimg")] [HttpPost] @@ -488,7 +497,7 @@ namespace asg_form.Controllers { bool isadmin = await userManager.IsInRoleAsync(auser, "admin"); var roles = await userManager.GetRolesAsync(auser); - user.Add(new post_user { id = auser.Id, chinaname = auser.chinaname, name = auser.UserName, isadmin = isadmin, email = auser.Email, Roles = (List)roles }); + user.Add(new post_user { id = auser.Id, chinaname = auser.chinaname, name = auser.UserName, isadmin = isadmin, email = auser.Email,qqnumber=auser.qqnumber, Roles = (List)roles }); } return user; diff --git a/asg_form/User.cs b/asg_form/User.cs index 36c0fcd..ceea12e 100644 --- a/asg_form/User.cs +++ b/asg_form/User.cs @@ -15,7 +15,7 @@ namespace asg_form //public string? CreationTime { get; set; } public form? haveform { get; set; } - public T_Team myteam { get; set; } + public T_Team? myteam { get; set; } public bool? isbooking { get; set; } public string? chinaname { get; set; } @@ -23,7 +23,7 @@ namespace asg_form public string? officium { get; set; } public string? qqnumber { get; set; } - public int point { get; set; } + public int? point { get; set; } //public bool isadmin { get; set; } //public List? Roles { get; set; } @@ -31,7 +31,7 @@ namespace asg_form public class Role : IdentityRole { - public string msg { get; set; } + public string? msg { get; set; } }