fix: use raw SQL for user password update to avoid sor.U() generating wrong WHERE clause
This commit is contained in:
parent
1fc2be73c0
commit
bec9cb956b
@ -361,10 +361,13 @@ async def create_admin_user(sor, username, password, superuser_role_id):
|
|||||||
# 检查用户是否已存在
|
# 检查用户是否已存在
|
||||||
recs = await sor.R('users', {'username': username})
|
recs = await sor.R('users', {'username': username})
|
||||||
if recs:
|
if recs:
|
||||||
# 更新密码
|
|
||||||
uid = recs[0].id
|
uid = recs[0].id
|
||||||
encoded_pw = password_encode(password)
|
encoded_pw = password_encode(password)
|
||||||
await sor.U('users', {'id': uid, 'password': encoded_pw})
|
# 用原始 SQL 更新密码,避免 sor.U() 错误生成 userid WHERE 条件
|
||||||
|
await sor.sqlExe(
|
||||||
|
"UPDATE users SET password = ${pw}$ WHERE id = ${uid}$",
|
||||||
|
{'pw': encoded_pw, 'uid': uid}
|
||||||
|
)
|
||||||
print(f" 用户 {username} 已存在,已更新密码")
|
print(f" 用户 {username} 已存在,已更新密码")
|
||||||
# 检查是否已有角色
|
# 检查是否已有角色
|
||||||
existing_roles = await sor.R('userrole', {'userid': uid, 'roleid': superuser_role_id})
|
existing_roles = await sor.R('userrole', {'userid': uid, 'roleid': superuser_role_id})
|
||||||
|
|||||||
@ -361,10 +361,13 @@ async def create_admin_user(sor, username, password, superuser_role_id):
|
|||||||
# 检查用户是否已存在
|
# 检查用户是否已存在
|
||||||
recs = await sor.R('users', {'username': username})
|
recs = await sor.R('users', {'username': username})
|
||||||
if recs:
|
if recs:
|
||||||
# 更新密码
|
|
||||||
uid = recs[0].id
|
uid = recs[0].id
|
||||||
encoded_pw = password_encode(password)
|
encoded_pw = password_encode(password)
|
||||||
await sor.U('users', {'id': uid, 'password': encoded_pw})
|
# 用原始 SQL 更新密码,避免 sor.U() 错误生成 userid WHERE 条件
|
||||||
|
await sor.sqlExe(
|
||||||
|
"UPDATE users SET password = ${pw}$ WHERE id = ${uid}$",
|
||||||
|
{'pw': encoded_pw, 'uid': uid}
|
||||||
|
)
|
||||||
print(f" 用户 {username} 已存在,已更新密码")
|
print(f" 用户 {username} 已存在,已更新密码")
|
||||||
# 检查是否已有角色
|
# 检查是否已有角色
|
||||||
existing_roles = await sor.R('userrole', {'userid': uid, 'roleid': superuser_role_id})
|
existing_roles = await sor.R('userrole', {'userid': uid, 'roleid': superuser_role_id})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user