mirror of https://github.com/jumpserver/jumpserver
fix(perms): 授权树与资产列表的一些 bug
parent
873789bdab
commit
535d7d8373
|
@ -18,7 +18,7 @@ class AssetLimitOffsetPagination(LimitOffsetPagination):
|
||||||
self.limit_query_param,
|
self.limit_query_param,
|
||||||
self.offset_query_param,
|
self.offset_query_param,
|
||||||
'node', 'all', 'show_current_asset',
|
'node', 'all', 'show_current_asset',
|
||||||
'node_id', 'display', 'draw',
|
'node_id', 'display', 'draw', 'fields_size',
|
||||||
}
|
}
|
||||||
|
|
||||||
for k, v in self._request.query_params.items():
|
for k, v in self._request.query_params.items():
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
from rest_framework.generics import ListAPIView
|
from rest_framework.generics import ListAPIView
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
from django.db.models import F
|
||||||
|
|
||||||
from common.permissions import IsValidUser
|
from common.permissions import IsValidUser
|
||||||
from common.utils import get_logger, get_object_or_none
|
from common.utils import get_logger, get_object_or_none
|
||||||
|
@ -41,6 +42,7 @@ class MyGrantedNodesWithAssetsAsTreeApi(SerializeToTreeNodeMixin, ListAPIView):
|
||||||
rebuild_user_tree_if_need(request, user)
|
rebuild_user_tree_if_need(request, user)
|
||||||
all_nodes = get_user_granted_nodes_list_via_mapping_node(user)
|
all_nodes = get_user_granted_nodes_list_via_mapping_node(user)
|
||||||
all_assets = get_user_granted_all_assets(user)
|
all_assets = get_user_granted_all_assets(user)
|
||||||
|
all_assets = all_assets.annotate(parent_key=F('nodes__key'))
|
||||||
|
|
||||||
data = [
|
data = [
|
||||||
*self.serialize_nodes(all_nodes, with_asset_amount=True),
|
*self.serialize_nodes(all_nodes, with_asset_amount=True),
|
||||||
|
|
|
@ -35,7 +35,9 @@ def on_asset_permission_delete(instance, **kwargs):
|
||||||
def create_rebuild_user_tree_task_by_asset_perm(asset_perm: AssetPermission):
|
def create_rebuild_user_tree_task_by_asset_perm(asset_perm: AssetPermission):
|
||||||
user_ids = set()
|
user_ids = set()
|
||||||
user_ids.update(
|
user_ids.update(
|
||||||
UserGroup.objects.filter(assetpermissions=asset_perm).distinct().values_list('users__id', flat=True)
|
UserGroup.objects.filter(
|
||||||
|
assetpermissions=asset_perm, users__id__isnull=False
|
||||||
|
).distinct().values_list('users__id', flat=True)
|
||||||
)
|
)
|
||||||
user_ids.update(
|
user_ids.update(
|
||||||
User.objects.filter(assetpermissions=asset_perm).distinct().values_list('id', flat=True)
|
User.objects.filter(assetpermissions=asset_perm).distinct().values_list('id', flat=True)
|
||||||
|
|
Loading…
Reference in New Issue