From 4e933fc1ca8cfa14bb5a6155ca9a42aeb2f0028e Mon Sep 17 00:00:00 2001 From: Bai Date: Wed, 15 Jul 2020 17:15:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(session=20+=20db):=20=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95=E6=9D=A5?= =?UTF-8?q?=E6=BA=90=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 55196 -> 55236 bytes apps/locale/zh/LC_MESSAGES/django.po | 9 +++++---- apps/terminal/api/session.py | 2 +- .../migrations/0024_auto_20200715_1713.py | 18 ++++++++++++++++++ apps/terminal/models.py | 2 +- 5 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 apps/terminal/migrations/0024_auto_20200715_1713.py diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index b90b18ccea08b3ae7f07d47a5c854e9bb250622c..f6e01360c3f187fa16722889b70ab79f800366b6 100644 GIT binary patch delta 15928 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\n" "Language-Team: JumpServer team\n" @@ -2429,6 +2429,10 @@ msgstr "线程数" msgid "Boot Time" msgstr "运行时间" +#: terminal/models.py:191 +msgid "Login from" +msgstr "登录来源" + #: terminal/models.py:195 msgid "Replay" msgstr "回放" @@ -5104,9 +5108,6 @@ msgstr "旗舰版" #~ msgid "There is no command about this session" #~ msgstr "该会话没有命令记录" -#~ msgid "Login from" -#~ msgstr "登录来源" - #~ msgid "Replay session" #~ msgstr "回放会话" diff --git a/apps/terminal/api/session.py b/apps/terminal/api/session.py index f340147c3..bf0a69789 100644 --- a/apps/terminal/api/session.py +++ b/apps/terminal/api/session.py @@ -44,7 +44,7 @@ class SessionViewSet(OrgBulkModelViewSet): permission_classes = (IsOrgAdminOrAppUser, ) filter_fields = [ "user", "asset", "system_user", "remote_addr", - "protocol", "terminal", "is_finished", + "protocol", "terminal", "is_finished", 'login_from', ] date_range_filter_fields = [ ('date_start', ('date_from', 'date_to')) diff --git a/apps/terminal/migrations/0024_auto_20200715_1713.py b/apps/terminal/migrations/0024_auto_20200715_1713.py new file mode 100644 index 000000000..b99ad8d79 --- /dev/null +++ b/apps/terminal/migrations/0024_auto_20200715_1713.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.10 on 2020-07-15 09:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('terminal', '0023_command_risk_level'), + ] + + operations = [ + migrations.AlterField( + model_name='session', + name='login_from', + field=models.CharField(choices=[('ST', 'SSH Terminal'), ('WT', 'Web Terminal')], default='ST', max_length=2, verbose_name='Login from'), + ), + ] diff --git a/apps/terminal/models.py b/apps/terminal/models.py index a2dcbf8e0..f3914cc1c 100644 --- a/apps/terminal/models.py +++ b/apps/terminal/models.py @@ -188,7 +188,7 @@ class Session(OrgModelMixin): asset_id = models.CharField(blank=True, default='', max_length=36, db_index=True) system_user = models.CharField(max_length=128, verbose_name=_("System user"), db_index=True) system_user_id = models.CharField(blank=True, default='', max_length=36, db_index=True) - login_from = models.CharField(max_length=2, choices=LOGIN_FROM_CHOICES, default="ST") + login_from = models.CharField(max_length=2, choices=LOGIN_FROM_CHOICES, default="ST", verbose_name=_("Login from")) remote_addr = models.CharField(max_length=128, verbose_name=_("Remote addr"), blank=True, null=True) is_success = models.BooleanField(default=True, db_index=True) is_finished = models.BooleanField(default=False, db_index=True)