Files
huang 743db126f7 重构数据权限模型并清理旧RBAC代码
核心变更:
- 数据权限过滤从基于账号层级改为基于用户类型的多策略过滤
- 移除 AccountStore 中的 GetSubordinateIDs 等旧方法
- 重构认证中间件,支持 enterprise_id 和 customer_id
- 更新 GORM Callback,根据用户类型自动选择过滤策略(代理/企业/个人客户)
- 更新所有集成测试以适配新的 API 签名
- 添加功能总结文档和 OpenSpec 归档

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 15:08:11 +08:00

2.2 KiB
Raw Permalink Blame History

Change: 清理旧 RBAC 系统和代码整理

Why

前三个提案完成后,系统将拥有新的用户组织模型和角色权限体系。需要清理旧的 RBAC 相关代码,更新中间件和埋点逻辑,确保新旧系统平滑过渡。

根据用户描述,当前系统是"完全是个架子",无实际业务数据需要迁移,主要工作是代码清理和中间件调整。

What Changes

代码清理

  • 移除旧逻辑: 清理基于 tb_account.parent_id 的递归查询逻辑
  • 更新中间件: 调整认证和权限校验中间件以适配新模型
  • 更新埋点: 调整日志和监控中的用户标识逻辑

中间件调整

  1. 认证中间件: 适配新的用户类型(超级管理员/平台/代理/企业)
  2. 权限中间件: 使用新的角色权限体系和端口校验
  3. 数据权限中间件: 改为基于店铺层级的过滤逻辑

Store 层调整

  • 移除 account_store.go 中基于 parent_id 的递归查询
  • 使用新的 shop_store.go 中基于店铺层级的递归查询
  • 更新 Redis 缓存 key从账号下级改为店铺下级

Impact

  • Affected specs: auth, data-permission
  • Affected code:
    • internal/store/postgres/account_store.go - 移除旧的递归查询
    • internal/middleware/auth.go - 适配新用户类型
    • internal/middleware/permission.go - 适配新权限体系
    • pkg/constants/ - 清理旧常量,确保使用新定义

依赖关系

本提案是最后执行的提案,依赖前三个提案全部完成:

  1. ✓ add-user-organization-model
  2. ✓ add-role-permission-system
  3. ✓ add-personal-customer-wechat
  4. remove-legacy-rbac-cleanup本提案

风险评估

由于当前系统无实际业务数据:

  • 数据迁移风险: 无(无需迁移)
  • 回滚风险: 低(可以通过 Git 回滚代码)
  • 兼容性风险: 无(无外部系统依赖当前 API

验收标准

  1. 所有旧的 parent_id 相关代码已移除或更新
  2. 中间件正确使用新的用户类型和权限体系
  3. 数据权限过滤正确基于店铺层级工作
  4. 所有单元测试和集成测试通过
  5. 应用启动无错误,核心 API 正常工作