fix(workflow): fetch user failed when workflow run in parallel mode

Signed-off-by: -LAN- <laipz8200@outlook.com>
pull/20321/head
-LAN- 1 year ago
parent 2b81b6673f
commit 835f10446c
No known key found for this signature in database
GPG Key ID: 6BA0D108DED011FF

@ -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)
# 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,

Loading…
Cancel
Save