From 6f418da3882526c563492630909988ea34fbc558 Mon Sep 17 00:00:00 2001 From: Jinzhou Zhang Date: Wed, 27 Nov 2024 19:50:56 +0800 Subject: [PATCH] Fixes #11065: tenant_id not found when login via ADMIN_KEY (#11066) --- api/app_factory.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/api/app_factory.py b/api/app_factory.py index 60a584798..46a101c4a 100644 --- a/api/app_factory.py +++ b/api/app_factory.py @@ -15,6 +15,7 @@ import json from flask import Flask, Response, request from flask_cors import CORS +from flask_login import user_loaded_from_request, user_logged_in from werkzeug.exceptions import Unauthorized import contexts @@ -120,11 +121,17 @@ def load_user_from_request(request_from_flask_login): user_id = decoded.get("user_id") logged_in_account = AccountService.load_logged_in_account(account_id=user_id) - if logged_in_account: - contexts.tenant_id.set(logged_in_account.current_tenant_id) return logged_in_account +@user_logged_in.connect +@user_loaded_from_request.connect +def on_user_logged_in(_sender, user): + """Called when a user logged in.""" + if user: + contexts.tenant_id.set(user.current_tenant_id) + + @login_manager.unauthorized_handler def unauthorized_handler(): """Handle unauthorized requests."""