fix(knowledge): articles共享层语义对齐评审方案——entity_id=0系统共享(替代NULL) (entity-memory-partition 复核对齐)

This commit is contained in:
Hermes CI Fix
2026-09-03 23:09:04 +08:00
parent 1a1be3001d
commit 5e96d15888
4 changed files with 14 additions and 14 deletions
+4 -4
View File
@@ -37,17 +37,17 @@ def list_articles(
db: Session = Depends(get_db),
entity_id: int = Depends(get_entity_id),
):
"""查询知识文章(本企业专属 ∪ 全局共享),可按关联页面或分类筛选
"""查询知识文章(本企业专属 ∪ 系统共享),可按关联页面或分类筛选
隔离语义(2026-09-03 多租户分区):
- entity_id IS NULL → 全局共享(CMA 系统教学知识,所有企业可见)
- entity_id = 0 → 系统共享(CMA 教学知识,所有企业可见)
- entity_id == 当前账套 → 企业专属(只本企业可见)
- 其他企业的专属文章不可见
"""
q = db.query(KnowledgeArticle).filter(
or_(
KnowledgeArticle.entity_id == entity_id,
KnowledgeArticle.entity_id.is_(None),
KnowledgeArticle.entity_id == 0,
)
)
if related_page:
@@ -72,6 +72,6 @@ def get_article(
)
if not a:
raise HTTPException(404, "文章不存在")
if a.entity_id is not None and a.entity_id != entity_id:
if a.entity_id != 0 and a.entity_id != entity_id:
raise HTTPException(404, "文章不存在")
return article_to_dict(a)