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