From b2bb281559d3364bafcb598ab363817c042b8607 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 3 Jun 2026 16:59:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20set=5Frole=5Fperm.py=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20SAGE=5FRBAC=5FDB=20=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E6=8C=87=E5=AE=9A=E7=9B=AE=E6=A0=87=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解决独立应用(如CMS)的RBAC数据库不匹配问题: - set_role_perm.py 原来硬编码 'sage' 数据库 - 独立应用 get_module_dbname 返回自己的数据库(如 ocai_cms) - 导致写入 sage 但读取 ocai_cms,权限检查失败 - 现在通过 SAGE_RBAC_DB 环境变量指定,默认仍为 sage --- set_role_perm.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/set_role_perm.py b/set_role_perm.py index 2ac5633..9265315 100644 --- a/set_role_perm.py +++ b/set_role_perm.py @@ -1,3 +1,4 @@ +import os import sys import asyncio from sqlor.dbpools import DBPools @@ -34,7 +35,8 @@ async def main(): role = sys.argv[1] path = sys.argv[2] - async with db.sqlorContext('sage') as sor: + dbname = os.environ.get('SAGE_RBAC_DB', 'sage') + async with db.sqlorContext(dbname) as sor: perms = None if '%' in path: perms = await sor.sqlExe("select * from permission where path like ${path}$", {'path': path})