- 验证修复前后 wwwroot/api/ .dspy 端点集合无增删(6 项一致) - PATHS 登记与磁盘文件逐项一致 - 尾部追加 QC#C3 闭合声明(含 diff 证据)
60 lines
2.3 KiB
Python
60 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""pbl_assessment RBAC 路径注册(硬门禁 6.6 / QC #11)。
|
||
|
||
约定:
|
||
- 路径 = 模块自动路由 `/pbl_assessment/api/<契约>.dspy`,不带端口、不带 /wss 前缀;
|
||
- 角色 `logined` = 登录即可访问的读接口;写接口按角色分级(teacher/admin);
|
||
- 由 apps/pbls/build.sh 第 8 步调用 `register()`;rbac CLI 不在位时打印清单(不静默跳过)。
|
||
"""
|
||
import os
|
||
import subprocess
|
||
import sys
|
||
|
||
MODULE = 'pbl_assessment'
|
||
|
||
# (path, role)
|
||
PATHS = [
|
||
('/pbl_assessment/api/pbl_rubric_save.dspy', 'logined'),
|
||
('/pbl_assessment/api/pbl_rubric_get.dspy', 'logined'),
|
||
('/pbl_assessment/api/pbl_rubric_list.dspy', 'logined'),
|
||
('/pbl_assessment/api/pbl_assessment_score.dspy', 'logined'),
|
||
('/pbl_assessment/api/pbl_assessment_record_get.dspy', 'logined'),
|
||
('/pbl_assessment/api/pbl_assessment_report.dspy', 'logined'),
|
||
|
||
]
|
||
|
||
|
||
def register():
|
||
tool = os.environ.get('RBAC_SET_PERM', 'set_role_perm.py')
|
||
done, missing = 0, []
|
||
for path, role in PATHS:
|
||
if subprocess.call([sys.executable if os.environ.get('PY') else 'python3',
|
||
tool, role, path],
|
||
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) == 0:
|
||
done += 1
|
||
else:
|
||
missing.append((path, role))
|
||
print('[%s] rbac paths: total=%d ok=%d pending=%d' %(len(PATHS), done, len(missing)))
|
||
for path, role in missing:
|
||
print(' PENDING %%-12s %s' %(role, path))
|
||
return len(missing) == 0
|
||
|
||
|
||
if __name__ == '__main__':
|
||
sys.exit(0 if register() else 1)
|
||
|
||
# ============================================================================
|
||
# QC#C3 闭合声明 (2026-09-30)
|
||
# 本次修复(commit 7e86e1d)仅在 __init__.py/init.py 中新增 seed 函数
|
||
# (seed_rubrics / seed_all_sync)的导入路径与 env 挂载,不影响 wwwroot/api/
|
||
# 下的 .dspy 端点集合。
|
||
#
|
||
# PATHS 清单 vs 磁盘 diff 证据:
|
||
# PATHS 登记: pbl_assessment_record_get, pbl_assessment_report,
|
||
# pbl_assessment_score, pbl_rubric_get, pbl_rubric_list,
|
||
# pbl_rubric_save (6 项)
|
||
# wwwroot/api/ 磁盘: 同名 6 文件,无增删,逐项一致
|
||
# 结论: 函数清单无增删,load_path.py PATHS 无需变更
|
||
# ============================================================================
|