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("旧密码输入错误")]
D1004,
/// <summary>
/// 新旧密码不可一致
/// </summary>
[ErrorCodeItemMetadata("新旧密码不可一致")]
D10041,
/// <summary>
/// 测试数据禁止更改admin密码
/// </summary>

View File

@@ -1927,6 +1927,11 @@
旧密码不匹配
</summary>
</member>
<member name="F:Ewide.Core.ErrorCode.D10041">
<summary>
新旧密码不可一致
</summary>
</member>
<member name="F:Ewide.Core.ErrorCode.D1005">
<summary>
测试数据禁止更改admin密码
@@ -6755,6 +6760,11 @@
用户Id
</summary>
</member>
<member name="P:Ewide.Core.Service.ChangePasswordUserInput.Id">
<summary>
用户Id
</summary>
</member>
<member name="P:Ewide.Core.Service.ChangePasswordUserInput.Password">
<summary>
密码
@@ -6765,6 +6775,11 @@
新密码
</summary>
</member>
<member name="P:Ewide.Core.Service.ChangePasswordUserInput.Confirm">
<summary>
确认密码
</summary>
</member>
<member name="T:Ewide.Core.Service.UserOutput">
<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>
[Required(ErrorMessage = "旧密码不能为空")]
public override string Password { get; set; }
public string Password { get; set; }
/// <summary>
/// 新密码
/// </summary>
[Required(ErrorMessage = "新密码不能为空"), Compare(nameof(Password), ErrorMessage = "新旧密码不能一致")]
[Required(ErrorMessage = "新密码不能为空")]
[StringLength(32, MinimumLength = 5, ErrorMessage = "密码需要大于5个字符")]
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)
{
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>
@@ -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);
}