fix: Asset perm calculate failed

pull/13530/head^2
feng 2024-06-26 21:41:42 +08:00 committed by 老广
parent 6d81fa7fdf
commit b7a6454d65
3 changed files with 11 additions and 7 deletions

View File

@ -370,6 +370,7 @@ class NodeAllAssetsMappingMixin:
nodeid_assetsid_mapping = defaultdict(set) nodeid_assetsid_mapping = defaultdict(set)
for node_id, asset_id in nodes_asset_ids: for node_id, asset_id in nodes_asset_ids:
node_id, asset_id = str(uuid.UUID(node_id)), str(uuid.UUID(asset_id))
nodeid_assetsid_mapping[node_id].add(asset_id) nodeid_assetsid_mapping[node_id].add(asset_id)
t2 = time.time() t2 = time.time()

View File

@ -435,10 +435,10 @@
"Endswith": "Ending with...", "Endswith": "Ending with...",
"EnsureThisValueIsGreaterThanOrEqualTo1": "Please make sure this number is greater than or equal to 1", "EnsureThisValueIsGreaterThanOrEqualTo1": "Please make sure this number is greater than or equal to 1",
"EnterForSearch": "Press enter to search", "EnterForSearch": "Press enter to search",
"EnterRunUser": "Enter running account", "EnterRunUser": "Running account",
"EnterRunningPath": "Enter running path", "EnterRunningPath": "Running path",
"EnterToContinue": "Press enter to continue", "EnterToContinue": "Press enter to continue",
"EnterUploadPath": "Enter upload path", "EnterUploadPath": "Upload path",
"Enterprise": "Enterprise", "Enterprise": "Enterprise",
"EnterpriseEdition": "Enterprise edition", "EnterpriseEdition": "Enterprise edition",
"Equal": "Equals", "Equal": "Equals",

View File

@ -1,5 +1,6 @@
import time import time
from collections import defaultdict from collections import defaultdict
from uuid import UUID
from django.conf import settings from django.conf import settings
from django.core.cache import cache from django.core.cache import cache
@ -8,7 +9,8 @@ from django.db import transaction
from assets.models import Asset from assets.models import Asset
from assets.utils import NodeAssetsUtil from assets.utils import NodeAssetsUtil
from common.db.models import output_as_string from common.db.models import output_as_string
from common.decorators import on_transaction_commit, merge_delay_run from common.decorators import merge_delay_run
from common.decorators import on_transaction_commit
from common.utils import get_logger from common.utils import get_logger
from common.utils.common import lazyproperty, timeit from common.utils.common import lazyproperty, timeit
from orgs.models import Organization from orgs.models import Organization
@ -272,13 +274,11 @@ class UserPermTreeBuildUtil(object):
for key in self.perm_node_keys_for_granted: for key in self.perm_node_keys_for_granted:
asset_ids = PermNode.get_all_asset_ids_by_node_key(org_id, key) asset_ids = PermNode.get_all_asset_ids_by_node_key(org_id, key)
nodekey_assetid_mapper[key].update(asset_ids) nodekey_assetid_mapper[key].update(asset_ids)
for asset_id, node_id in self.direct_asset_id_node_id_pairs: for asset_id, node_id in self.direct_asset_id_node_id_pairs:
node_key = self.perm_nodes_id_key_mapper.get(str(node_id)) node_key = self.perm_nodes_id_key_mapper.get(str(node_id))
if not node_key: if not node_key:
continue continue
nodekey_assetid_mapper[node_key].add(asset_id) nodekey_assetid_mapper[node_key].add(asset_id)
util = NodeAssetsUtil(self.perm_nodes, nodekey_assetid_mapper) util = NodeAssetsUtil(self.perm_nodes, nodekey_assetid_mapper)
util.generate() util.generate()
@ -400,7 +400,10 @@ class UserPermTreeBuildUtil(object):
str_asset_id=output_as_string('asset_id'), str_asset_id=output_as_string('asset_id'),
str_node_id=output_as_string('node_id') str_node_id=output_as_string('node_id')
).values_list('str_asset_id', 'str_node_id') ).values_list('str_asset_id', 'str_node_id')
asset_node_pairs = list(asset_node_pairs) asset_node_pairs = [
(str(UUID(asset_id)), str(UUID(node_id)))
for asset_id, node_id in asset_node_pairs
]
return asset_node_pairs return asset_node_pairs
@lazyproperty @lazyproperty