feat: 用户等级改为下拉选择 + 禁止修改管理员/提升为管理员
- Users.vue: ElMessageBox.prompt → el-dialog + el-select 下拉 - Users.vue: 管理员行隐藏设置按钮,显示标签文本 - AdminController: 拒绝修改 MANAGER 账户等级,拒绝提升为 ADMIN - 信任等级显示改为中文标签
This commit is contained in:
@@ -120,7 +120,7 @@ public class AdminController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户信任等级
|
||||
* 设置用户信任等级(禁止修改管理员、禁止提升为管理员)
|
||||
*/
|
||||
@PostMapping("/accounts/{accountId}/trust-level")
|
||||
public ApiResponse<Void> setTrustLevel(
|
||||
@@ -130,13 +130,24 @@ public class AdminController {
|
||||
|
||||
checkAdmin(request);
|
||||
|
||||
var account = accountMapper.selectById(accountId);
|
||||
if (account == null) {
|
||||
var target = accountMapper.selectById(accountId);
|
||||
if (target == null) {
|
||||
return ApiResponse.error(404, "Account not found");
|
||||
}
|
||||
|
||||
account.setTrustLevel(TrustLevel.fromValue(level));
|
||||
accountMapper.updateById(account);
|
||||
// 禁止修改管理员
|
||||
if (target.getTrustLevel() == TrustLevel.ADMIN) {
|
||||
return ApiResponse.error(403, "不能修改管理员账户的信任等级");
|
||||
}
|
||||
|
||||
// 禁止将用户设置为管理员
|
||||
TrustLevel newLevel = TrustLevel.fromValue(level);
|
||||
if (newLevel == TrustLevel.ADMIN) {
|
||||
return ApiResponse.error(403, "不能通过此接口提升为管理员,请直接操作数据库");
|
||||
}
|
||||
|
||||
target.setTrustLevel(newLevel);
|
||||
accountMapper.updateById(target);
|
||||
|
||||
log.info("Trust level updated: accountId={}, level={}", accountId, level);
|
||||
return ApiResponse.success();
|
||||
|
||||
Reference in New Issue
Block a user