57 lines
2.3 KiB
Plaintext
57 lines
2.3 KiB
Plaintext
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):
|
|
"""
|
|
添加用户
|
|
`id`: '用户id',
|
|
`name` : '姓名',
|
|
`password` :'密码',
|
|
`email` : '邮件地址',
|
|
`orgid`: '所属机构',
|
|
`nick_name`: '显示名',
|
|
`address` :地址',
|
|
`mobile`: '手机'
|
|
"""
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
if ns.get('user_reseller'):
|
|
user_reseller = '1'
|
|
else:
|
|
user_reseller = '0'
|
|
ns['password'] = password_encode(ns['password'])
|
|
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'})
|
|
userrole = await sor.R('userrole', {'roleid': rolereacs[0]['id'], 'del_flg': '0'})
|
|
if len(userrole) >= 1:
|
|
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()})
|
|
return {'status': True, 'msg': '添加成功', 'userid': ns['id']}
|
|
|
|
ret = await addUser(params_kw)
|
|
return ret |