后端:稳定租户链路与 VLM 图片质量检测 #9

Merged
TanWenyan merged 4 commits from wren-dev into main 2026-05-22 16:05:07 +08:00
Owner

背景

  • 梅州等租户已经配置“合同评查/卷宗”等首页入口时,入口展示应遵循租户/地区配置,而不是因为当前用户缺少文件管理操作权限就直接消失。
  • 之前只调整了前端 session-data 过滤,但后端 /api/home/entry-modules 仍会按用户 RBAC 路由树过滤入口,导致 000/缺少文件管理路由的用户在接口层已经拿不到合同入口。
  • 文件管理权限关闭后,用户仍应能看到配置入口并进入页面,由页面内列表、上传、操作按钮给出无权限提示。

主要改动

  • 后端首页入口服务保留租户/地区配置过滤,但对文档类首页入口 /documents/documents/list/files/upload 不再要求文件管理路由授权。
  • 非文档类入口仍继续按当前用户路由树校验,避免设置页等未授权入口被放出。
  • 首页入口模块前端过滤改为按入口配置路径判断,不再用文件管理路由权限过滤合同/卷宗入口。
  • 全局 layout 对 /documents/documents/list/files/upload 保留可渲染无权限态的入口例外;其它无菜单路由仍会重定向无权限页。
  • 文档列表页继续按 documents:list:read / documents:detail:read 控制数据加载,无权限时不拉取列表并 toast “暂无文档列表查看权限”。
  • 文件上传页继续按 /files/upload 路由授权和 documents:upload:write 控制上传能力,无权限时禁用选择/提交/上传动作并 toast “暂无文件上传权限”。
  • 补充后端首页入口可见性测试、前端首页入口和文件管理无权限态回归测试。

影响范围

  • 影响后端 /api/home/entry-modules 首页入口返回逻辑。
  • 影响首页入口模块展示、/documents/documents/list/files/upload 的路由守卫语义。
  • 影响文件管理关闭或缺少操作权限时的用户体验:入口保留,页面内操作受限并提示。
  • 不放宽文档列表读取、文档上传等实际业务接口权限。

测试

  • python -m pytest tests/test_home_entry_visibility.py tests/release/test_role_tenant_matrix.py:5 个用例通过。
  • python -m py_compile fastapi_modules/fastapi_leaudit/services/impl/homeServiceImpl.py tests/test_home_entry_visibility.py:通过。
  • node --test tests/govdoc-audit/file-management-access.test.mts tests/govdoc-audit/home-entry-access.test.mts tests/govdoc-audit/home-statistics-access.test.mts tests/govdoc-audit/route-access.test.mts tests/govdoc-audit/route-permission-map.test.mts:18 个用例通过。
  • npx tsc --noEmit --pretty false:通过。
  • npx eslint ...:0 error,保留既有 6 个 warning。

验收建议

  • 给梅州租户配置“合同评查”入口,再用没有文件管理权限的梅州用户或 000 对应场景登录,确认首页仍显示该入口。
  • 确认 /api/home/entry-modules 响应里包含租户配置的文档类入口。
  • 点击合同/卷宗入口后,页面可打开;无查看权限时不加载文档列表,并提示“暂无文档列表查看权限”。
  • 无上传权限用户进入上传页后,文档类型、文件选择和上传动作不可用,触发操作时提示“暂无文件上传权限”。
  • 用具备文件管理权限的账号确认合同/卷宗入口、文档列表和上传流程仍正常。
## 背景 - 梅州等租户已经配置“合同评查/卷宗”等首页入口时,入口展示应遵循租户/地区配置,而不是因为当前用户缺少文件管理操作权限就直接消失。 - 之前只调整了前端 `session-data` 过滤,但后端 `/api/home/entry-modules` 仍会按用户 RBAC 路由树过滤入口,导致 000/缺少文件管理路由的用户在接口层已经拿不到合同入口。 - 文件管理权限关闭后,用户仍应能看到配置入口并进入页面,由页面内列表、上传、操作按钮给出无权限提示。 ## 主要改动 - 后端首页入口服务保留租户/地区配置过滤,但对文档类首页入口 `/documents`、`/documents/list`、`/files/upload` 不再要求文件管理路由授权。 - 非文档类入口仍继续按当前用户路由树校验,避免设置页等未授权入口被放出。 - 首页入口模块前端过滤改为按入口配置路径判断,不再用文件管理路由权限过滤合同/卷宗入口。 - 全局 layout 对 `/documents`、`/documents/list`、`/files/upload` 保留可渲染无权限态的入口例外;其它无菜单路由仍会重定向无权限页。 - 文档列表页继续按 `documents:list:read` / `documents:detail:read` 控制数据加载,无权限时不拉取列表并 toast “暂无文档列表查看权限”。 - 文件上传页继续按 `/files/upload` 路由授权和 `documents:upload:write` 控制上传能力,无权限时禁用选择/提交/上传动作并 toast “暂无文件上传权限”。 - 补充后端首页入口可见性测试、前端首页入口和文件管理无权限态回归测试。 ## 影响范围 - 影响后端 `/api/home/entry-modules` 首页入口返回逻辑。 - 影响首页入口模块展示、`/documents`、`/documents/list`、`/files/upload` 的路由守卫语义。 - 影响文件管理关闭或缺少操作权限时的用户体验:入口保留,页面内操作受限并提示。 - 不放宽文档列表读取、文档上传等实际业务接口权限。 ## 测试 - `python -m pytest tests/test_home_entry_visibility.py tests/release/test_role_tenant_matrix.py`:5 个用例通过。 - `python -m py_compile fastapi_modules/fastapi_leaudit/services/impl/homeServiceImpl.py tests/test_home_entry_visibility.py`:通过。 - `node --test tests/govdoc-audit/file-management-access.test.mts tests/govdoc-audit/home-entry-access.test.mts tests/govdoc-audit/home-statistics-access.test.mts tests/govdoc-audit/route-access.test.mts tests/govdoc-audit/route-permission-map.test.mts`:18 个用例通过。 - `npx tsc --noEmit --pretty false`:通过。 - `npx eslint ...`:0 error,保留既有 6 个 warning。 ## 验收建议 - 给梅州租户配置“合同评查”入口,再用没有文件管理权限的梅州用户或 000 对应场景登录,确认首页仍显示该入口。 - 确认 `/api/home/entry-modules` 响应里包含租户配置的文档类入口。 - 点击合同/卷宗入口后,页面可打开;无查看权限时不加载文档列表,并提示“暂无文档列表查看权限”。 - 无上传权限用户进入上传页后,文档类型、文件选择和上传动作不可用,触发操作时提示“暂无文件上传权限”。 - 用具备文件管理权限的账号确认合同/卷宗入口、文档列表和上传流程仍正常。
TanWenyan added 1 commit 2026-05-22 14:16:46 +08:00
TanWenyan added 1 commit 2026-05-22 14:23:36 +08:00
TanWenyan added 1 commit 2026-05-22 14:42:06 +08:00
TanWenyan added 1 commit 2026-05-22 15:36:22 +08:00
TanWenyan merged commit bd8b7a494c into main 2026-05-22 16:05:07 +08:00
Sign in to join this conversation.