feat: enforce public bank SaaS scopes

This commit is contained in:
Codex
2026-06-30 08:55:22 +08:00
parent 4f64b7aed8
commit d1cb341351
10 changed files with 576 additions and 80 deletions

View File

@@ -1737,7 +1737,7 @@ POST /api/tenant-content/notifications/status
前端处理规则:
- 租户只能看到后端判定为已授权的公共题库,不要在前端用套餐码自行过滤。
- 租户只能看到后端判定为已授权的公共题库,不要在前端用套餐码自行过滤。后端会同时校验 `question_bank_grants`、有效 `tenant_subscriptions``platform_saas_plans.feature_flags.publicQuestionBanks` 和订阅 `metadata.publicQuestionBankAccess`;基础版默认只允许订阅 metadata 中 `allowedRegionIds` 覆盖的单地区公共题库,专业版默认 `national` 可见全国地区题库。列表响应中的 `accessPlanCode``accessMode` 仅用于展示“由哪个 SaaS 套餐授予访问”,不能作为前端权限来源。
- 采纳成功后后端会生成本租户自己的 `questionBankId``entryId``collectionId` 和题目快照,学生端直接按普通 `/api/catalog/content-entries``question-collections``practice-sessions` 接入。
- 重复采纳返回 `QUESTION_BANK_ALREADY_ADOPTED`,前端展示“已采纳”即可。
- 已采纳公共题库可以手动同步平台后续新增/更新题目;同步会重新校验当前租户仍有授权,且只写入租户自己的题目副本。