41 lines
1.4 KiB
Plaintext
41 lines
1.4 KiB
Plaintext
async def getResellerAdminRole(ns={}):
|
||
"""
|
||
入参:分销商orgid -> 通过users表获取对应机构下user -> 筛选获取管理员
|
||
:param ns:
|
||
:return:
|
||
"""
|
||
db = DBPools()
|
||
async with db.sqlorContext('kboss') as sor:
|
||
if not ns.get('orgid'):
|
||
return {
|
||
"status": False,
|
||
"msg": "orgid id is empty, please check",
|
||
}
|
||
# get users
|
||
users = await sor.R('users', {'orgid': ns.get('orgid'), 'del_flg': '0'})
|
||
user_id_list = [item.get('id') for item in users]
|
||
# get admin config id
|
||
rolereacs = await sor.R('role', {'role': '管理员','del_flg':'0','org_type':'1'})
|
||
roleadminid = rolereacs[0]['id']
|
||
# get all admin
|
||
userrole_list = await sor.R('userrole', {'roleid': roleadminid,'del_flg':'0'})
|
||
userrole_id_list = [ite.get('userid') for ite in userrole_list]
|
||
retB = list(set(user_id_list).intersection(set(userrole_id_list)))
|
||
if not retB:
|
||
return {
|
||
'status': False,
|
||
'msg': 'can not find admin user'
|
||
}
|
||
# filter all users with admins
|
||
for user in users:
|
||
userid = user.get('id')
|
||
if userid in retB:
|
||
user.pop('password')
|
||
return {
|
||
'status': True,
|
||
'msg': user
|
||
}
|
||
|
||
|
||
ret = await getResellerAdminRole(params_kw)
|
||
return ret |