fix: correct indentation in batch loop, fix for-else bug causing continue syntax error
This commit is contained in:
parent
3bb57dafd7
commit
2fb9098699
@ -34,10 +34,10 @@ dappid = params_kw.get('dappid', '')
|
|||||||
|
|
||||||
# 参数验证
|
# 参数验证
|
||||||
if not dappid:
|
if not dappid:
|
||||||
return json.dumps({
|
return json.dumps({
|
||||||
'status': 'error',
|
'status': 'error',
|
||||||
'message': 'dappid参数必填'
|
'message': 'dappid参数必填'
|
||||||
}, ensure_ascii=False)
|
}, ensure_ascii=False)
|
||||||
|
|
||||||
# 获取数据库连接
|
# 获取数据库连接
|
||||||
dbname = get_module_dbname('dapi')
|
dbname = get_module_dbname('dapi')
|
||||||
@ -47,185 +47,185 @@ db = DBPools()
|
|||||||
create_apikey_func = create_user_apikey
|
create_apikey_func = create_user_apikey
|
||||||
|
|
||||||
async with db.sqlorContext(dbname) as sor:
|
async with db.sqlorContext(dbname) as sor:
|
||||||
if action == 'single':
|
if action == 'single':
|
||||||
# 单个用户同步
|
# 单个用户同步
|
||||||
user_data = params_kw.get('user', {})
|
user_data = params_kw.get('user', {})
|
||||||
|
|
||||||
user_id = user_data.get('id', '')
|
user_id = user_data.get('id', '')
|
||||||
user_orgid = user_data.get('orgid', '')
|
user_orgid = user_data.get('orgid', '')
|
||||||
|
|
||||||
if not user_id or not user_orgid:
|
if not user_id or not user_orgid:
|
||||||
return json.dumps({
|
return json.dumps({
|
||||||
'status': 'error',
|
'status': 'error',
|
||||||
'message': 'user.id和user.orgid参数必填'
|
'message': 'user.id和user.orgid参数必填'
|
||||||
}, ensure_ascii=False)
|
}, ensure_ascii=False)
|
||||||
|
|
||||||
# 如果dapi模块提供了create_user_apikey函数,直接调用
|
# 如果dapi模块提供了create_user_apikey函数,直接调用
|
||||||
if create_apikey_func:
|
if create_apikey_func:
|
||||||
result = await create_user_apikey(
|
result = await create_user_apikey(
|
||||||
sor,
|
sor,
|
||||||
dappid,
|
dappid,
|
||||||
user_id,
|
user_id,
|
||||||
user_orgid,
|
user_orgid,
|
||||||
**{k: v for k, v in user_data.items() if k not in ['id', 'orgid']}
|
**{k: v for k, v in user_data.items() if k not in ['id', 'orgid']}
|
||||||
)
|
)
|
||||||
return json.dumps(result, ensure_ascii=False)
|
return json.dumps(result, ensure_ascii=False)
|
||||||
|
|
||||||
# 否则自己创建apikey
|
# 否则自己创建apikey
|
||||||
# 检查apikey是否已存在
|
# 检查apikey是否已存在
|
||||||
existing = await sor.R('downapikey', {
|
existing = await sor.R('downapikey', {
|
||||||
'dappid': dappid,
|
'dappid': dappid,
|
||||||
'duserid': user_id,
|
'duserid': user_id,
|
||||||
'dorgid': user_orgid
|
'dorgid': user_orgid
|
||||||
})
|
})
|
||||||
|
|
||||||
if existing:
|
if existing:
|
||||||
# 验证用户是否存在
|
# 验证用户是否存在
|
||||||
user_check = await sor.R('users', {'id': existing[0].userid})
|
user_check = await sor.R('users', {'id': existing[0].userid})
|
||||||
if not user_check:
|
if not user_check:
|
||||||
# 脏数据:downapikey 存在但用户已删除,清理后重新创建
|
# 脏数据:downapikey 存在但用户已删除,清理后重新创建
|
||||||
await sor.D('downapikey', {'id': existing[0].id})
|
await sor.D('downapikey', {'id': existing[0].id})
|
||||||
existing = None
|
existing = None
|
||||||
else:
|
else:
|
||||||
apikey = password_decode(existing[0].apikey)
|
apikey = password_decode(existing[0].apikey)
|
||||||
return json.dumps({
|
return json.dumps({
|
||||||
'status': 'success',
|
'status': 'success',
|
||||||
'data': [{
|
'data': [{
|
||||||
'user_id': user_id,
|
'user_id': user_id,
|
||||||
'username': user_data.get('username', ''),
|
'username': user_data.get('username', ''),
|
||||||
'apikey': apikey,
|
'apikey': apikey,
|
||||||
'status': 'existing'
|
'status': 'existing'
|
||||||
}]
|
}]
|
||||||
}, ensure_ascii=False)
|
}, ensure_ascii=False)
|
||||||
|
|
||||||
# 创建新apikey
|
# 创建新apikey
|
||||||
apikey_id = getID()
|
apikey_id = getID()
|
||||||
apikey_value = getID()
|
apikey_value = getID()
|
||||||
|
|
||||||
ns = {
|
ns = {
|
||||||
'id': apikey_id,
|
'id': apikey_id,
|
||||||
'dappid': dappid,
|
'dappid': dappid,
|
||||||
'dorgid': user_orgid,
|
'dorgid': user_orgid,
|
||||||
'duserid': user_id,
|
'duserid': user_id,
|
||||||
'orgid': user_orgid,
|
'orgid': user_orgid,
|
||||||
'userid': user_id,
|
'userid': user_id,
|
||||||
'apikey': password_encode(apikey_value),
|
'apikey': password_encode(apikey_value),
|
||||||
'enabled': '1',
|
'enabled': '1',
|
||||||
'created_at': datetime.now().strftime('%Y-%m-%d'),
|
'created_at': datetime.now().strftime('%Y-%m-%d'),
|
||||||
'expired_date': '9999-12-31'
|
'expired_date': '9999-12-31'
|
||||||
}
|
}
|
||||||
|
|
||||||
await sor.C('downapikey', ns)
|
await sor.C('downapikey', ns)
|
||||||
|
|
||||||
return json.dumps({
|
return json.dumps({
|
||||||
'status': 'success',
|
'status': 'success',
|
||||||
'data': [{
|
'data': [{
|
||||||
'user_id': user_id,
|
'user_id': user_id,
|
||||||
'username': user_data.get('username', ''),
|
'username': user_data.get('username', ''),
|
||||||
'apikey': apikey_value,
|
'apikey': apikey_value,
|
||||||
'status': 'created'
|
'status': 'created'
|
||||||
}]
|
}]
|
||||||
}, ensure_ascii=False)
|
}, ensure_ascii=False)
|
||||||
|
|
||||||
elif action == 'batch':
|
elif action == 'batch':
|
||||||
# 批量用户同步
|
# 批量用户同步
|
||||||
users_list = params_kw.get('users', [])
|
users_list = params_kw.get('users', [])
|
||||||
if not users_list:
|
if not users_list:
|
||||||
return json.dumps({
|
return json.dumps({
|
||||||
'status': 'error',
|
'status': 'error',
|
||||||
'message': 'users参数必填(用户对象数组)'
|
'message': 'users参数必填(用户对象数组)'
|
||||||
}, ensure_ascii=False)
|
}, ensure_ascii=False)
|
||||||
|
|
||||||
result_data = []
|
result_data = []
|
||||||
|
|
||||||
for user_data in users_list:
|
for user_data in users_list:
|
||||||
user_id = user_data.get('id', '')
|
user_id = user_data.get('id', '')
|
||||||
user_orgid = user_data.get('orgid', '')
|
user_orgid = user_data.get('orgid', '')
|
||||||
|
|
||||||
if not user_id or not user_orgid:
|
if not user_id or not user_orgid:
|
||||||
result_data.append({
|
result_data.append({
|
||||||
'user_id': user_id,
|
'user_id': user_id,
|
||||||
'status': 'error',
|
'status': 'error',
|
||||||
'message': 'user.id和user.orgid必填'
|
'message': 'user.id和user.orgid必填'
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# 如果dapi模块提供了create_user_apikey函数,直接调用
|
# 如果dapi模块提供了create_user_apikey函数,直接调用
|
||||||
if create_apikey_func:
|
if create_apikey_func:
|
||||||
result = await create_user_apikey(
|
result = await create_user_apikey(
|
||||||
sor,
|
sor,
|
||||||
dappid,
|
dappid,
|
||||||
user_id,
|
user_id,
|
||||||
user_orgid,
|
user_orgid,
|
||||||
**{k: v for k, v in user_data.items() if k not in ['id', 'orgid']}
|
**{k: v for k, v in user_data.items() if k not in ['id', 'orgid']}
|
||||||
)
|
)
|
||||||
|
|
||||||
result_data.append({
|
result_data.append({
|
||||||
'user_id': user_id,
|
'user_id': user_id,
|
||||||
'username': user_data.get('username', ''),
|
'username': user_data.get('username', ''),
|
||||||
'apikey': result.get('apikey', ''),
|
'apikey': result.get('apikey', ''),
|
||||||
'status': result.get('message', 'created'),
|
'status': result.get('message', 'created'),
|
||||||
'result_status': result.get('status')
|
'result_status': result.get('status')
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
# 检查apikey是否已存在
|
# 检查apikey是否已存在
|
||||||
existing = await sor.R('downapikey', {
|
existing = await sor.R('downapikey', {
|
||||||
'dappid': dappid,
|
'dappid': dappid,
|
||||||
'duserid': user_id,
|
'duserid': user_id,
|
||||||
'dorgid': user_orgid
|
'dorgid': user_orgid
|
||||||
})
|
})
|
||||||
|
|
||||||
if existing:
|
if existing:
|
||||||
# 验证用户是否存在
|
# 验证用户是否存在
|
||||||
user_check = await sor.R('users', {'id': existing[0].userid})
|
user_check = await sor.R('users', {'id': existing[0].userid})
|
||||||
if not user_check:
|
if not user_check:
|
||||||
# 脏数据,清理后重新创建
|
# 脏数据,清理后重新创建
|
||||||
await sor.D('downapikey', {'id': existing[0].id})
|
await sor.D('downapikey', {'id': existing[0].id})
|
||||||
existing = None
|
existing = None
|
||||||
else:
|
else:
|
||||||
apikey = password_decode(existing[0].apikey)
|
apikey = password_decode(existing[0].apikey)
|
||||||
result_data.append({
|
result_data.append({
|
||||||
'user_id': user_id,
|
'user_id': user_id,
|
||||||
'username': user_data.get('username', ''),
|
'username': user_data.get('username', ''),
|
||||||
'apikey': apikey,
|
'apikey': apikey,
|
||||||
'status': 'existing'
|
'status': 'existing'
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
else:
|
|
||||||
# 创建新apikey
|
|
||||||
apikey_id = getID()
|
|
||||||
apikey_value = getID()
|
|
||||||
|
|
||||||
ns = {
|
# 创建新apikey
|
||||||
'id': apikey_id,
|
apikey_id = getID()
|
||||||
'dappid': dappid,
|
apikey_value = getID()
|
||||||
'dorgid': user_orgid,
|
|
||||||
'duserid': user_id,
|
|
||||||
'orgid': user_orgid,
|
|
||||||
'userid': user_id,
|
|
||||||
'apikey': password_encode(apikey_value),
|
|
||||||
'enabled': '1',
|
|
||||||
'created_at': datetime.now().strftime('%Y-%m-%d'),
|
|
||||||
'expired_date': '9999-12-31'
|
|
||||||
}
|
|
||||||
|
|
||||||
await sor.C('downapikey', ns)
|
ns = {
|
||||||
|
'id': apikey_id,
|
||||||
|
'dappid': dappid,
|
||||||
|
'dorgid': user_orgid,
|
||||||
|
'duserid': user_id,
|
||||||
|
'orgid': user_orgid,
|
||||||
|
'userid': user_id,
|
||||||
|
'apikey': password_encode(apikey_value),
|
||||||
|
'enabled': '1',
|
||||||
|
'created_at': datetime.now().strftime('%Y-%m-%d'),
|
||||||
|
'expired_date': '9999-12-31'
|
||||||
|
}
|
||||||
|
|
||||||
result_data.append({
|
await sor.C('downapikey', ns)
|
||||||
'user_id': user_id,
|
|
||||||
'username': user_data.get('username', ''),
|
|
||||||
'apikey': apikey_value,
|
|
||||||
'status': 'created'
|
|
||||||
})
|
|
||||||
|
|
||||||
return json.dumps({
|
result_data.append({
|
||||||
'status': 'success',
|
'user_id': user_id,
|
||||||
'data': result_data,
|
'username': user_data.get('username', ''),
|
||||||
'total': len(result_data)
|
'apikey': apikey_value,
|
||||||
}, ensure_ascii=False)
|
'status': 'created'
|
||||||
|
})
|
||||||
|
|
||||||
else:
|
return json.dumps({
|
||||||
return json.dumps({
|
'status': 'success',
|
||||||
'status': 'error',
|
'data': result_data,
|
||||||
'message': 'action参数必须是single或batch'
|
'total': len(result_data)
|
||||||
}, ensure_ascii=False)
|
}, ensure_ascii=False)
|
||||||
|
|
||||||
|
else:
|
||||||
|
return json.dumps({
|
||||||
|
'status': 'error',
|
||||||
|
'message': 'action参数必须是single或batch'
|
||||||
|
}, ensure_ascii=False)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user