scense_drag/scripts/load_path.py
2026-08-29 21:10:23 +08:00

80 lines
2.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""drag 模块 RBAC 权限注册(显式路径,禁止通配符)。
角色分层:
- any: 静态 JS/CSSdrag-canvas.js / drag-editor.js / drag.css
- logined: .ui 页面与 /api/*.dspy 接口(画布/模板/编译/校验/发布)
按 per-module RBAC 模式调用 set_role_perm.py同时注册目录路径与文件路径。
"""
import os
import sys
def find_sage_root():
candidates = [
os.path.expanduser('~/repos/sage'),
os.path.expanduser('~/sage'),
'/d/scense/scense_app',
]
for c in candidates:
if os.path.isdir(os.path.join(c, 'wwwroot')):
return c
return None
def main():
sage = find_sage_root()
script_dir = os.path.dirname(os.path.abspath(__file__))
mod = 'drag'
if sage:
sys.path.insert(0, sage)
try:
from set_role_perm import set_role_perm
except Exception as e:
print('[drag] 无法导入 set_role_perm: %s(尝试直接调用)' % e)
set_role_perm = None
else:
print('[drag] 未找到 Sage 根目录,仅打印待注册路径')
set_role_perm = None
# any 角色:静态资源
any_paths = [
'/drag/drag-canvas.js', '/drag/drag-editor.js', '/drag/drag.css',
]
# logined 角色:页面与接口
logined_paths = [
'/drag/index.ui', '/drag/editor.ui',
'/drag/api/block_defs.dspy', '/drag/api/graph_save.dspy',
'/drag/api/graph_list.dspy', '/drag/api/graph_get.dspy',
'/drag/api/graph_delete.dspy', '/drag/api/graph_compile.dspy',
'/drag/api/graph_validate.dspy', '/drag/api/graph_publish.dspy',
'/drag/api/template_save.dspy', '/drag/api/template_list.dspy',
'/drag/api/template_delete.dspy', '/drag/api/template_use.dspy',
'/drag/api/get_search_entity.dspy', '/drag/api/get_search_drag_status.dspy',
'/drag/api/get_search_template_category.dspy',
# CRUD 子目录xls2ui 生成,注册目录+文件)
'/drag/drag_graph', '/drag/drag_graph/index.ui',
'/drag/drag_graph/get_drag_graph.dspy', '/drag/drag_graph/add_drag_graph.dspy',
'/drag/drag_graph/update_drag_graph.dspy', '/drag/drag_graph/delete_drag_graph.dspy',
'/drag/drag_template', '/drag/drag_template/index.ui',
'/drag/drag_template/get_drag_template.dspy', '/drag/drag_template/add_drag_template.dspy',
'/drag/drag_template/update_drag_template.dspy', '/drag/drag_template/delete_drag_template.dspy',
]
for p in any_paths:
if set_role_perm:
set_role_perm(p, 'any')
else:
print('any %s' % p)
for p in logined_paths:
if set_role_perm:
set_role_perm(p, 'logined')
else:
print('logined %s' % p)
print('[drag] load_path done. 若未找到 Sage 根,请手工在中心 load_path.py 添加以上路径。')
if __name__ == '__main__':
main()