fix: Cannot set original org when exception occurs

pull/14869/head
wangruidong 2025-02-08 10:36:01 +08:00 committed by Bryan
parent dc5ecfcc4b
commit b35a55ed54
1 changed files with 17 additions and 12 deletions

View File

@ -97,8 +97,10 @@ def get_current_org_id_for_serializer():
@contextmanager @contextmanager
def tmp_to_root_org(): def tmp_to_root_org():
ori_org = get_current_org() ori_org = get_current_org()
try:
set_to_root_org() set_to_root_org()
yield yield
finally:
if ori_org is not None: if ori_org is not None:
set_current_org(ori_org) set_current_org(ori_org)
@ -106,9 +108,11 @@ def tmp_to_root_org():
@contextmanager @contextmanager
def tmp_to_org(org): def tmp_to_org(org):
ori_org = get_current_org() ori_org = get_current_org()
try:
if org: if org:
set_current_org(org) set_current_org(org)
yield yield
finally:
if ori_org is not None: if ori_org is not None:
set_current_org(ori_org) set_current_org(ori_org)
@ -122,9 +126,10 @@ def tmp_to_builtin_org(system=0, default=0):
else: else:
raise ValueError("Must set system or default") raise ValueError("Must set system or default")
ori_org = get_current_org() ori_org = get_current_org()
try:
set_current_org(org_id) set_current_org(org_id)
yield yield
if ori_org is not None: finally:
set_current_org(ori_org) set_current_org(ori_org)