fix: resolve UUID parsing error for default user session lookup (#26109)
This commit is contained in:
parent
46375aacdb
commit
0c1ec35244
1 changed files with 16 additions and 12 deletions
|
|
@ -24,20 +24,14 @@ def get_user(tenant_id: str, user_id: str | None) -> EndUser:
|
||||||
NOTE: user_id is not trusted, it could be maliciously set to any value.
|
NOTE: user_id is not trusted, it could be maliciously set to any value.
|
||||||
As a result, it could only be considered as an end user id.
|
As a result, it could only be considered as an end user id.
|
||||||
"""
|
"""
|
||||||
|
if not user_id:
|
||||||
|
user_id = DefaultEndUserSessionID.DEFAULT_SESSION_ID.value
|
||||||
|
is_anonymous = user_id == DefaultEndUserSessionID.DEFAULT_SESSION_ID.value
|
||||||
try:
|
try:
|
||||||
with Session(db.engine) as session:
|
with Session(db.engine) as session:
|
||||||
if not user_id:
|
user_model = None
|
||||||
user_id = DefaultEndUserSessionID.DEFAULT_SESSION_ID.value
|
|
||||||
|
|
||||||
user_model = (
|
if is_anonymous:
|
||||||
session.query(EndUser)
|
|
||||||
.where(
|
|
||||||
EndUser.id == user_id,
|
|
||||||
EndUser.tenant_id == tenant_id,
|
|
||||||
)
|
|
||||||
.first()
|
|
||||||
)
|
|
||||||
if not user_model:
|
|
||||||
user_model = (
|
user_model = (
|
||||||
session.query(EndUser)
|
session.query(EndUser)
|
||||||
.where(
|
.where(
|
||||||
|
|
@ -46,11 +40,21 @@ def get_user(tenant_id: str, user_id: str | None) -> EndUser:
|
||||||
)
|
)
|
||||||
.first()
|
.first()
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
user_model = (
|
||||||
|
session.query(EndUser)
|
||||||
|
.where(
|
||||||
|
EndUser.id == user_id,
|
||||||
|
EndUser.tenant_id == tenant_id,
|
||||||
|
)
|
||||||
|
.first()
|
||||||
|
)
|
||||||
|
|
||||||
if not user_model:
|
if not user_model:
|
||||||
user_model = EndUser(
|
user_model = EndUser(
|
||||||
tenant_id=tenant_id,
|
tenant_id=tenant_id,
|
||||||
type="service_api",
|
type="service_api",
|
||||||
is_anonymous=user_id == DefaultEndUserSessionID.DEFAULT_SESSION_ID.value,
|
is_anonymous=is_anonymous,
|
||||||
session_id=user_id,
|
session_id=user_id,
|
||||||
)
|
)
|
||||||
session.add(user_model)
|
session.add(user_model)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue