From 561e8f096ee084494ac4e00f5e36d7b0b16ef7a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?=
<188633308@qq.com>
Date: Fri, 7 May 2021 16:58:24 +0800
Subject: [PATCH] =?UTF-8?q?fix=20=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=8A=E5=AF=86=E7=A0=81=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E7=9A=84=E6=A1=86=E6=9E=B6bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Api/Ewide.Core/Enum/ErrorCode.cs | 6 ++++++
Api/Ewide.Core/Ewide.Core.xml | 15 +++++++++++++++
Api/Ewide.Core/Service/User/Dto/UserInput.cs | 18 +++++++++++++++---
Api/Ewide.Core/Service/User/SysUserService.cs | 9 ++++++++-
4 files changed, 44 insertions(+), 4 deletions(-)
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);
}