#!/usr/bin/env python3 """pipeline_task 模块 RBAC 权限注册。""" import os import sys import subprocess SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) # Find Sage root SAGE_ROOT = None for candidate in [ os.path.join(SCRIPT_DIR, "..", ".."), os.path.expanduser("~/repos/sage"), os.path.expanduser("~/sage"), os.path.expanduser("~/test/pipeline-app"), ]: if os.path.isdir(os.path.join(candidate, "wwwroot")) and os.path.isdir(os.path.join(candidate, "py3")): SAGE_ROOT = os.path.abspath(candidate) break if not SAGE_ROOT: print("ERROR: Cannot find Sage/pipeline-app root directory") sys.exit(1) SET_ROLE_PERM = os.path.join(SAGE_ROOT, "set_role_perm.py") PYTHON = os.path.join(SAGE_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=SAGE_ROOT) print(f" any: {path}") for path in PATHS_LOGINED: subprocess.run([PYTHON, SET_ROLE_PERM, "logined", path], cwd=SAGE_ROOT) print(f" logined: {path}") if __name__ == "__main__": print(f"=== pipeline_task RBAC registration ===") print(f"Root: {SAGE_ROOT}") register_paths() print("Done.")