dingdingflow/scripts/load_path.py
ymq a3f2ea8616 feat: 钉钉审批工作流模块从 cms 独立
- 表名统一 dda_ 前缀(dda_approvals/dda_approval_configs),跨应用复用防冲突
- 解耦关键改动:原回调硬编码 biz_type=='content_publish' + 写 cms_content 表,
  改为 register_biz_handler(biz_type, handler) 钩子分派,模块内零业务表引用
- 含 models(四段式)/json(CRUD)/9个dspy端点/load_path(any回调+9 logined)/i18n四语言
- README 覆盖凭据配置、审批模板配置、回调地址、审批节点接法(产线步骤)
2026-08-25 18:15:52 +08:00

43 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""RBAC path registration for dingdingflow module.
宿主根目录执行py3/bin/python pkgs/dingdingflow/scripts/load_path.py
pipeline-app 的 load_path.sh 会自动扫描 pkgs/*/scripts/load_path.py
"""
import subprocess
MOD = "dingdingflow"
# 钉钉服务器回调:外部 POST 无登录态,必须 any
# ⚠️ 安全:回调处理内部靠 processInstanceId 匹配本地记录,无匹配即拒绝
PATHS_ANY = [
f"/{MOD}/api/dingtalk_callback.dspy",
]
PATHS_LOGINED = [
f"/{MOD}",
f"/{MOD}/api/dd_approval_configs_create.dspy",
f"/{MOD}/api/dd_approval_configs_delete.dspy",
f"/{MOD}/api/dd_approval_configs_list.dspy",
f"/{MOD}/api/dd_approval_configs_update.dspy",
f"/{MOD}/api/dd_approvals_create.dspy",
f"/{MOD}/api/dd_approvals_delete.dspy",
f"/{MOD}/api/dd_approvals_list.dspy",
f"/{MOD}/api/dd_approvals_update.dspy",
]
def register_paths():
for path in PATHS_ANY:
subprocess.run(["py3/bin/python", "set_role_perm.py", "any", path])
print(f" any: {path}")
for path in PATHS_LOGINED:
subprocess.run(["py3/bin/python", "set_role_perm.py", "logined", path])
print(f" logined: {path}")
if __name__ == "__main__":
print(f"=== {MOD} RBAC registration ===")
register_paths()
print(f"Done. any={len(PATHS_ANY)} logined={len(PATHS_LOGINED)}")