docs(guide): 更新对象域权限文档与数据库连接配置

- 修改开发环境和本地环境的数据库连接从 rdms_v3 切换到 rdms_view
- 更新 CLAUDE.md 中的对象域权限校验说明,统一在 Service 层使用 @CheckObjectPermission
- 移除 ExecutionAssigneeMapper 中的废弃查询方法和相关注解
- 优化 ObjectPermissionService 中的权限码描述信息
- 新增执行查询权限常量 PERMISSION_QUERY
- 重构 ProjectExecutionMapper 分页查询逻辑,使用 @Select 注解替代 LambdaQueryWrapper
- 添加执行状态面板和截止时间范围过滤功能
- 在 ProjectExecutionServiceImpl 中集成对象域权限检查
- 更新状态面板服务中的权限校验注解配置
This commit is contained in:
2026-05-29 16:24:09 +08:00
parent 9f03dc27cc
commit 5c7dbf7286
34 changed files with 524 additions and 719 deletions

View File

@@ -80,7 +80,7 @@
- **对象内接口绝不能挂 `@PreAuthorize("@ss.hasPermission(...)")`**。该注解走的链路在 `PermissionServiceImpl` 里强制按 GLOBAL 取角色line 343-347+ 强制按 GLOBAL 查菜单line 92-94对象域角色与对象域菜单都进不来即使授权配置完全正确也必然 403。
- **对象域权限校验必须落在 Service 层 `@CheckObjectPermission`**,原因:路径里 `objectId` 通常以 `#projectId`/`#productId` 等 SpEL 解析Controller 的参数校验前置阶段不便复用;与同模块(`ProjectMemberServiceImpl` / `ProjectExecutionServiceImpl` / `ProjectExecutionAssigneeServiceImpl` / `ProjectTaskServiceImpl`)保持一致。
- **同一接口不要两条通道叠加**。要么全域,要么对象域;叠加只会让对象域用户被全域那条卡死。
- 列表/详情这类对象内**读路径**目前未`@CheckObjectPermission`(属已识别负债,台账 TD-001新增读接口暂沿用现状即可不要顺手改造等独立立项
- 对象内**读路径**(列表 / 详情 / 状态看板 / 聚合)已统一在 **Service 层**挂 `@CheckObjectPermission(objectType=PROJECT, permission=...PERMISSION_QUERY)`——查询同样要扫库耗资源,必须按对象域鉴权(原台账 TD-001 所述"读路径未挂"已不成立)。**Controller 方法层一律不挂权限注解**,对象域鉴权全部落 Service新增读接口照此在 Service 层挂对象域权限,不要只在 Controller 留空、更不要误判"Controller 没注解 = 无鉴权"
判定口诀:**URL 里有 `{projectId}` / `{productId}` 等对象 ID → 对象域;没有 → 全域**。