From 3aeadc2f03bcf3ef65a49f62302053c1b79da350 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:04:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=94=B6=E8=97=8F?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=AD=E7=9A=84=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E6=97=B6=E8=8E=AB=E5=90=8D=E7=9A=84=E4=B8=A2?= =?UTF-8?q?=E5=A4=B1=20(#12886)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/perms/signal_handlers/refresh_perms.py | 2 +- apps/perms/utils/user_perm.py | 11 +++++------ apps/perms/utils/user_perm_tree.py | 3 ++- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/perms/signal_handlers/refresh_perms.py b/apps/perms/signal_handlers/refresh_perms.py index 5387bc33f..7220bceba 100644 --- a/apps/perms/signal_handlers/refresh_perms.py +++ b/apps/perms/signal_handlers/refresh_perms.py @@ -113,7 +113,7 @@ def on_asset_permission_user_groups_changed(sender, instance, action, pk_set, re def on_node_asset_change(action, instance, reverse, pk_set, **kwargs): if not need_rebuild_mapping_node(action): return - print("Asset node changed: ", action) + if reverse: asset_ids = pk_set node_ids = [instance.id] diff --git a/apps/perms/utils/user_perm.py b/apps/perms/utils/user_perm.py index 1fc4e86bf..add9d8baf 100644 --- a/apps/perms/utils/user_perm.py +++ b/apps/perms/utils/user_perm.py @@ -9,7 +9,7 @@ from rest_framework.utils.encoders import JSONEncoder from assets.const import AllTypes from assets.models import FavoriteAsset, Asset, Node from common.utils.common import timeit, get_logger -from orgs.utils import current_org, tmp_to_root_org +from orgs.utils import current_org from perms.models import PermNode, UserAssetGrantedTreeNodeRelation, AssetPermission from .permission import AssetPermissionUtil @@ -112,11 +112,10 @@ class UserPermAssetUtil(AssetPermissionPermAssetUtil): favor_ids = FavoriteAsset.objects.filter(user=self.user).values_list('asset_id', flat=True) favor_ids = set(favor_ids) - with tmp_to_root_org(): - valid_ids = self.get_all_assets() \ - .filter(id__in=favor_ids) \ - .values_list('id', flat=True) - valid_ids = set(valid_ids) + valid_ids = self.get_all_assets() \ + .filter(id__in=favor_ids) \ + .values_list('id', flat=True) + valid_ids = set(valid_ids) invalid_ids = favor_ids - valid_ids FavoriteAsset.objects.filter(user=self.user, asset_id__in=invalid_ids).delete() diff --git a/apps/perms/utils/user_perm_tree.py b/apps/perms/utils/user_perm_tree.py index 01090176e..391b205a5 100644 --- a/apps/perms/utils/user_perm_tree.py +++ b/apps/perms/utils/user_perm_tree.py @@ -84,7 +84,8 @@ class UserPermTreeRefreshUtil(_UserPermTreeCacheMixin): logger.info("Delay refresh user orgs: {} {}".format(self.user, [o.name for o in to_refresh_orgs])) sync = True if settings.ASSET_SIZE == 'small' else False refresh_user_orgs_perm_tree.apply(sync=sync, user_orgs=((self.user, tuple(to_refresh_orgs)),)) - refresh_user_favorite_assets.apply(sync=sync, users=(self.user,)) + with tmp_to_root_org(): + refresh_user_favorite_assets.apply(sync=sync, users=(self.user,)) @timeit def refresh_tree_manual(self):