From 4fd994eb4cbf5795142a14a50135906dafd051fa Mon Sep 17 00:00:00 2001 From: ymq1 Date: Wed, 23 Apr 2025 08:02:32 +0000 Subject: [PATCH] bugfix --- rbac/check_perm.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/rbac/check_perm.py b/rbac/check_perm.py index 88d7d1a..3dbce9a 100644 --- a/rbac/check_perm.py +++ b/rbac/check_perm.py @@ -8,8 +8,8 @@ from appPublic.jsonConfig import getConfig from appPublic.log import debug, exception from appPublic.dictObject import DictObject from appPublic.uniqueID import getID -from ahserver.globalEnv import password_encode from ahserver.auth_api import AuthAPI, user_login +from ahserver.globalEnv import password_encode from ahserver.serverenv import ServerEnv, get_serverenv, set_serverenv import jwt @@ -46,7 +46,7 @@ async def get_user_roles(userid): sql = "select concat(b.orgtypeid, '.', b.name) as name from userrole a, role b where a.userid=${userid}$ and a.roleid = b.id" db = DBPools() roles = [] - dbname = get_dbname() + dbname = await get_dbname() async with db.sqlorContext(dbname) as sor: recs = await sor.sqlExe(sql, {'userid':userid}) if len(recs) < 1: @@ -88,16 +88,21 @@ async def register_user(sor, ns): await create_user(sor, ns) return id -def get_dbname(): - f = get_serverenv('get_module_dbname') - if f is None: - raise Exception('get_module_dbname() not defined') - dbname = f('rbac') +def load_rbac(): + AuthAPI.checkUserPermission = objcheckperm + env = ServerEnv() + env.get_user_roles = get_user_roles + env.check_user_password = checkUserPassword + env.register_user = register_user + +async def get_dbname(): + rf = RegisterFunction() + dbname = await rf.exe('get_module_dbname', 'rbac') return dbname async def checkUserPassword(request, username, password): db = DBPools() - dbname = get_dbname() + dbname = await get_dbname() async with db.sqlorContext(dbname) as sor: sql = "select * from users where username=${username}$ and password=${password}$" recs = await sor.sqlExe(sql, {'username':username, 'password':password}) @@ -144,7 +149,7 @@ right join userrole c on b.roleid = c.roleid where c.userid = ${userid}$ """ - dbname = get_dbname() + dbname = await get_dbname() db = DBPools() async with db.sqlorContext(dbname) as sor: perms = await sor.R('permission', {'path':path})