1.8 KiB
1.8 KiB
[API-REQ] 用户编辑接口密码字段处理优化
接口地址
PUT /user/admin/user
功能描述
当前编辑用户时,如果前端不传 password 字段或传空字符串,后端会报错或把密码更新为空。期望后端能处理以下逻辑:
请求参数
{
"id": 1,
"username": "admin",
"userType": 1,
"status": 1
// 注意:没有 password 字段
}
期望行为
- 编辑用户时,如果请求体中不包含
password字段,或password为 null/空字符串,应不修改用户密码 - 编辑用户时,如果请求体中包含
password字段且不为空,应更新用户密码 - 新增用户时,
password字段必填,保持现有逻辑
当前问题
- 编辑用户时如果不传密码,后端可能报错或把密码置空
- 前端需要在编辑时特殊处理密码字段(已临时处理:编辑时密码为空则不提交该字段)
前端使用场景
编辑用户弹框中,密码输入框提示"留空表示不修改密码"。用户留空时,前端不提交 password 字段,期望后端保持原密码不变。
优先级
高 - 影响用户编辑功能正常使用
相关代码
前端文件:admin-ui/src/views/user/info/UserFormDialog.vue
// 编辑时如果密码为空,删除该字段,避免后端修改密码
if (isEdit && !data.password) {
delete data.password
}
建议实现
在 UserService.update() 或 Controller 层添加判断:
if (userDTO.getPassword() != null && !userDTO.getPassword().isEmpty()) {
// 更新密码
user.setPassword(encrypt(userDTO.getPassword()));
}
// 否则不修改密码字段
提交者:前端开发(admin-ui) 日期:2026-06-06