65 lines
1.7 KiB
Python
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()
|