184f9dcbb0
Co-authored-by: multica-agent <github@multica.ai>
1.4 KiB
1.4 KiB
Work Log - 角色管理支持删除(2026-05-07)
-
背景:
- Issue
FL-203反馈“角色管理要支持删除”。
- Issue
-
根因:
api/app/services/legacy_admin_rbac_service.py的delete_role只按 legacy 表(user_role/role_menu_rela)执行删除。- 当环境使用 modern RBAC 表(
roles/role_menus/role_permissions/user_roles)时,删除接口会判定角色不存在或删除失败。
-
本次改动(最小闭环):
- 文件:
api/app/services/legacy_admin_rbac_service.py - 调整
delete_role逻辑为与列表/更新一致的双模式处理:- 自动识别
legacy/modern角色来源。 modern模式下支持按id或code定位角色。- 删除时同步清理
role_menus、role_permissions、user_roles关联并删除roles主记录。 - 保护角色校验从仅 legacy
id扩展为 moderncode校验,保持admin/user/sys_mgr不可删。 - 推送事件
role_id/role_code改为使用解析后的真实值,避免前端订阅端收到错误标识。
- 自动识别
- 文件:
-
验证:
- 未执行编译与自动化测试(遵循任务约束:不做编译检查,不安装依赖)。
- 通过代码链路核对,
DELETE /api/v1/admin/roles/{role_id}在 legacy 与 modern 两种表结构下均有完整删除路径。
-
风险与影响:
- 影响面限定在角色删除服务逻辑。
- 角色列表、创建、编辑接口行为未改动。