bufix
This commit is contained in:
parent
5dd0c98f3b
commit
94909bf061
9
rbac/audit_log.py
Normal file
9
rbac/audit_log.py
Normal file
@ -0,0 +1,9 @@
|
||||
from sqlor.dbpools import DBPools
|
||||
from appPublic.dictObject import DictObject
|
||||
from appPublic.uniqueID import getID
|
||||
import json
|
||||
|
||||
def write_audit_log(sor, request):
|
||||
id = getID()
|
||||
params_kw = get_params_kw(request)
|
||||
|
@ -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.auth_api import AuthAPI, user_login
|
||||
from ahserver.globalEnv import password_encode
|
||||
from ahserver.auth_api import AuthAPI, user_login
|
||||
from ahserver.serverenv import ServerEnv, get_serverenv, set_serverenv
|
||||
import jwt
|
||||
|
||||
@ -88,13 +88,6 @@ async def register_user(sor, ns):
|
||||
await create_user(sor, ns)
|
||||
return id
|
||||
|
||||
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')
|
||||
|
12
rbac/init.py
Normal file
12
rbac/init.py
Normal file
@ -0,0 +1,12 @@
|
||||
from rbac.check_perm import objcheckperm, get_user_role, checkUserPassword, register_user
|
||||
from rbac.set_role_perms import set_role_perm, set_role_perms
|
||||
|
||||
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
|
||||
env.set_role_perm = set_role_perm
|
||||
env.set_role_perms = set_role_perms
|
||||
|
55
script/roleperm.py → rbac/set_role_perms.py
Executable file → Normal file
55
script/roleperm.py → rbac/set_role_perms.py
Executable file → Normal file
@ -9,13 +9,17 @@ from appPublic.asynciorun import run
|
||||
async def set_role_perm(dbname, module, orgtype, role, tblname):
|
||||
db = DBPools()
|
||||
async with db.sqlorContext(dbname) as sor:
|
||||
paths = [
|
||||
f'/{module}/{tblname}/index.ui',
|
||||
f'/{module}/{tblname}/get_{tblname}.dspy',
|
||||
f'/{module}/{tblname}/add_{tblname}.dspy',
|
||||
f'/{module}/{tblname}/delete_{tblname}.dspy',
|
||||
f'/{module}/{tblname}/update_{tblname}.dspy'
|
||||
]
|
||||
if '/' in dbname:
|
||||
path = [f'/{module}/{dbname}']
|
||||
else:
|
||||
paths = [
|
||||
f'/{module}/{tblname}',
|
||||
f'/{module}/{tblname}/index.ui',
|
||||
f'/{module}/{tblname}/get_{tblname}.dspy',
|
||||
f'/{module}/{tblname}/add_{tblname}.dspy',
|
||||
f'/{module}/{tblname}/delete_{tblname}.dspy',
|
||||
f'/{module}/{tblname}/update_{tblname}.dspy'
|
||||
]
|
||||
for pat in paths:
|
||||
recs = await sor.R('permission', {'path': pat})
|
||||
if len(recs) == 0:
|
||||
@ -40,25 +44,28 @@ async def set_role_perm(dbname, module, orgtype, role, tblname):
|
||||
})
|
||||
print(f'{orgtype=}, {role=}, {tblname=} permission configured')
|
||||
|
||||
async def main():
|
||||
if len(sys.argv) < 6:
|
||||
print(f'{sys.argv[0]} dbname module orgtype role tblname ...\n')
|
||||
sys.exit(1)
|
||||
dbname = sys.argv[1]
|
||||
module = sys.argv[2]
|
||||
orgtype = sys.argv[3]
|
||||
role = sys.argv[4]
|
||||
for tblname in sys.argv[5:]:
|
||||
async def set_role_perms(dbname, module, orgtype, role, items):
|
||||
for tblname in items:
|
||||
await set_role_perm(dbname, module, orgtype, role, tblname)
|
||||
|
||||
def run(coro):
|
||||
p = '.'
|
||||
config = getConfig(p, {'woridir':p})
|
||||
DBPools(config.databases)
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
loop.run_until_complete(coro())
|
||||
|
||||
if __name__ == '__main__':
|
||||
async def main():
|
||||
if len(sys.argv) < 6:
|
||||
print(f'{sys.argv[0]} dbname module orgtype role tblname ...\n')
|
||||
sys.exit(1)
|
||||
dbname = sys.argv[1]
|
||||
module = sys.argv[2]
|
||||
orgtype = sys.argv[3]
|
||||
role = sys.argv[4]
|
||||
await set_role_perms(dbname, module, orgtype, role, sys.argv[5:])
|
||||
|
||||
def run(coro):
|
||||
p = '.'
|
||||
config = getConfig(p, {'woridir':p})
|
||||
DBPools(config.databases)
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
loop.run_until_complete(coro())
|
||||
|
||||
run(main)
|
||||
|
0
rbac/version.py
Executable file → Normal file
0
rbac/version.py
Executable file → Normal file
Loading…
Reference in New Issue
Block a user