#!/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()