Browse Source

fix: 修改管理员用户不再支持通过接口覆盖密码

- 原实现 BeanUtil.copyProperties 会把请求体中的 password 明文直接写入,
  任何有 user.modify 权限的账号可重置任意操作员密码
- 强制 setPassword(null)(MyBatis-Plus 默认不更新 null 字段),
  改密应走独立流程

Co-Authored-By: Claude <noreply@anthropic.com>
skyline 3 weeks ago
parent
commit
582a0fd7a3

+ 3 - 0
car-wash-service/src/main/java/com/kym/service/impl/AdminUserServiceImpl.java

@@ -205,6 +205,9 @@ public class AdminUserServiceImpl extends MyBaseServiceImpl<AdminUserMapper, Adm
             investorInfoService.lambdaUpdate().set(InvestorInfo::getStatus, InvestorInfo.STATUS_有效).eq(InvestorInfo::getAdminUserId, adminUserVo.getId()).update();
         }
         BeanUtil.copyProperties(adminUserVo, adminUser);
+        // 修改用户不支持通过接口覆盖密码:防止请求体携带 password 明文重置他人密码
+        // (MyBatis-Plus 默认不更新 null 字段,password 保持原值;改密应走独立流程)
+        adminUser.setPassword(null);
         baseMapper.updateById(adminUser);
     }