mirror of https://github.com/jumpserver/jumpserver
fix: Session 过滤支持 Terminal Name 和 ID 字段
parent
757702b99d
commit
9a39aca0f1
|
@ -1845,17 +1845,15 @@ msgstr "アクティブ"
|
|||
|
||||
#: audits/models.py:110
|
||||
msgid "Detail"
|
||||
msgstr ""
|
||||
msgstr "詳細"
|
||||
|
||||
#: audits/models.py:112
|
||||
#, fuzzy
|
||||
#| msgid "Terminal ID"
|
||||
msgid "Detail ID"
|
||||
msgstr "ターミナル ID"
|
||||
msgstr "詳細 ID"
|
||||
|
||||
#: audits/models.py:116
|
||||
msgid "Activity log"
|
||||
msgstr ""
|
||||
msgstr "活動記録"
|
||||
|
||||
#: audits/models.py:128
|
||||
msgid "Change by"
|
||||
|
|
|
@ -1833,13 +1833,11 @@ msgstr "激活中"
|
|||
|
||||
#: audits/models.py:110
|
||||
msgid "Detail"
|
||||
msgstr ""
|
||||
msgstr "详情"
|
||||
|
||||
#: audits/models.py:112
|
||||
#, fuzzy
|
||||
#| msgid "Terminal ID"
|
||||
msgid "Detail ID"
|
||||
msgstr "终端 ID"
|
||||
msgstr "详情 ID"
|
||||
|
||||
#: audits/models.py:116
|
||||
msgid "Activity log"
|
||||
|
|
|
@ -2,24 +2,25 @@
|
|||
#
|
||||
import os
|
||||
import tarfile
|
||||
|
||||
from django.core.files.storage import default_storage
|
||||
from django.db.models import F
|
||||
from django.http import FileResponse
|
||||
from django.shortcuts import get_object_or_404, reverse
|
||||
from django.utils.encoding import escape_uri_path
|
||||
from django.utils.translation import ugettext as _
|
||||
from django_filters import rest_framework as filters
|
||||
from rest_framework import generics
|
||||
from rest_framework import viewsets, views
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.response import Response
|
||||
|
||||
from common.drf.filters import BaseFilterSet
|
||||
from common.const.http import GET
|
||||
from common.drf.filters import DatetimeRangeFilter
|
||||
from common.drf.renders import PassthroughRenderer
|
||||
from common.api import AsyncApiMixin
|
||||
from common.utils import data_to_json
|
||||
from common.utils import data_to_json, is_uuid
|
||||
from common.utils import get_logger, get_object_or_none
|
||||
from orgs.mixins.api import OrgBulkModelViewSet
|
||||
from orgs.utils import tmp_to_root_org, tmp_to_org
|
||||
|
@ -49,6 +50,24 @@ class MySessionAPIView(generics.ListAPIView):
|
|||
return qs
|
||||
|
||||
|
||||
class SessionFilterSet(BaseFilterSet):
|
||||
terminal = filters.CharFilter(method='filter_terminal')
|
||||
|
||||
class Meta:
|
||||
model = Session
|
||||
fields = [
|
||||
"user", "asset", "account", "remote_addr",
|
||||
"protocol", "is_finished", 'login_from', 'terminal'
|
||||
]
|
||||
|
||||
@staticmethod
|
||||
def filter_terminal(queryset, name, value):
|
||||
if is_uuid(value):
|
||||
return queryset.filter(terminal__id=value)
|
||||
else:
|
||||
return queryset.filter(terminal__name=value)
|
||||
|
||||
|
||||
class SessionViewSet(OrgBulkModelViewSet):
|
||||
model = Session
|
||||
serializer_classes = {
|
||||
|
@ -59,7 +78,7 @@ class SessionViewSet(OrgBulkModelViewSet):
|
|||
"user", "asset", "account", "remote_addr",
|
||||
"protocol", "is_finished", 'login_from',
|
||||
]
|
||||
filterset_fields = search_fields + ['terminal']
|
||||
filterset_class = SessionFilterSet
|
||||
date_range_filter_fields = [
|
||||
('date_start', ('date_from', 'date_to'))
|
||||
]
|
||||
|
|
|
@ -49,7 +49,7 @@ class SessionSerializer(BulkOrgResourceModelSerializer):
|
|||
'is_success': {'label': _('Is success')},
|
||||
'can_replay': {'label': _('Can replay')},
|
||||
'can_join': {'label': _('Can join')},
|
||||
'terminal': {'label': _('Terminal ID')},
|
||||
'terminal': {'label': _('Terminal')},
|
||||
'is_finished': {'label': _('Is finished')},
|
||||
'can_terminate': {'label': _('Can terminate')},
|
||||
'terminal_display': {'label': _('Terminal display')},
|
||||
|
|
Loading…
Reference in New Issue