Files

26 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

## Work Log - 角色管理支持删除(2026-05-07
- 背景:
- Issue `FL-203` 反馈“角色管理要支持删除”。
- 根因:
- `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` 扩展为 modern `code` 校验,保持 `admin/user/sys_mgr` 不可删。
- 推送事件 `role_id/role_code` 改为使用解析后的真实值,避免前端订阅端收到错误标识。
- 验证:
- 未执行编译与自动化测试(遵循任务约束:不做编译检查,不安装依赖)。
- 通过代码链路核对,`DELETE /api/v1/admin/roles/{role_id}` 在 legacy 与 modern 两种表结构下均有完整删除路径。
- 风险与影响:
- 影响面限定在角色删除服务逻辑。
- 角色列表、创建、编辑接口行为未改动。