This commit is contained in:
ping 2026-07-16 13:32:43 +08:00
parent 52d9bb16f8
commit 90225fee1c
2 changed files with 37 additions and 2 deletions

View File

@ -1,3 +1,15 @@
async def get_reseller_user_tenant_orgid(sor, orgid):
reseller = await sor.R('reseller', {'orgid': orgid, 'del_flg': '0'})
if len(reseller) >= 1:
return orgid
org = await sor.R('organization', {'id': orgid, 'del_flg': '0'})
if len(org) >= 1 and org[0].get('parentid'):
return org[0]['parentid']
main_org = await sor.R('organization', {'org_type': '0', 'del_flg': '0'})
if len(main_org) >= 1:
return main_org[0]['id']
return None
async def reseller_add_user(ns):
"""
添加用户
@ -15,11 +27,16 @@ async def reseller_add_user(ns):
try:
ns['id'] = uuid()
ns['password'] = password_encode(ns['password'])
user = await sor.R('users', {'username': ns['username']})
tenant_orgid = await get_reseller_user_tenant_orgid(sor, ns.get('orgid'))
if not tenant_orgid:
return {'status': False, 'msg': '未找到用户所属租户'}
user_sql = """select id from users where username = '%s' and tenant_orgid = '%s' and del_flg = '0' limit 1;""" % (ns['username'], tenant_orgid)
user = await sor.sqlExe(user_sql, {})
if len(user) >= 1:
return {'status': False, 'msg': '用户名重复'}
rolereacs = await sor.R('role', {'role': '管理员', 'del_flg': '0', 'org_type': '1'})
ns['user_reseller'] = '1'
ns['tenant_orgid'] = tenant_orgid
await sor.C('users', ns)
await sor.C('userrole', {'userid': ns['id'], 'roleid': rolereacs[0]['id'], 'id': uuid()})
return {'status': True, 'msg': '用户添加成功', 'userid': ns['id']}

View File

@ -1,3 +1,15 @@
async def get_user_tenant_orgid(sor, orgid):
reseller = await sor.R('reseller', {'orgid': orgid, 'del_flg': '0'})
if len(reseller) >= 1:
return orgid
org = await sor.R('organization', {'id': orgid, 'del_flg': '0'})
if len(org) >= 1 and org[0].get('parentid'):
return org[0]['parentid']
main_org = await sor.R('organization', {'org_type': '0', 'del_flg': '0'})
if len(main_org) >= 1:
return main_org[0]['id']
return None
async def addUser(ns):
"""
添加用户
@ -17,11 +29,16 @@ async def addUser(ns):
else:
user_reseller = '0'
ns['password'] = password_encode(ns['password'])
user = await sor.R('users', {'username': ns['username']})
tenant_orgid = await get_user_tenant_orgid(sor, ns.get('orgid'))
if not tenant_orgid:
return {'status': False, 'msg': '未找到用户所属租户'}
user_sql = """select id from users where username = '%s' and tenant_orgid = '%s' and del_flg = '0' limit 1;""" % (ns['username'], tenant_orgid)
user = await sor.sqlExe(user_sql, {})
if len(user) >= 1:
return {'status': False, 'msg': '用户名重复'}
ns['id'] = uuid()
if not ns.get('type'):
ns['tenant_orgid'] = tenant_orgid
await sor.C('users', ns)
return {'status': True, 'msg': '添加成功', 'userid': ns['id']}
rolereacs = await sor.R('role', {'role': '管理员', 'del_flg': '0', 'org_type': '0'})
@ -30,6 +47,7 @@ async def addUser(ns):
return {'status': False, 'msg': '已有管理员'}
ns['orgid'] = 'mIWUHBeeDM8mwAFPIQ8pS'
ns['user_reseller'] = user_reseller
ns['tenant_orgid'] = ns['orgid']
await sor.C('users', ns)
ns['orgid'] = 'mIWUHBeeDM8mwAFPIQ8pS'
await sor.C('userrole', {'userid': ns['id'], 'roleid': rolereacs[0]['id'], 'id': uuid()})