entity/scripts/load_path.py

65 lines
1.8 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""entity 模块 RBAC 权限注册脚本(显式路径,禁止通配符)。"""
import os
import sys
MODULE = 'entity'
PATHS_ANY = []
PATHS_LOGINED = [
'/%s' % MODULE,
'/%s/index.ui' % MODULE,
'/%s/import_page.ui' % MODULE,
'/%s/entity' % MODULE,
'/%s/entity/index.ui' % MODULE,
'/%s/entity/get_entity.dspy' % MODULE,
'/%s/entity/add_entity.dspy' % MODULE,
'/%s/entity/update_entity.dspy' % MODULE,
'/%s/entity/delete_entity.dspy' % MODULE,
'/%s/entity_import' % MODULE,
'/%s/entity_import/index.ui' % MODULE,
'/%s/entity_import/get_entity_import.dspy' % MODULE,
'/%s/api/entity_import.dspy' % MODULE,
'/%s/api/entity_create.dspy' % MODULE,
'/%s/api/entity_update.dspy' % MODULE,
'/%s/api/entity_delete.dspy' % MODULE,
'/%s/api/entity_import_guard.dspy' % MODULE,
'/%s/api/get_search_world_id.dspy' % MODULE,
'/%s/api/get_search_scene_id.dspy' % MODULE,
'/%s/api/get_search_entity_type.dspy' % MODULE,
'/%s/api/get_search_status.dspy' % MODULE,
]
def find_sage_root():
candidates = [
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
def main():
sage_root = find_sage_root()
if not sage_root:
print('Sage root not found, skip entity RBAC registration')
return
sys.path.insert(0, sage_root)
from set_role_perm import set_role_perm # noqa: E402
for p in PATHS_ANY:
set_role_perm(p, 'any')
for p in PATHS_LOGINED:
set_role_perm(p, 'logined')
print('entity RBAC registered: %d any + %d logined' % (len(PATHS_ANY), len(PATHS_LOGINED)))
if __name__ == '__main__':
main()