fix 用户信息修改及密码修改的框架bug

This commit is contained in:
2021-05-07 16:58:24 +08:00
parent 52b3297ab8
commit 561e8f096e
4 changed files with 44 additions and 4 deletions

View File

@@ -38,6 +38,12 @@ namespace Ewide.Core
[ErrorCodeItemMetadata("旧密码输入错误")] [ErrorCodeItemMetadata("旧密码输入错误")]
D1004, D1004,
/// <summary>
/// 新旧密码不可一致
/// </summary>
[ErrorCodeItemMetadata("新旧密码不可一致")]
D10041,
/// <summary> /// <summary>
/// 测试数据禁止更改admin密码 /// 测试数据禁止更改admin密码
/// </summary> /// </summary>

View File

@@ -1927,6 +1927,11 @@
旧密码不匹配 旧密码不匹配
</summary> </summary>
</member> </member>
<member name="F:Ewide.Core.ErrorCode.D10041">
<summary>
新旧密码不可一致
</summary>
</member>
<member name="F:Ewide.Core.ErrorCode.D1005"> <member name="F:Ewide.Core.ErrorCode.D1005">
<summary> <summary>
测试数据禁止更改admin密码 测试数据禁止更改admin密码
@@ -6755,6 +6760,11 @@
用户Id 用户Id
</summary> </summary>
</member> </member>
<member name="P:Ewide.Core.Service.ChangePasswordUserInput.Id">
<summary>
用户Id
</summary>
</member>
<member name="P:Ewide.Core.Service.ChangePasswordUserInput.Password"> <member name="P:Ewide.Core.Service.ChangePasswordUserInput.Password">
<summary> <summary>
密码 密码
@@ -6765,6 +6775,11 @@
新密码 新密码
</summary> </summary>
</member> </member>
<member name="P:Ewide.Core.Service.ChangePasswordUserInput.Confirm">
<summary>
确认密码
</summary>
</member>
<member name="T:Ewide.Core.Service.UserOutput"> <member name="T:Ewide.Core.Service.UserOutput">
<summary> <summary>
用户参数 用户参数

View File

@@ -118,19 +118,31 @@ namespace Ewide.Core.Service
} }
public class ChangePasswordUserInput : UpdateUserInput public class ChangePasswordUserInput
{ {
/// <summary>
/// 用户Id
/// </summary>
[Required(ErrorMessage = "用户Id不能为空")]
public string Id { get; set; }
/// <summary> /// <summary>
/// 密码 /// 密码
/// </summary> /// </summary>
[Required(ErrorMessage = "旧密码不能为空")] [Required(ErrorMessage = "旧密码不能为空")]
public override string Password { get; set; } public string Password { get; set; }
/// <summary> /// <summary>
/// 新密码 /// 新密码
/// </summary> /// </summary>
[Required(ErrorMessage = "新密码不能为空"), Compare(nameof(Password), ErrorMessage = "新旧密码不能一致")] [Required(ErrorMessage = "新密码不能为空")]
[StringLength(32, MinimumLength = 5, ErrorMessage = "密码需要大于5个字符")] [StringLength(32, MinimumLength = 5, ErrorMessage = "密码需要大于5个字符")]
public string NewPassword { get; set; } public string NewPassword { get; set; }
/// <summary>
/// 确认密码
/// </summary>
[Required(ErrorMessage = "确认密码不能为空"), Compare(nameof(NewPassword), ErrorMessage = "两次密码不一致")]
public string Confirm { get; set; }
} }
} }

View File

@@ -233,7 +233,12 @@ namespace Ewide.Core.Service
public async Task UpdateUserInfo(UpdateUserInput input) public async Task UpdateUserInfo(UpdateUserInput input)
{ {
var user = input.Adapt<SysUser>(); var user = input.Adapt<SysUser>();
await user.UpdateAsync(); await user.UpdateExcludeAsync(new string[] {
nameof(SysUser.Account),
nameof(SysUser.Password),
nameof(SysUser.AdminType),
nameof(SysUser.Status)
}, true);
} }
/// <summary> /// <summary>
@@ -247,6 +252,8 @@ namespace Ewide.Core.Service
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == input.Id); var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == input.Id);
if (MD5Encryption.Encrypt(input.Password) != user.Password) if (MD5Encryption.Encrypt(input.Password) != user.Password)
throw Oops.Oh(ErrorCode.D1004); throw Oops.Oh(ErrorCode.D1004);
if (MD5Encryption.Encrypt(input.NewPassword).Equals(user.Password))
throw Oops.Oh(ErrorCode.D10041);
user.Password = MD5Encryption.Encrypt(input.NewPassword); user.Password = MD5Encryption.Encrypt(input.NewPassword);
} }