mirror of https://github.com/jumpserver/jumpserver
fix: 修复luna页面资产树加载不出来的问题
parent
34cc3b233d
commit
d4e215aeaa
|
@ -96,16 +96,17 @@ class UserPermedNodeChildrenWithAssetsAsTreeApi(BaseUserNodeWithAssetAsTreeApi):
|
||||||
""" 用户授权的节点的子节点与资产树 """
|
""" 用户授权的节点的子节点与资产树 """
|
||||||
|
|
||||||
def get_nodes_assets(self):
|
def get_nodes_assets(self):
|
||||||
nodes = PermNode.objects.none()
|
|
||||||
assets = Asset.objects.none()
|
|
||||||
query_node_util = UserPermNodeUtil(self.user)
|
query_node_util = UserPermNodeUtil(self.user)
|
||||||
query_asset_util = UserPermAssetUtil(self.user)
|
query_asset_util = UserPermAssetUtil(self.user)
|
||||||
node_key = self.query_node_key
|
node_key = self.query_node_key
|
||||||
if not node_key:
|
if not node_key:
|
||||||
nodes = query_node_util.get_top_level_nodes()
|
nodes = query_node_util.get_top_level_nodes()
|
||||||
|
assets = Asset.objects.none()
|
||||||
elif node_key == PermNode.UNGROUPED_NODE_KEY:
|
elif node_key == PermNode.UNGROUPED_NODE_KEY:
|
||||||
|
nodes = PermNode.objects.none()
|
||||||
assets = query_asset_util.get_ungroup_assets()
|
assets = query_asset_util.get_ungroup_assets()
|
||||||
elif node_key == PermNode.FAVORITE_NODE_KEY:
|
elif node_key == PermNode.FAVORITE_NODE_KEY:
|
||||||
|
nodes = PermNode.objects.none()
|
||||||
assets = query_asset_util.get_favorite_assets()
|
assets = query_asset_util.get_favorite_assets()
|
||||||
else:
|
else:
|
||||||
nodes = query_node_util.get_node_children(node_key)
|
nodes = query_node_util.get_node_children(node_key)
|
||||||
|
|
|
@ -16,13 +16,18 @@ class NodeFrom(TextChoices):
|
||||||
class UserAssetGrantedTreeNodeRelation(FamilyMixin, JMSOrgBaseModel):
|
class UserAssetGrantedTreeNodeRelation(FamilyMixin, JMSOrgBaseModel):
|
||||||
NodeFrom = NodeFrom
|
NodeFrom = NodeFrom
|
||||||
|
|
||||||
id = models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name=_('ID'))
|
id = models.AutoField(
|
||||||
|
auto_created=True, primary_key=True, serialize=False, verbose_name=_('ID')
|
||||||
|
)
|
||||||
user = models.ForeignKey('users.User', db_constraint=False, on_delete=models.CASCADE)
|
user = models.ForeignKey('users.User', db_constraint=False, on_delete=models.CASCADE)
|
||||||
node = models.ForeignKey('assets.Node', default=None, on_delete=models.CASCADE,
|
node = models.ForeignKey(
|
||||||
db_constraint=False, null=False, related_name='granted_node_rels')
|
'assets.Node', default=None, on_delete=models.CASCADE, db_constraint=False, null=False,
|
||||||
|
related_name='granted_node_rels'
|
||||||
|
)
|
||||||
node_key = models.CharField(max_length=64, verbose_name=_("Key"), db_index=True)
|
node_key = models.CharField(max_length=64, verbose_name=_("Key"), db_index=True)
|
||||||
node_parent_key = models.CharField(max_length=64, default='', verbose_name=_('Parent key'),
|
node_parent_key = models.CharField(
|
||||||
db_index=True)
|
max_length=64, default='', verbose_name=_('Parent key'), db_index=True
|
||||||
|
)
|
||||||
node_from = models.CharField(choices=NodeFrom.choices, max_length=16, db_index=True)
|
node_from = models.CharField(choices=NodeFrom.choices, max_length=16, db_index=True)
|
||||||
node_assets_amount = models.IntegerField(default=0)
|
node_assets_amount = models.IntegerField(default=0)
|
||||||
comment = ''
|
comment = ''
|
||||||
|
@ -68,6 +73,9 @@ class PermNode(Node):
|
||||||
'node_from': F('granted_node_rels__node_from')
|
'node_from': F('granted_node_rels__node_from')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f'{self.name}'
|
||||||
|
|
||||||
def use_granted_assets_amount(self):
|
def use_granted_assets_amount(self):
|
||||||
self.assets_amount = self.granted_assets_amount
|
self.assets_amount = self.granted_assets_amount
|
||||||
|
|
||||||
|
|
|
@ -151,6 +151,7 @@ class UserPermNodeUtil:
|
||||||
def get_top_level_nodes(self):
|
def get_top_level_nodes(self):
|
||||||
nodes = self.get_special_nodes()
|
nodes = self.get_special_nodes()
|
||||||
real_nodes = self._get_indirect_perm_node_children(key='')
|
real_nodes = self._get_indirect_perm_node_children(key='')
|
||||||
|
nodes.extend(real_nodes)
|
||||||
if len(real_nodes) == 1:
|
if len(real_nodes) == 1:
|
||||||
children = self.get_node_children(real_nodes[0].key)
|
children = self.get_node_children(real_nodes[0].key)
|
||||||
nodes.extend(children)
|
nodes.extend(children)
|
||||||
|
|
Loading…
Reference in New Issue