26 lines
1.4 KiB
Markdown
26 lines
1.4 KiB
Markdown
|
|
## 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 两种表结构下均有完整删除路径。
|
|||
|
|
|
|||
|
|
- 风险与影响:
|
|||
|
|
- 影响面限定在角色删除服务逻辑。
|
|||
|
|
- 角色列表、创建、编辑接口行为未改动。
|