diff --git a/Api/Ewide.Core/Enum/ErrorCode.cs b/Api/Ewide.Core/Enum/ErrorCode.cs index c6c76e5..a9dc1ba 100644 --- a/Api/Ewide.Core/Enum/ErrorCode.cs +++ b/Api/Ewide.Core/Enum/ErrorCode.cs @@ -38,6 +38,12 @@ namespace Ewide.Core [ErrorCodeItemMetadata("旧密码输入错误")] D1004, + /// + /// 新旧密码不可一致 + /// + [ErrorCodeItemMetadata("新旧密码不可一致")] + D10041, + /// /// 测试数据禁止更改admin密码 /// diff --git a/Api/Ewide.Core/Ewide.Core.xml b/Api/Ewide.Core/Ewide.Core.xml index c9fbb76..f81a9b2 100644 --- a/Api/Ewide.Core/Ewide.Core.xml +++ b/Api/Ewide.Core/Ewide.Core.xml @@ -1927,6 +1927,11 @@ 旧密码不匹配 + + + 新旧密码不可一致 + + 测试数据禁止更改admin密码 @@ -6755,6 +6760,11 @@ 用户Id + + + 用户Id + + 密码 @@ -6765,6 +6775,11 @@ 新密码 + + + 确认密码 + + 用户参数 diff --git a/Api/Ewide.Core/Service/User/Dto/UserInput.cs b/Api/Ewide.Core/Service/User/Dto/UserInput.cs index 8789f39..13b0740 100644 --- a/Api/Ewide.Core/Service/User/Dto/UserInput.cs +++ b/Api/Ewide.Core/Service/User/Dto/UserInput.cs @@ -118,19 +118,31 @@ namespace Ewide.Core.Service } - public class ChangePasswordUserInput : UpdateUserInput + public class ChangePasswordUserInput { + /// + /// 用户Id + /// + [Required(ErrorMessage = "用户Id不能为空")] + public string Id { get; set; } + /// /// 密码 /// [Required(ErrorMessage = "旧密码不能为空")] - public override string Password { get; set; } + public string Password { get; set; } /// /// 新密码 /// - [Required(ErrorMessage = "新密码不能为空"), Compare(nameof(Password), ErrorMessage = "新旧密码不能一致")] + [Required(ErrorMessage = "新密码不能为空")] [StringLength(32, MinimumLength = 5, ErrorMessage = "密码需要大于5个字符")] public string NewPassword { get; set; } + + /// + /// 确认密码 + /// + [Required(ErrorMessage = "确认密码不能为空"), Compare(nameof(NewPassword), ErrorMessage = "两次密码不一致")] + public string Confirm { get; set; } } } diff --git a/Api/Ewide.Core/Service/User/SysUserService.cs b/Api/Ewide.Core/Service/User/SysUserService.cs index 89af90c..6a5b5ee 100644 --- a/Api/Ewide.Core/Service/User/SysUserService.cs +++ b/Api/Ewide.Core/Service/User/SysUserService.cs @@ -233,7 +233,12 @@ namespace Ewide.Core.Service public async Task UpdateUserInfo(UpdateUserInput input) { var user = input.Adapt(); - await user.UpdateAsync(); + await user.UpdateExcludeAsync(new string[] { + nameof(SysUser.Account), + nameof(SysUser.Password), + nameof(SysUser.AdminType), + nameof(SysUser.Status) + }, true); } /// @@ -247,6 +252,8 @@ namespace Ewide.Core.Service var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == input.Id); if (MD5Encryption.Encrypt(input.Password) != user.Password) throw Oops.Oh(ErrorCode.D1004); + if (MD5Encryption.Encrypt(input.NewPassword).Equals(user.Password)) + throw Oops.Oh(ErrorCode.D10041); user.Password = MD5Encryption.Encrypt(input.NewPassword); }