fix: 修复个人中心密码设置状态显示错误的问题

This commit is contained in:
Charles7c 2023-10-16 21:25:02 +08:00
parent 8d394937cf
commit b04a228a1a
5 changed files with 10 additions and 6 deletions

View File

@ -41,7 +41,6 @@ public class UpdatePasswordRequest implements Serializable {
*/ */
@Schema(description = "当前密码(加密后)", @Schema(description = "当前密码(加密后)",
example = "E7c72TH+LDxKTwavjM99W1MdI9Lljh79aPKiv3XB9MXcplhm7qJ1BJCj28yaflbdVbfc366klMtjLIWQGqb0qw==") example = "E7c72TH+LDxKTwavjM99W1MdI9Lljh79aPKiv3XB9MXcplhm7qJ1BJCj28yaflbdVbfc366klMtjLIWQGqb0qw==")
@NotBlank(message = "当前密码不能为空")
private String oldPassword; private String oldPassword;
/** /**

View File

@ -200,7 +200,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
public void updatePassword(String oldPassword, String newPassword, Long id) { public void updatePassword(String oldPassword, String newPassword, Long id) {
CheckUtils.throwIfEqual(newPassword, oldPassword, "新密码不能与当前密码相同"); CheckUtils.throwIfEqual(newPassword, oldPassword, "新密码不能与当前密码相同");
UserDO user = super.getById(id); UserDO user = super.getById(id);
CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(oldPassword, id.toString()), user.getPassword(), "当前密码错误"); String password = user.getPassword();
if (StrUtil.isNotBlank(password)) {
CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(oldPassword, id.toString()), password, "当前密码错误");
}
// 更新密码和密码重置时间 // 更新密码和密码重置时间
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, id.toString())) baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, id.toString()))

View File

@ -43,6 +43,7 @@
> >
<a-form ref="formRef" :model="form" :rules="rules" size="large"> <a-form ref="formRef" :model="form" :rules="rules" size="large">
<a-form-item <a-form-item
v-if="userStore.pwdResetTime"
:label=" :label="
$t('userCenter.securitySettings.updatePwd.form.label.oldPassword') $t('userCenter.securitySettings.updatePwd.form.label.oldPassword')
" "
@ -197,6 +198,7 @@
oldPassword: encryptByRsa(form.oldPassword) || '', oldPassword: encryptByRsa(form.oldPassword) || '',
newPassword: encryptByRsa(form.newPassword) || '', newPassword: encryptByRsa(form.newPassword) || '',
}).then((res) => { }).then((res) => {
userStore.getInfo();
handleCancel(); handleCancel();
proxy.$message.success(res.msg); proxy.$message.success(res.msg);
}); });

View File

@ -78,10 +78,10 @@ public class UserCenterController {
public R updatePassword(@Validated @RequestBody UpdatePasswordRequest updatePasswordRequest) { public R updatePassword(@Validated @RequestBody UpdatePasswordRequest updatePasswordRequest) {
String rawOldPassword = String rawOldPassword =
ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updatePasswordRequest.getOldPassword())); ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updatePasswordRequest.getOldPassword()));
ValidationUtils.throwIfBlank(rawOldPassword, "当前密码解密失败"); ValidationUtils.throwIfNull(rawOldPassword, "当前密码解密失败");
String rawNewPassword = String rawNewPassword =
ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updatePasswordRequest.getNewPassword())); ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updatePasswordRequest.getNewPassword()));
ValidationUtils.throwIfBlank(rawNewPassword, "新密码解密失败"); ValidationUtils.throwIfNull(rawNewPassword, "新密码解密失败");
ValidationUtils.throwIf(!ReUtil.isMatch(RegexConsts.PASSWORD, rawNewPassword), ValidationUtils.throwIf(!ReUtil.isMatch(RegexConsts.PASSWORD, rawNewPassword),
"密码长度为 6 到 32 位,可以包含字母、数字、下划线,特殊字符,同时包含字母和数字"); "密码长度为 6 到 32 位,可以包含字母、数字、下划线,特殊字符,同时包含字母和数字");
userService.updatePassword(rawOldPassword, rawNewPassword, LoginHelper.getUserId()); userService.updatePassword(rawOldPassword, rawNewPassword, LoginHelper.getUserId());

View File

@ -61,8 +61,8 @@ VALUES
INSERT IGNORE INTO `sys_user` INSERT IGNORE INTO `sys_user`
(`id`, `username`, `nickname`, `password`, `gender`, `email`, `phone`, `avatar`, `description`, `status`, `is_system`, `pwd_reset_time`, `dept_id`, `create_user`, `create_time`, `update_user`, `update_time`) (`id`, `username`, `nickname`, `password`, `gender`, `email`, `phone`, `avatar`, `description`, `status`, `is_system`, `pwd_reset_time`, `dept_id`, `create_user`, `create_time`, `update_user`, `update_time`)
VALUES VALUES
(1, 'admin', '超级管理员', '9802815bcc5baae7feb1ae0d0566baf2', 1, 'charles7c@126.com', '18888888888', NULL, '系统初始用户', 1, b'1', NULL, 1, 1, NOW(), NULL, NULL), (1, 'admin', '超级管理员', '9802815bcc5baae7feb1ae0d0566baf2', 1, 'charles7c@126.com', '18888888888', NULL, '系统初始用户', 1, b'1', NOW(), 1, 1, NOW(), NULL, NULL),
(2, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 2, NULL, NULL, NULL, NULL, 2, b'0', NULL, 5, 1, NOW(), NULL, NULL); (2, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 2, NULL, NULL, NULL, NULL, 2, b'0', NOW(), 5, 1, NOW(), NULL, NULL);
-- 初始化默认角色和菜单关联数据 -- 初始化默认角色和菜单关联数据
INSERT IGNORE INTO `sys_role_menu` INSERT IGNORE INTO `sys_role_menu`