From 62a2a74c27672ee00488d5716cadedd5f023b0d6 Mon Sep 17 00:00:00 2001 From: "Jiangjie.Bai" Date: Fri, 1 Jul 2022 19:07:42 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=9A=E8=AF=9D=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=BB=88=E7=AB=AF=E5=90=8D=E7=A7=B0=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8=20warning=20=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/utils/crypto.py | 2 +- apps/jumpserver/settings/base.py | 2 ++ apps/terminal/api/session.py | 6 ++++++ apps/terminal/serializers/session.py | 8 +++++--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/apps/common/utils/crypto.py b/apps/common/utils/crypto.py index f6a690a82..331f8b0bb 100644 --- a/apps/common/utils/crypto.py +++ b/apps/common/utils/crypto.py @@ -260,7 +260,7 @@ def decrypt_password(value): try: password = aes.decrypt(password_cipher) except UnicodeDecodeError as e: - logging.error("Decript password error: {}, {}".format(password_cipher, e)) + logging.error("Decrypt password error: {}, {}".format(password_cipher, e)) return value return password diff --git a/apps/jumpserver/settings/base.py b/apps/jumpserver/settings/base.py index c66a47d98..e34433391 100644 --- a/apps/jumpserver/settings/base.py +++ b/apps/jumpserver/settings/base.py @@ -306,6 +306,8 @@ FORCE_SCRIPT_NAME = CONFIG.FORCE_SCRIPT_NAME SESSION_COOKIE_SECURE = CONFIG.SESSION_COOKIE_SECURE CSRF_COOKIE_SECURE = CONFIG.CSRF_COOKIE_SECURE +DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' + # For Debug toolbar INTERNAL_IPS = ["127.0.0.1"] if DEBUG_DEV: diff --git a/apps/terminal/api/session.py b/apps/terminal/api/session.py index 6ba0477b9..e99999ab4 100644 --- a/apps/terminal/api/session.py +++ b/apps/terminal/api/session.py @@ -3,6 +3,7 @@ import os import tarfile +from django.db.models import F from django.shortcuts import get_object_or_404, reverse from django.utils.translation import ugettext as _ from django.utils.encoding import escape_uri_path @@ -106,6 +107,11 @@ class SessionViewSet(OrgBulkModelViewSet): response["Content-Disposition"] = disposition return response + def get_queryset(self): + queryset = super().get_queryset().prefetch_related('terminal')\ + .annotate(terminal_display=F('terminal__name')) + return queryset + def filter_queryset(self, queryset): queryset = super().filter_queryset(queryset) # 解决guacamole更新session时并发导致幽灵会话的问题,暂不处理 diff --git a/apps/terminal/serializers/session.py b/apps/terminal/serializers/session.py index 18ef15e68..49d7f7270 100644 --- a/apps/terminal/serializers/session.py +++ b/apps/terminal/serializers/session.py @@ -12,6 +12,7 @@ __all__ = [ class SessionSerializer(BulkOrgResourceModelSerializer): org_id = serializers.CharField(allow_blank=True) + terminal_display = serializers.CharField(read_only=True, label=_('Terminal display')) class Meta: model = Session @@ -23,8 +24,8 @@ class SessionSerializer(BulkOrgResourceModelSerializer): "is_success", "is_finished", "has_replay", "date_start", "date_end", ] - fields_fk = ["terminal",] - fields_custom = ["can_replay", "can_join", "can_terminate",] + fields_fk = ["terminal", ] + fields_custom = ["can_replay", "can_join", "can_terminate", 'terminal_display'] fields = fields_small + fields_fk + fields_custom extra_kwargs = { "protocol": {'label': _('Protocol')}, @@ -38,6 +39,7 @@ class SessionSerializer(BulkOrgResourceModelSerializer): 'terminal': {'label': _('Terminal')}, 'is_finished': {'label': _('Is finished')}, 'can_terminate': {'label': _('Can terminate')}, + 'terminal_display': {'label': _('Terminal display')}, } @@ -45,7 +47,7 @@ class SessionDisplaySerializer(SessionSerializer): command_amount = serializers.IntegerField(read_only=True, label=_('Command amount')) class Meta(SessionSerializer.Meta): - fields = SessionSerializer.Meta.fields + ['command_amount'] + fields = SessionSerializer.Meta.fields + ['command_amount', ] class ReplaySerializer(serializers.Serializer):