fix: Cannot set original org when exception occurs

pull/14874/head
wangruidong 2025-02-08 11:14:22 +08:00 committed by Bryan
parent 25603e4758
commit 1d36934111
1 changed files with 20 additions and 14 deletions

View File

@ -97,20 +97,24 @@ 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()
set_to_root_org() try:
yield set_to_root_org()
if ori_org is not None: yield
set_current_org(ori_org) finally:
if ori_org is not None:
set_current_org(ori_org)
@contextmanager @contextmanager
def tmp_to_org(org): def tmp_to_org(org):
ori_org = get_current_org() ori_org = get_current_org()
if org: try:
set_current_org(org) if org:
yield set_current_org(org)
if ori_org is not None: yield
set_current_org(ori_org) finally:
if ori_org is not None:
set_current_org(ori_org)
@contextmanager @contextmanager
@ -121,11 +125,13 @@ def tmp_to_builtin_org(system=0, default=0):
org_id = Organization.DEFAULT_ID org_id = Organization.DEFAULT_ID
else: else:
raise ValueError("Must set system or default") raise ValueError("Must set system or default")
ori_org = get_current_org() try:
set_current_org(org_id) ori_org = get_current_org()
yield set_current_org(org_id)
if ori_org is not None: yield
set_current_org(ori_org) finally:
if ori_org is not None:
set_current_org(ori_org)
def filter_org_queryset(queryset): def filter_org_queryset(queryset):