Skip to content

Commit 259250a

Browse files
committed
api: AddUsers
1 parent b4d9850 commit 259250a

File tree

4 files changed

+30
-9
lines changed

4 files changed

+30
-9
lines changed

src/GZCTF/ClientApp/src/Api.ts

+16-4
Original file line numberDiff line numberDiff line change
@@ -323,13 +323,25 @@ export interface UserCreateModel {
323323
* @minLength 1
324324
*/
325325
email: string
326-
/** 真实姓名 */
326+
/**
327+
* 真实姓名
328+
* @maxLength 7
329+
*/
327330
realName?: string | null
328-
/** 学号 */
331+
/**
332+
* 学号
333+
* @maxLength 15
334+
*/
329335
stdNumber?: string | null
330-
/** 联系电话 */
336+
/**
337+
* 联系电话
338+
* @format phone
339+
*/
331340
phone?: string | null
332-
/** 用户加入的队伍 */
341+
/**
342+
* 用户加入的队伍
343+
* @maxLength 15
344+
*/
333345
teamName?: string | null
334346
}
335347

src/GZCTF/Controllers/AdminController.cs

+9-4
Original file line numberDiff line numberDiff line change
@@ -129,26 +129,28 @@ select UserInfoModel.FromUserInfo(user)
129129
/// 使用此接口批量添加用户,需要Admin权限
130130
/// </remarks>
131131
/// <response code="200">成功添加</response>
132+
/// <response code="400">用户校验失败</response>
132133
/// <response code="401">未授权用户</response>
133134
/// <response code="403">禁止访问</response>
134135
[HttpPost("Users")]
135136
[ProducesResponseType(StatusCodes.Status200OK)]
136-
public async Task<IActionResult> AddUsers([FromBody] List<UserCreateModel> model, CancellationToken token = default)
137+
[ProducesResponseType(typeof(RequestResponse), StatusCodes.Status400BadRequest)]
138+
public async Task<IActionResult> AddUsers([FromBody] UserCreateModel[] model, CancellationToken token = default)
137139
{
138140
var trans = await teamRepository.BeginTransactionAsync(token);
139141

140142
try
141143
{
142-
var users = new List<(UserInfo, string?)>(model.Count);
143-
foreach(var user in model)
144+
var users = new List<(UserInfo, string?)>(model.Length);
145+
foreach (var user in model)
144146
{
145147
var userInfo = user.ToUserInfo();
146148
await userManager.CreateAsync(userInfo, user.Password);
147149
users.Add((userInfo, user.TeamName));
148150
}
149151

150152
var teams = new List<Team>();
151-
foreach(var (user, teamName) in users)
153+
foreach (var (user, teamName) in users)
152154
{
153155
if (teamName is null)
154156
continue;
@@ -165,6 +167,9 @@ public async Task<IActionResult> AddUsers([FromBody] List<UserCreateModel> model
165167
}
166168
}
167169

170+
await teamRepository.SaveAsync(token);
171+
await trans.CommitAsync(token);
172+
168173
return Ok();
169174
}
170175
catch

src/GZCTF/Models/Request/Admin/UserCreateModel.cs

+4
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,25 @@ public class UserCreateModel
3232
/// <summary>
3333
/// 真实姓名
3434
/// </summary>
35+
[MaxLength(7, ErrorMessage = "真实姓名过长")]
3536
public string? RealName { get; set; }
3637

3738
/// <summary>
3839
/// 学号
3940
/// </summary>
41+
[MaxLength(15, ErrorMessage = "学工号过长")]
4042
public string? StdNumber { get; set; }
4143

4244
/// <summary>
4345
/// 联系电话
4446
/// </summary>
47+
[Phone(ErrorMessage = "手机号格式错误")]
4548
public string? Phone { get; set; }
4649

4750
/// <summary>
4851
/// 用户加入的队伍
4952
/// </summary>
53+
[MaxLength(15, ErrorMessage = "队伍名称过长")]
5054
public string? TeamName { get; set; }
5155

5256
internal UserInfo ToUserInfo()

src/GZCTF/Program.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@
230230
options.InvalidModelStateResponseFactory = context =>
231231
{
232232
var errmsg = context.ModelState.Values.FirstOrDefault()?.Errors.FirstOrDefault()?.ErrorMessage;
233-
return new JsonResult(new RequestResponse(errmsg ?? "验证失败,请检查输入。"))
233+
return new JsonResult(new RequestResponse(errmsg is not null && errmsg.Length > 0 ? errmsg : "校验失败,请检查输入。"))
234234
{
235235
StatusCode = 400
236236
};

0 commit comments

Comments
 (0)