scene/scripts/load_path.py

65 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
"""scene 模块 RBAC 路径注册(显式路径,禁止通配符)。"""
import os
import sys
def find_sage_root():
candidates = [
os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..")),
os.path.expanduser("~/repos/sage"),
os.path.expanduser("~/sage"),
]
for c in candidates:
if os.path.isdir(os.path.join(c, "wwwroot")) and os.path.isdir(os.path.join(c, "py3", "bin")):
return c
return None
SAGE_ROOT = find_sage_root()
PATHS_ANY = [
]
PATHS_LOGINED = [
"/scene",
"/scene/index.ui",
"/scene/import_page.ui",
"/scene/scene",
"/scene/scene/index.ui",
"/scene/scene/get_scene.dspy",
"/scene/scene/add_scene.dspy",
"/scene/scene/update_scene.dspy",
"/scene/scene/delete_scene.dspy",
"/scene/scene_import",
"/scene/scene_import/index.ui",
"/scene/scene_import/get_scene_import.dspy",
"/scene/api/list_scenes.dspy",
"/scene/api/create_scene.dspy",
"/scene/api/scene_update.dspy",
"/scene/api/scene_delete.dspy",
"/scene/api/get_search_world_id.dspy",
"/scene/api/get_search_scene_type.dspy",
"/scene/api/get_search_status.dspy",
"/scene/api/scene_import.dspy",
]
def main():
if SAGE_ROOT is None:
print("Sage root not found, skip RBAC registration.")
return
sys.path.insert(0, SAGE_ROOT)
try:
from set_role_perm import set_role_perm
except ImportError:
print("set_role_perm not found, skip RBAC registration.")
return
for p in PATHS_ANY:
set_role_perm(p, "any")
for p in PATHS_LOGINED:
set_role_perm(p, "logined")
if __name__ == "__main__":
main()