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):