Signed-off-by: -LAN- <laipz8200@outlook.com>tags/1.4.2
| @@ -452,7 +452,7 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator): | |||
| for var, val in context.items(): | |||
| var.set(val) | |||
| # Save current user before entering new app context | |||
| # FIXME(-LAN-): Save current user before entering new app context | |||
| from flask import g | |||
| saved_user = None | |||
| @@ -232,7 +232,7 @@ class AgentChatAppGenerator(MessageBasedAppGenerator): | |||
| for var, val in context.items(): | |||
| var.set(val) | |||
| # Save current user before entering new app context | |||
| # FIXME(-LAN-): Save current user before entering new app context | |||
| from flask import g | |||
| saved_user = None | |||
| @@ -411,7 +411,7 @@ class WorkflowAppGenerator(BaseAppGenerator): | |||
| for var, val in context.items(): | |||
| var.set(val) | |||
| # Save current user before entering new app context | |||
| # FIXME(-LAN-): Save current user before entering new app context | |||
| from flask import g | |||
| saved_user = None | |||
| @@ -9,7 +9,7 @@ from copy import copy, deepcopy | |||
| from datetime import UTC, datetime | |||
| from typing import Any, Optional, cast | |||
| from flask import Flask, current_app | |||
| from flask import Flask, current_app, has_request_context | |||
| from configs import dify_config | |||
| from core.app.apps.base_app_queue_manager import GenerateTaskStoppedError | |||
| @@ -540,8 +540,21 @@ class GraphEngine: | |||
| for var, val in context.items(): | |||
| var.set(val) | |||
| # FIXME(-LAN-): Save current user before entering new app context | |||
| from flask import g | |||
| saved_user = None | |||
| if has_request_context() and hasattr(g, "_login_user"): | |||
| saved_user = g._login_user | |||
| with flask_app.app_context(): | |||
| try: | |||
| # Restore user in new app context | |||
| if saved_user is not None: | |||
| from flask import g | |||
| g._login_user = saved_user | |||
| q.put( | |||
| ParallelBranchRunStartedEvent( | |||
| parallel_id=parallel_id, | |||
| @@ -7,7 +7,7 @@ from datetime import UTC, datetime | |||
| from queue import Empty, Queue | |||
| from typing import TYPE_CHECKING, Any, Optional, cast | |||
| from flask import Flask, current_app | |||
| from flask import Flask, current_app, has_request_context | |||
| from configs import dify_config | |||
| from core.variables import ArrayVariable, IntegerVariable, NoneVariable | |||
| @@ -586,7 +586,21 @@ class IterationNode(BaseNode[IterationNodeData]): | |||
| """ | |||
| for var, val in context.items(): | |||
| var.set(val) | |||
| # FIXME(-LAN-): Save current user before entering new app context | |||
| from flask import g | |||
| saved_user = None | |||
| if has_request_context() and hasattr(g, "_login_user"): | |||
| saved_user = g._login_user | |||
| with flask_app.app_context(): | |||
| # Restore user in new app context | |||
| if saved_user is not None: | |||
| from flask import g | |||
| g._login_user = saved_user | |||
| parallel_mode_run_id = uuid.uuid4().hex | |||
| graph_engine_copy = graph_engine.create_copy() | |||
| variable_pool_copy = graph_engine_copy.graph_runtime_state.variable_pool | |||