This commit is contained in:
ymq1 2025-04-23 08:02:32 +00:00
parent 4521bcb143
commit 4fd994eb4c

View File

@ -8,8 +8,8 @@ from appPublic.jsonConfig import getConfig
from appPublic.log import debug, exception from appPublic.log import debug, exception
from appPublic.dictObject import DictObject from appPublic.dictObject import DictObject
from appPublic.uniqueID import getID from appPublic.uniqueID import getID
from ahserver.globalEnv import password_encode
from ahserver.auth_api import AuthAPI, user_login from ahserver.auth_api import AuthAPI, user_login
from ahserver.globalEnv import password_encode
from ahserver.serverenv import ServerEnv, get_serverenv, set_serverenv from ahserver.serverenv import ServerEnv, get_serverenv, set_serverenv
import jwt 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" 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() db = DBPools()
roles = [] roles = []
dbname = get_dbname() dbname = await get_dbname()
async with db.sqlorContext(dbname) as sor: async with db.sqlorContext(dbname) as sor:
recs = await sor.sqlExe(sql, {'userid':userid}) recs = await sor.sqlExe(sql, {'userid':userid})
if len(recs) < 1: if len(recs) < 1:
@ -88,16 +88,21 @@ async def register_user(sor, ns):
await create_user(sor, ns) await create_user(sor, ns)
return id return id
def get_dbname(): def load_rbac():
f = get_serverenv('get_module_dbname') AuthAPI.checkUserPermission = objcheckperm
if f is None: env = ServerEnv()
raise Exception('get_module_dbname() not defined') env.get_user_roles = get_user_roles
dbname = f('rbac') 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 return dbname
async def checkUserPassword(request, username, password): async def checkUserPassword(request, username, password):
db = DBPools() db = DBPools()
dbname = get_dbname() dbname = await get_dbname()
async with db.sqlorContext(dbname) as sor: async with db.sqlorContext(dbname) as sor:
sql = "select * from users where username=${username}$ and password=${password}$" sql = "select * from users where username=${username}$ and password=${password}$"
recs = await sor.sqlExe(sql, {'username':username, '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}$ where c.userid = ${userid}$
""" """
dbname = get_dbname() dbname = await get_dbname()
db = DBPools() db = DBPools()
async with db.sqlorContext(dbname) as sor: async with db.sqlorContext(dbname) as sor:
perms = await sor.R('permission', {'path':path}) perms = await sor.R('permission', {'path':path})