# -*- 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()