From 05a0faff6ac3854f8d7f105040820c31466a7396 Mon Sep 17 00:00:00 2001 From: EricPan <30651140+Egfly@users.noreply.github.com> Date: Wed, 22 Jan 2025 11:01:45 +0800 Subject: [PATCH] fix: app token's last_used_at can't be updated when last_used_at is null (#12770) --- api/controllers/service_api/wraps.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api/controllers/service_api/wraps.py b/api/controllers/service_api/wraps.py index fc4cce4876..c746944be1 100644 --- a/api/controllers/service_api/wraps.py +++ b/api/controllers/service_api/wraps.py @@ -195,7 +195,11 @@ def validate_and_get_api_token(scope: str | None = None): with Session(db.engine, expire_on_commit=False) as session: update_stmt = ( update(ApiToken) - .where(ApiToken.token == auth_token, ApiToken.last_used_at < cutoff_time, ApiToken.type == scope) + .where( + ApiToken.token == auth_token, + (ApiToken.last_used_at.is_(None) | (ApiToken.last_used_at < cutoff_time)), + ApiToken.type == scope, + ) .values(last_used_at=current_time) .returning(ApiToken) )