mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-21 03:19:52 +00:00
fix: es命令记录可以看到其他资产执行的命令
This commit is contained in:
@@ -167,7 +167,6 @@ class CommandViewSet(JMSBulkModelViewSet):
|
||||
|
||||
def get_queryset(self):
|
||||
command_storage_id = self.request.query_params.get('command_storage_id')
|
||||
asset_id = self.request.query_params.get('asset_id')
|
||||
if not command_storage_id:
|
||||
return Command.objects.none()
|
||||
|
||||
@@ -176,9 +175,6 @@ class CommandViewSet(JMSBulkModelViewSet):
|
||||
raise StorageInvalid
|
||||
else:
|
||||
qs = storage.get_command_queryset()
|
||||
if asset_id:
|
||||
session_ids = Session.objects.filter(asset_id=asset_id).values_list('id', flat=True)
|
||||
qs = qs.filter(session__in=list(session_ids))
|
||||
return qs
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
|
@@ -2,7 +2,7 @@ from django.db.models import QuerySet
|
||||
from django_filters import rest_framework as filters
|
||||
|
||||
from orgs.utils import filter_org_queryset
|
||||
from terminal.models import Command, CommandStorage
|
||||
from terminal.models import Command, CommandStorage, Session
|
||||
|
||||
|
||||
class CommandFilter(filters.FilterSet):
|
||||
@@ -13,7 +13,7 @@ class CommandFilter(filters.FilterSet):
|
||||
user = filters.CharFilter(lookup_expr='startswith')
|
||||
input = filters.CharFilter(lookup_expr='icontains')
|
||||
asset = filters.CharFilter(field_name='asset', lookup_expr='icontains')
|
||||
asset_id = filters.UUIDFilter(method='do_nothing')
|
||||
asset_id = filters.UUIDFilter(method='filter_by_asset_id')
|
||||
|
||||
class Meta:
|
||||
model = Command
|
||||
@@ -48,6 +48,15 @@ class CommandFilter(filters.FilterSet):
|
||||
qs = qs.filter(**filters)
|
||||
return qs
|
||||
|
||||
def filter_by_asset_id(self, queryset, name, value):
|
||||
asset_id = self.form.cleaned_data.get('asset_id')
|
||||
filters = {}
|
||||
if asset_id:
|
||||
session_ids = Session.objects.filter(asset_id=asset_id).values_list('id', flat=True)
|
||||
filters['session__in'] = list(session_ids)
|
||||
queryset = queryset.filter(**filters)
|
||||
return queryset
|
||||
|
||||
|
||||
class CommandFilterForStorageTree(CommandFilter):
|
||||
asset = filters.CharFilter(method='do_nothing')
|
||||
|
Reference in New Issue
Block a user