From 8a693d9fa7f77bd3ed08317a447e8b1cb025ae9a Mon Sep 17 00:00:00 2001 From: Bai Date: Wed, 11 Nov 2020 15:58:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(session):=20session=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=BF=94=E5=9B=9Ecan=5Ftermination=E5=AD=97=E6=AE=B5=E5=80=BC?= =?UTF-8?q?=EF=BC=9B=E8=AE=BE=E7=BD=AE=E6=89=80=E6=9C=89db=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=E7=B1=BB=E5=9E=8B=E4=BC=9A=E8=AF=9D=E4=B8=8D=E5=8F=AF?= =?UTF-8?q?=E8=A2=AB=E7=BB=88=E6=96=AD=E5=92=8C=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/models.py | 20 ++++++++++++++++++-- apps/terminal/serializers/session.py | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/terminal/models.py b/apps/terminal/models.py index 216386e50..5998ad81f 100644 --- a/apps/terminal/models.py +++ b/apps/terminal/models.py @@ -257,9 +257,25 @@ class Session(OrgModelMixin): _PROTOCOL = self.PROTOCOL if self.is_finished: return False - if self.protocol not in [_PROTOCOL.SSH, _PROTOCOL.TELNET, _PROTOCOL.MYSQL, _PROTOCOL.K8S]: + if self.protocol in [_PROTOCOL.SSH, _PROTOCOL.TELNET, _PROTOCOL.K8S]: + return True + else: return False - return True + + @property + def db_protocols(self): + _PROTOCOL = self.PROTOCOL + return [_PROTOCOL.MYSQL, _PROTOCOL.MARIADB, _PROTOCOL.ORACLE, _PROTOCOL.POSTGRESQL] + + @property + def can_termination(self): + _PROTOCOL = self.PROTOCOL + if self.is_finished: + return False + if self.protocol in self.db_protocols: + return False + else: + return True def save_replay_to_storage(self, f): local_path = self.get_local_path() diff --git a/apps/terminal/serializers/session.py b/apps/terminal/serializers/session.py index 65f933351..38de6eff6 100644 --- a/apps/terminal/serializers/session.py +++ b/apps/terminal/serializers/session.py @@ -22,7 +22,7 @@ class SessionSerializer(BulkOrgResourceModelSerializer): "user_id", "asset_id", "system_user_id", "login_from", "login_from_display", "remote_addr", "is_success", "is_finished", "has_replay", "can_replay", - "can_join", "protocol", "date_start", "date_end", + "can_join", "can_termination", "protocol", "date_start", "date_end", "terminal", ] extra_kwargs = {