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):
|
||||
nodes = PermNode.objects.none()
|
||||
assets = Asset.objects.none()
|
||||
query_node_util = UserPermNodeUtil(self.user)
|
||||
query_asset_util = UserPermAssetUtil(self.user)
|
||||
node_key = self.query_node_key
|
||||
if not node_key:
|
||||
nodes = query_node_util.get_top_level_nodes()
|
||||
assets = Asset.objects.none()
|
||||
elif node_key == PermNode.UNGROUPED_NODE_KEY:
|
||||
nodes = PermNode.objects.none()
|
||||
assets = query_asset_util.get_ungroup_assets()
|
||||
elif node_key == PermNode.FAVORITE_NODE_KEY:
|
||||
nodes = PermNode.objects.none()
|
||||
assets = query_asset_util.get_favorite_assets()
|
||||
else:
|
||||
nodes = query_node_util.get_node_children(node_key)
|
||||
|
|
|
@ -16,13 +16,18 @@ class NodeFrom(TextChoices):
|
|||
class UserAssetGrantedTreeNodeRelation(FamilyMixin, JMSOrgBaseModel):
|
||||
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)
|
||||
node = models.ForeignKey('assets.Node', default=None, on_delete=models.CASCADE,
|
||||
db_constraint=False, null=False, related_name='granted_node_rels')
|
||||
node = models.ForeignKey(
|
||||
'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_parent_key = models.CharField(max_length=64, default='', verbose_name=_('Parent key'),
|
||||
db_index=True)
|
||||
node_parent_key = models.CharField(
|
||||
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_assets_amount = models.IntegerField(default=0)
|
||||
comment = ''
|
||||
|
@ -68,6 +73,9 @@ class PermNode(Node):
|
|||
'node_from': F('granted_node_rels__node_from')
|
||||
}
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}'
|
||||
|
||||
def use_granted_assets_amount(self):
|
||||
self.assets_amount = self.granted_assets_amount
|
||||
|
||||
|
|
|
@ -151,6 +151,7 @@ class UserPermNodeUtil:
|
|||
def get_top_level_nodes(self):
|
||||
nodes = self.get_special_nodes()
|
||||
real_nodes = self._get_indirect_perm_node_children(key='')
|
||||
nodes.extend(real_nodes)
|
||||
if len(real_nodes) == 1:
|
||||
children = self.get_node_children(real_nodes[0].key)
|
||||
nodes.extend(children)
|
||||
|
|
Loading…
Reference in New Issue