核心变更: - 数据权限过滤从基于账号层级改为基于用户类型的多策略过滤 - 移除 AccountStore 中的 GetSubordinateIDs 等旧方法 - 重构认证中间件,支持 enterprise_id 和 customer_id - 更新 GORM Callback,根据用户类型自动选择过滤策略(代理/企业/个人客户) - 更新所有集成测试以适配新的 API 签名 - 添加功能总结文档和 OpenSpec 归档 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Change: 清理旧 RBAC 系统和代码整理
Why
前三个提案完成后,系统将拥有新的用户组织模型和角色权限体系。需要清理旧的 RBAC 相关代码,更新中间件和埋点逻辑,确保新旧系统平滑过渡。
根据用户描述,当前系统是"完全是个架子",无实际业务数据需要迁移,主要工作是代码清理和中间件调整。
What Changes
代码清理
- 移除旧逻辑: 清理基于
tb_account.parent_id的递归查询逻辑 - 更新中间件: 调整认证和权限校验中间件以适配新模型
- 更新埋点: 调整日志和监控中的用户标识逻辑
中间件调整
- 认证中间件: 适配新的用户类型(超级管理员/平台/代理/企业)
- 权限中间件: 使用新的角色权限体系和端口校验
- 数据权限中间件: 改为基于店铺层级的过滤逻辑
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/- 清理旧常量,确保使用新定义
依赖关系
本提案是最后执行的提案,依赖前三个提案全部完成:
- ✓ add-user-organization-model
- ✓ add-role-permission-system
- ✓ add-personal-customer-wechat
- → remove-legacy-rbac-cleanup(本提案)
风险评估
由于当前系统无实际业务数据:
- 数据迁移风险: 无(无需迁移)
- 回滚风险: 低(可以通过 Git 回滚代码)
- 兼容性风险: 无(无外部系统依赖当前 API)
验收标准
- 所有旧的
parent_id相关代码已移除或更新 - 中间件正确使用新的用户类型和权限体系
- 数据权限过滤正确基于店铺层级工作
- 所有单元测试和集成测试通过
- 应用启动无错误,核心 API 正常工作