pipeline-task/scripts/load_path.py

62 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""pipeline_task 模块 RBAC 权限注册。"""
import os
import sys
import subprocess
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
# Find app root (pipeline-app or any ahserver app)
APP_ROOT = None
for candidate in [
os.path.join(SCRIPT_DIR, "..", ".."),
os.path.expanduser("~/test/pipeline-app"),
]:
if os.path.isdir(os.path.join(candidate, "wwwroot")) and os.path.isdir(os.path.join(candidate, "py3")):
APP_ROOT = os.path.abspath(candidate)
break
if not APP_ROOT:
print("ERROR: Cannot find app root directory")
sys.exit(1)
SET_ROLE_PERM = os.path.join(APP_ROOT, "set_role_perm.py")
PYTHON = os.path.join(APP_ROOT, "py3", "bin", "python")
MOD = "pipeline_task"
PATHS_LOGINED = [
f"/{MOD}/index.ui",
f"/{MOD}/task_list.ui",
f"/{MOD}/task_detail.ui",
f"/{MOD}/task_submit.ui",
f"/{MOD}/api/task_submit.dspy",
f"/{MOD}/api/task_list.dspy",
f"/{MOD}/api/task_detail.dspy",
f"/{MOD}/api/task_node.dspy",
f"/{MOD}/api/task_modify.dspy",
f"/{MOD}/api/task_control.dspy",
]
PATHS_ANY = [
f"/{MOD}/pipeline_task.js",
]
def register_paths():
for path in PATHS_ANY:
subprocess.run([PYTHON, SET_ROLE_PERM, "any", path], cwd=APP_ROOT)
print(f" any: {path}")
for path in PATHS_LOGINED:
subprocess.run([PYTHON, SET_ROLE_PERM, "logined", path], cwd=APP_ROOT)
print(f" logined: {path}")
if __name__ == "__main__":
print(f"=== pipeline_task RBAC registration ===")
print(f"App root: {APP_ROOT}")
register_paths()
print("Done.")