|
@@ -52,7 +52,23 @@ Draft
|
|
|
- [x] 集成认证中间件
|
|
- [x] 集成认证中间件
|
|
|
- [x] 配置用户追踪字段
|
|
- [x] 配置用户追踪字段
|
|
|
|
|
|
|
|
-- [ ] Task 5: 创建测试套件 (AC: 7, 8)
|
|
|
|
|
|
|
+- [ ] Task 5: 创建当前用户权限API路由文件 (AC: 3, 4)
|
|
|
|
|
+ - [ ] 创建 packages/delivery-address-module/src/schemas/user-delivery-address.schema.ts - 用户专用schema
|
|
|
|
|
+ - [ ] 移除userId字段,自动使用当前登录用户ID
|
|
|
|
|
+ - [ ] 创建 packages/delivery-address-module/src/schemas/admin-delivery-address.schema.ts - 管理员专用schema
|
|
|
|
|
+ - [ ] 保留userId字段,允许管理员指定用户
|
|
|
|
|
+ - [ ] 创建 packages/delivery-address-module/src/routes/user-routes.ts - 仅限当前用户使用的路由
|
|
|
|
|
+ - [ ] 配置数据权限控制,使用 shared-crud 的 dataPermission 配置
|
|
|
|
|
+ - [ ] 设置 userIdField: 'userId',确保用户只能操作自己的数据
|
|
|
|
|
+ - [ ] 使用用户专用schema
|
|
|
|
|
+ - [ ] 创建 packages/delivery-address-module/src/routes/admin-routes.ts - 管理员使用的完整权限路由
|
|
|
|
|
+ - [ ] 配置管理员路由不使用数据权限控制,保持完整CRUD功能
|
|
|
|
|
+ - [ ] 使用管理员专用schema
|
|
|
|
|
+ - [ ] 更新 packages/delivery-address-module/src/routes/index.ts 导出两个路由集合
|
|
|
|
|
+ - [ ] 验证用户路由只能访问和操作当前用户的数据
|
|
|
|
|
+ - [ ] 验证管理员路由可以访问所有用户的数据
|
|
|
|
|
+
|
|
|
|
|
+- [ ] Task 6: 创建测试套件 (AC: 7, 8)
|
|
|
- [ ] 创建集成测试 packages/delivery-address-module/tests/integration/,参考广告模块集成测试结构 [Source: packages/advertisements-module/tests/integration/advertisements.integration.test.ts#L1-L50]
|
|
- [ ] 创建集成测试 packages/delivery-address-module/tests/integration/,参考广告模块集成测试结构 [Source: packages/advertisements-module/tests/integration/advertisements.integration.test.ts#L1-L50]
|
|
|
- [ ] 配置测试数据库连接,使用 shared-test-util [Source: packages/shared-test-util/src/integration-test-db.ts#L1-L30]
|
|
- [ ] 配置测试数据库连接,使用 shared-test-util [Source: packages/shared-test-util/src/integration-test-db.ts#L1-L30]
|
|
|
- [ ] 添加省市区关联测试场景
|
|
- [ ] 添加省市区关联测试场景
|
|
@@ -60,7 +76,7 @@ Draft
|
|
|
- [ ] 测试地址查询时的地区数据关联
|
|
- [ ] 测试地址查询时的地区数据关联
|
|
|
- [ ] 确保测试覆盖率满足要求
|
|
- [ ] 确保测试覆盖率满足要求
|
|
|
|
|
|
|
|
-- [ ] Task 6: 集成到现有系统 (AC: 5, 6, 8)
|
|
|
|
|
|
|
+- [ ] Task 7: 集成到现有系统 (AC: 5, 6, 8)
|
|
|
- [ ] 更新 server package 依赖,添加 @d8d/delivery-address-module
|
|
- [ ] 更新 server package 依赖,添加 @d8d/delivery-address-module
|
|
|
- [ ] 在 server 中注册配送地址路由
|
|
- [ ] 在 server 中注册配送地址路由
|
|
|
- [ ] 验证与用户模块的集成
|
|
- [ ] 验证与用户模块的集成
|
|
@@ -68,7 +84,7 @@ Draft
|
|
|
- [ ] 确保省市区数据关联正常工作
|
|
- [ ] 确保省市区数据关联正常工作
|
|
|
- [ ] 验证地址创建和更新时的地区验证
|
|
- [ ] 验证地址创建和更新时的地区验证
|
|
|
|
|
|
|
|
-- [ ] Task 7: 验证和文档 (AC: 4, 6)
|
|
|
|
|
|
|
+- [ ] Task 8: 验证和文档 (AC: 4, 6)
|
|
|
- [ ] 运行所有测试验证功能
|
|
- [ ] 运行所有测试验证功能
|
|
|
- [ ] 更新 docs/architecture/source-tree.md 文档
|
|
- [ ] 更新 docs/architecture/source-tree.md 文档
|
|
|
- [ ] 验证向后兼容性
|
|
- [ ] 验证向后兼容性
|
|
@@ -132,9 +148,18 @@ Draft
|
|
|
- **测试框架**: Vitest + shared-test-util [Source: docs/architecture/testing-strategy.md#L43-L44]
|
|
- **测试框架**: Vitest + shared-test-util [Source: docs/architecture/testing-strategy.md#L43-L44]
|
|
|
- **集成测试参考**: 参考广告模块集成测试结构和模式 [Source: packages/advertisements-module/tests/integration/advertisements.integration.test.ts#L1-L50]
|
|
- **集成测试参考**: 参考广告模块集成测试结构和模式 [Source: packages/advertisements-module/tests/integration/advertisements.integration.test.ts#L1-L50]
|
|
|
|
|
|
|
|
|
|
+### 当前用户权限API路由设计
|
|
|
|
|
+- **用户路由**: `packages/delivery-address-module/src/routes/user-routes.ts` - 仅限当前用户使用 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
|
|
|
|
|
+- **管理员路由**: `packages/delivery-address-module/src/routes/admin-routes.ts` - 管理员使用的完整权限路由 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
|
|
|
|
|
+- **用户专用Schema**: `packages/delivery-address-module/src/schemas/user-delivery-address.schema.ts` - 移除userId字段,自动使用当前登录用户ID
|
|
|
|
|
+- **管理员专用Schema**: `packages/delivery-address-module/src/schemas/admin-delivery-address.schema.ts` - 保留userId字段,允许管理员指定用户
|
|
|
|
|
+- **数据权限配置**: 使用 shared-crud 的 `dataPermission` 配置 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L22-L25]
|
|
|
|
|
+- **权限字段**: 设置 `userIdField: 'userId'` 确保用户只能操作自己的数据 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L26-L33]
|
|
|
|
|
+- **权限验证**: 查询、创建、更新、删除操作都会验证用户权限 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L26-L41]
|
|
|
|
|
+
|
|
|
### 向后兼容性
|
|
### 向后兼容性
|
|
|
- **API 兼容**: 现有配送地址API保持不变 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L101]
|
|
- **API 兼容**: 现有配送地址API保持不变 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L101]
|
|
|
-- **数据库兼容**: 数据库schema保持不变 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L102]
|
|
|
|
|
|
|
+- **数据库兼容**: 数据库schema保持不变 [Source: docs/prd/epic-005-minim-auth-modules-integration.md#L102]
|
|
|
- **认证兼容**: 认证流程保持不变 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L103]
|
|
- **认证兼容**: 认证流程保持不变 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L103]
|
|
|
|
|
|
|
|
## Testing
|
|
## Testing
|
|
@@ -159,6 +184,9 @@ Draft
|
|
|
- 省市区数据关联验证
|
|
- 省市区数据关联验证
|
|
|
- 地区层级关系验证
|
|
- 地区层级关系验证
|
|
|
- 地址创建时的地区验证逻辑
|
|
- 地址创建时的地区验证逻辑
|
|
|
|
|
+- **用户路由权限测试**: 验证用户只能访问和操作自己的数据
|
|
|
|
|
+- **管理员路由权限测试**: 验证管理员可以访问所有用户的数据
|
|
|
|
|
+- **数据权限配置测试**: 验证 dataPermission 配置正确工作
|
|
|
|
|
|
|
|
## Change Log
|
|
## Change Log
|
|
|
|
|
|
|
@@ -166,6 +194,7 @@ Draft
|
|
|
|------|---------|-------------|--------|
|
|
|------|---------|-------------|--------|
|
|
|
| 2025-11-11 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
|
|
| 2025-11-11 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
|
|
|
| 2025-11-11 | 1.1 | 更新省市区关联,集成 @d8d/geo-areas 包 | Bob (Scrum Master) |
|
|
| 2025-11-11 | 1.1 | 更新省市区关联,集成 @d8d/geo-areas 包 | Bob (Scrum Master) |
|
|
|
|
|
+| 2025-11-11 | 1.2 | 添加当前用户权限API路由文件任务,支持admin/user分离路由和schema | Bob (Scrum Master) |
|
|
|
|
|
|
|
|
## Dev Agent Record
|
|
## Dev Agent Record
|
|
|
|
|
|