mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-14 05:55:52 +08:00
fix(workflow): fetch user failed when workflow run in parallel mode (#20321)
Signed-off-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
parent
2b81b6673f
commit
f233a64eb5
@ -452,7 +452,7 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator):
|
|||||||
for var, val in context.items():
|
for var, val in context.items():
|
||||||
var.set(val)
|
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
|
from flask import g
|
||||||
|
|
||||||
saved_user = None
|
saved_user = None
|
||||||
|
@ -232,7 +232,7 @@ class AgentChatAppGenerator(MessageBasedAppGenerator):
|
|||||||
for var, val in context.items():
|
for var, val in context.items():
|
||||||
var.set(val)
|
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
|
from flask import g
|
||||||
|
|
||||||
saved_user = None
|
saved_user = None
|
||||||
|
@ -411,7 +411,7 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|||||||
for var, val in context.items():
|
for var, val in context.items():
|
||||||
var.set(val)
|
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
|
from flask import g
|
||||||
|
|
||||||
saved_user = None
|
saved_user = None
|
||||||
|
@ -9,7 +9,7 @@ from copy import copy, deepcopy
|
|||||||
from datetime import UTC, datetime
|
from datetime import UTC, datetime
|
||||||
from typing import Any, Optional, cast
|
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 configs import dify_config
|
||||||
from core.app.apps.base_app_queue_manager import GenerateTaskStoppedError
|
from core.app.apps.base_app_queue_manager import GenerateTaskStoppedError
|
||||||
@ -540,8 +540,21 @@ class GraphEngine:
|
|||||||
for var, val in context.items():
|
for var, val in context.items():
|
||||||
var.set(val)
|
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():
|
with flask_app.app_context():
|
||||||
try:
|
try:
|
||||||
|
# Restore user in new app context
|
||||||
|
if saved_user is not None:
|
||||||
|
from flask import g
|
||||||
|
|
||||||
|
g._login_user = saved_user
|
||||||
|
|
||||||
q.put(
|
q.put(
|
||||||
ParallelBranchRunStartedEvent(
|
ParallelBranchRunStartedEvent(
|
||||||
parallel_id=parallel_id,
|
parallel_id=parallel_id,
|
||||||
|
@ -7,7 +7,7 @@ from datetime import UTC, datetime
|
|||||||
from queue import Empty, Queue
|
from queue import Empty, Queue
|
||||||
from typing import TYPE_CHECKING, Any, Optional, cast
|
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 configs import dify_config
|
||||||
from core.variables import ArrayVariable, IntegerVariable, NoneVariable
|
from core.variables import ArrayVariable, IntegerVariable, NoneVariable
|
||||||
@ -586,7 +586,21 @@ class IterationNode(BaseNode[IterationNodeData]):
|
|||||||
"""
|
"""
|
||||||
for var, val in context.items():
|
for var, val in context.items():
|
||||||
var.set(val)
|
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():
|
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
|
parallel_mode_run_id = uuid.uuid4().hex
|
||||||
graph_engine_copy = graph_engine.create_copy()
|
graph_engine_copy = graph_engine.create_copy()
|
||||||
variable_pool_copy = graph_engine_copy.graph_runtime_state.variable_pool
|
variable_pool_copy = graph_engine_copy.graph_runtime_state.variable_pool
|
||||||
|
Loading…
x
Reference in New Issue
Block a user