From cd62a6dbe26471094303fcb0cb9f29fba7fb6224 Mon Sep 17 00:00:00 2001 From: wangziqi Date: Thu, 2 Jul 2026 11:26:03 +0800 Subject: [PATCH] chore: check off Task 2 (RbacModule + RbacService) --- docs/superpowers/plans/2026-07-02-rbac-refactor.md | 12 ++++++------ openspec/changes/rbac-refactor/tasks.md | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/superpowers/plans/2026-07-02-rbac-refactor.md b/docs/superpowers/plans/2026-07-02-rbac-refactor.md index 6100667..54a2956 100644 --- a/docs/superpowers/plans/2026-07-02-rbac-refactor.md +++ b/docs/superpowers/plans/2026-07-02-rbac-refactor.md @@ -260,7 +260,7 @@ git commit -m "feat(rbac): add Permission and Role entities, update User entity" **依赖**: 先用 `forwardRef` 占位 AuthModule 引用,Task 3 解决循环依赖。 -- [ ] **Step 1: 创建 RbacModule** +- [x] **Step 1: 创建 RbacModule** ```typescript // backend/src/rbac/rbac.module.ts @@ -288,7 +288,7 @@ export class RbacModule implements OnModuleInit { } ``` -- [ ] **Step 2: 创建 RbacService — 种子数据方法** +- [x] **Step 2: 创建 RbacService — 种子数据方法** 在 `backend/src/rbac/rbac.service.ts` 中,先定义权限点常量和预设角色,然后实现 `seedData()`: @@ -451,7 +451,7 @@ export class RbacService { } ``` -- [ ] **Step 3: 实现角色 CRUD 方法** +- [x] **Step 3: 实现角色 CRUD 方法** 在同一个 `RbacService` 中追加: @@ -495,7 +495,7 @@ export class RbacService { } ``` -- [ ] **Step 4: 实现权限查询方法** +- [x] **Step 4: 实现权限查询方法** ```typescript async findAllPermissions(): Promise { @@ -529,7 +529,7 @@ export class RbacService { } ``` -- [ ] **Step 5: 编译验证** +- [x] **Step 5: 编译验证** ```bash cd backend && npx tsc --noEmit @@ -537,7 +537,7 @@ cd backend && npx tsc --noEmit 预期:无类型错误。 -- [ ] **Step 6: Commit** +- [x] **Step 6: Commit** ```bash git add backend/src/rbac/ diff --git a/openspec/changes/rbac-refactor/tasks.md b/openspec/changes/rbac-refactor/tasks.md index 66f04f5..1a85f94 100644 --- a/openspec/changes/rbac-refactor/tasks.md +++ b/openspec/changes/rbac-refactor/tasks.md @@ -9,10 +9,10 @@ ## 2. RBAC 服务层 -- [ ] 2.1 创建 RbacModule 和 RbacService:提供 findAllRoles/findRoleById/createRole/updateRole/deleteRole 方法 -- [ ] 2.2 实现角色 CRUD(含权限关联):创建角色时同时写入 RolePermission;更新时删除旧关联重建 -- [ ] 2.3 实现 getUserPermissions 方法:通过 User→UserRole→Role→RolePermission→Permission 链查询,去重后返回权限 code 列表 -- [ ] 2.4 实现 getPermissionTree 方法:返回按 group 分组的权限树,供前端权限一览和管理页使用 +- [x] 2.1 创建 RbacModule 和 RbacService:提供 findAllRoles/findRoleById/createRole/updateRole/deleteRole 方法 +- [x] 2.2 实现角色 CRUD(含权限关联):创建角色时同时写入 RolePermission;更新时删除旧关联重建 +- [x] 2.3 实现 getUserPermissions 方法:通过 User→UserRole→Role→RolePermission→Permission 链查询,去重后返回权限 code 列表 +- [x] 2.4 实现 getPermissionTree 方法:返回按 group 分组的权限树,供前端权限一览和管理页使用 - [ ] 2.5 创建 RbacController:角色 CRUD + 权限树 + 用户-角色分配接口,所有接口加 @RequirePermission 守卫 ## 3. 权限守卫实现