mirror of https://github.com/jumpserver/jumpserver
[Update] 修改获取资产时使用in (#3053)
parent
c706a410a2
commit
bb235f3e88
|
@ -213,10 +213,10 @@ class NodeUtil:
|
|||
children.add(node)
|
||||
return list(children)
|
||||
|
||||
def get_children(self, node, with_self=True):
|
||||
def get_all_children(self, node, with_self=True):
|
||||
return self.get_all_children_by_key(node.key, with_self=with_self)
|
||||
|
||||
def get_children_keys_by_key(self, key, with_self=True):
|
||||
def get_all_children_keys_by_key(self, key, with_self=True):
|
||||
nodes = self.get_all_children_by_key(key, with_self=with_self)
|
||||
return [n.key for n in nodes]
|
||||
|
||||
|
|
|
@ -449,6 +449,8 @@ class AssetPermissionUtil(AssetPermissionCacheMixin):
|
|||
self._nodes = None
|
||||
self._assets_direct = None
|
||||
self._nodes_direct = None
|
||||
self.node_util = NodeUtil()
|
||||
self.tree._node_util = self.node_util
|
||||
|
||||
@staticmethod
|
||||
def change_org_if_need():
|
||||
|
@ -491,13 +493,14 @@ class AssetPermissionUtil(AssetPermissionCacheMixin):
|
|||
|
||||
self.tree.add_nodes(nodes_keys)
|
||||
|
||||
pattern = set()
|
||||
all_nodes_keys = set()
|
||||
for key in nodes_keys:
|
||||
pattern.add(r'^{0}$|^{0}:'.format(key))
|
||||
pattern = '|'.join(list(pattern))
|
||||
if pattern:
|
||||
children_keys = self.node_util.get_all_children_keys_by_key(key)
|
||||
all_nodes_keys.update(set(children_keys))
|
||||
|
||||
if all_nodes_keys:
|
||||
assets_ids = Asset.objects.filter(
|
||||
nodes__key__regex=pattern
|
||||
nodes__key__in=all_nodes_keys
|
||||
).valid().values_list("id", flat=True).distinct()
|
||||
else:
|
||||
assets_ids = []
|
||||
|
|
Loading…
Reference in New Issue