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.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.auth_api import AuthAPI, user_login
|
|
||||||
from ahserver.globalEnv import password_encode
|
from ahserver.globalEnv import password_encode
|
||||||
|
from ahserver.auth_api import AuthAPI, user_login
|
||||||
from ahserver.serverenv import ServerEnv, get_serverenv, set_serverenv
|
from ahserver.serverenv import ServerEnv, get_serverenv, set_serverenv
|
||||||
import jwt
|
import jwt
|
||||||
|
|
||||||
@ -88,13 +88,6 @@ async def register_user(sor, ns):
|
|||||||
await create_user(sor, ns)
|
await create_user(sor, ns)
|
||||||
return id
|
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():
|
async def get_dbname():
|
||||||
rf = RegisterFunction()
|
rf = RegisterFunction()
|
||||||
dbname = await rf.exe('get_module_dbname', 'rbac')
|
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):
|
async def set_role_perm(dbname, module, orgtype, role, tblname):
|
||||||
db = DBPools()
|
db = DBPools()
|
||||||
async with db.sqlorContext(dbname) as sor:
|
async with db.sqlorContext(dbname) as sor:
|
||||||
paths = [
|
if '/' in dbname:
|
||||||
f'/{module}/{tblname}/index.ui',
|
path = [f'/{module}/{dbname}']
|
||||||
f'/{module}/{tblname}/get_{tblname}.dspy',
|
else:
|
||||||
f'/{module}/{tblname}/add_{tblname}.dspy',
|
paths = [
|
||||||
f'/{module}/{tblname}/delete_{tblname}.dspy',
|
f'/{module}/{tblname}',
|
||||||
f'/{module}/{tblname}/update_{tblname}.dspy'
|
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:
|
for pat in paths:
|
||||||
recs = await sor.R('permission', {'path': pat})
|
recs = await sor.R('permission', {'path': pat})
|
||||||
if len(recs) == 0:
|
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')
|
print(f'{orgtype=}, {role=}, {tblname=} permission configured')
|
||||||
|
|
||||||
async def main():
|
async def set_role_perms(dbname, module, orgtype, role, items):
|
||||||
if len(sys.argv) < 6:
|
for tblname in items:
|
||||||
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:]:
|
|
||||||
await set_role_perm(dbname, module, orgtype, role, tblname)
|
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__':
|
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)
|
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