reallife_asset/scripts/load_path.py
yumoqing 0e5696f5da feat: 真人人像素材管理模块初始版本
- 支持火山方舟(Volcengine Ark)真人人像素材API
- AK/SK HMAC-SHA256签名(纯stdlib实现)
- 素材组合(Asset Group)管理: 创建认证、查询、删除
- 素材资产(Asset)管理: 上传、状态同步、删除
- 多供应商可扩展架构
- 完整CRUD + 前端UI + uapi SQL配置
- 12个API端点 + 6个前端页面
- 数据库表: rl_asset_group, rl_asset
2026-05-28 08:55:09 +08:00

63 lines
1.9 KiB
Python

#!/usr/bin/env python3
"""RBAC permission registration for reallife_asset module."""
import os, sys, subprocess
# Find Sage root
home = os.path.expanduser("~")
sage_root = ""
for candidate in [
os.path.join(home, "repos/sage"),
os.path.join(home, "sage"),
]:
if os.path.isdir(os.path.join(candidate, "wwwroot")):
sage_root = candidate
break
if not sage_root:
print("ERROR: Cannot find Sage root")
sys.exit(1)
python = os.path.join(sage_root, "py3/bin/python")
set_perm = os.path.join(sage_root, "set_role_perm.py")
# Permission definitions
paths_any = [] # No login required
paths_logined = [
"/reallife_asset",
"/reallife_asset/index.ui",
"/reallife_asset/group_manage.ui",
"/reallife_asset/asset_manage.ui",
"/reallife_asset/create_validate.ui",
"/reallife_asset/upload_asset.ui",
"/reallife_asset/sync_groups.ui",
"/reallife_asset/rl_asset_group_list",
"/reallife_asset/rl_asset_group_list/index.ui",
"/reallife_asset/rl_asset_list",
"/reallife_asset/rl_asset_list/index.ui",
"/reallife_asset/api/rl_asset_group_create.dspy",
"/reallife_asset/api/rl_asset_group_update.dspy",
"/reallife_asset/api/rl_asset_group_delete.dspy",
"/reallife_asset/api/rl_asset_create.dspy",
"/reallife_asset/api/rl_asset_update.dspy",
"/reallife_asset/api/rl_asset_delete.dspy",
"/reallife_asset/api/sync_asset_status.dspy",
"/reallife_asset/api/check_validate.dspy",
"/reallife_asset/api/sync_from_vendor.dspy",
"/reallife_asset/api/sync_assets.dspy",
"/reallife_asset/api/get_rl_asset_group_list.dspy",
"/reallife_asset/api/get_rl_asset_list.dspy",
]
def run_set_perm(role, path):
cmd = [python, set_perm, role, path]
print(f" {role:12s} {path}")
subprocess.run(cmd, cwd=sage_root)
print("Registering RBAC permissions for reallife_asset...")
for p in paths_any:
run_set_perm("any", p)
for p in paths_logined:
run_set_perm("logined", p)
print("Done.")