Files
rui-docs/api-request-user-password.md
T

1.8 KiB
Raw Blame History

[API-REQ] 用户编辑接口密码字段处理优化

接口地址

PUT /user/admin/user

功能描述

当前编辑用户时,如果前端不传 password 字段或传空字符串,后端会报错或把密码更新为空。期望后端能处理以下逻辑:

请求参数

{
  "id": 1,
  "username": "admin",
  "userType": 1,
  "status": 1
  // 注意:没有 password 字段
}

期望行为

  1. 编辑用户时,如果请求体中不包含 password 字段,或 passwordnull/空字符串,应不修改用户密码
  2. 编辑用户时,如果请求体中包含 password 字段且不为空,应更新用户密码
  3. 新增用户时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