From dd9a55bd5f8fe9fc97487b75c1358d822c81be14 Mon Sep 17 00:00:00 2001 From: xinwen Date: Wed, 20 Jan 2021 10:02:33 +0800 Subject: [PATCH 1/7] =?UTF-8?q?fix:=20=E7=94=A8=E6=88=B7=E5=90=8D=E8=B6=85?= =?UTF-8?q?=E8=BF=8764=E5=AD=97=E7=AC=A6=EF=BC=8C=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=AE=B0=E5=BD=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/backends/command/serializers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/terminal/backends/command/serializers.py b/apps/terminal/backends/command/serializers.py index d31cfd82f..698b2fd99 100644 --- a/apps/terminal/backends/command/serializers.py +++ b/apps/terminal/backends/command/serializers.py @@ -9,7 +9,7 @@ class SessionCommandSerializer(serializers.Serializer): """使用这个类作为基础Command Log Serializer类, 用来序列化""" id = serializers.UUIDField(read_only=True) - user = serializers.CharField(max_length=64, label=_("User")) + user = serializers.CharField(label=_("User")) # 限制 64 字符,见 validate_user asset = serializers.CharField(max_length=128, label=_("Asset")) system_user = serializers.CharField(max_length=64, label=_("System user")) input = serializers.CharField(max_length=128, label=_("Command")) @@ -25,6 +25,11 @@ class SessionCommandSerializer(serializers.Serializer): risk_mapper = dict(AbstractSessionCommand.RISK_LEVEL_CHOICES) return risk_mapper.get(obj.risk_level) + def validate_user(self, value): + if len(value) > 64: + value = value[:32] + value[-32:] + return value + class InsecureCommandAlertSerializer(serializers.Serializer): input = serializers.CharField() From 4de9e608b11a2d2696b4a3814e3bd512cf81d88e Mon Sep 17 00:00:00 2001 From: Bai Date: Wed, 20 Jan 2021 11:22:28 +0800 Subject: [PATCH 2/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E9=85=8D=E7=BD=AEDOC=5FTYPE=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=B1=BB=E5=9E=8B=E4=B8=BAReadableHiddenField?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/serializers/storage.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/terminal/serializers/storage.py b/apps/terminal/serializers/storage.py index 0f3bb4df4..24d619540 100644 --- a/apps/terminal/serializers/storage.py +++ b/apps/terminal/serializers/storage.py @@ -6,6 +6,7 @@ from urllib.parse import urlparse from django.utils.translation import ugettext_lazy as _ from django.db.models import TextChoices from common.drf.serializers import MethodSerializer +from common.drf.fields import ReadableHiddenField from ..models import ReplayStorage, CommandStorage from .. import const @@ -170,7 +171,7 @@ class CommandStorageTypeESSerializer(serializers.Serializer): hosts_help_text = ''' Tip: If there are multiple hosts, use a comma (,) to separate them. - (eg: http://www.jumpserver.a.com, http://www.jumpserver.b.com) + (eg: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100) ''' HOSTS = serializers.ListField( child=serializers.CharField(validators=[command_storage_es_host_format_validator]), @@ -179,9 +180,8 @@ class CommandStorageTypeESSerializer(serializers.Serializer): INDEX = serializers.CharField( max_length=1024, default='jumpserver', label=_('Index'), allow_null=True ) - DOC_TYPE = serializers.CharField( - max_length=1024, read_only=True, default='command', label=_('Doc type'), allow_null=True - ) + DOC_TYPE = ReadableHiddenField(default='command', label=_('Doc type'), allow_null=True) + # mapping From ea16088c08fc931e21d50137523d794a642ebecc Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Wed, 20 Jan 2021 11:38:09 +0800 Subject: [PATCH 3/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E5=86=85=E5=AE=B9=20(#5489)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 修改翻译内容 * fix: 修改翻译内容(2) Co-authored-by: Bai --- apps/locale/zh/LC_MESSAGES/django.po | 52 ++++++++++++++-------------- apps/users/views/profile/reset.py | 3 +- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index d5e9ddc26..bb762fb8f 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-19 20:03+0800\n" +"POT-Creation-Date: 2021-01-20 11:35+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -268,7 +268,7 @@ msgstr "主机名" #: assets/models/asset.py:194 assets/models/domain.py:54 #: assets/models/user.py:120 terminal/serializers/session.py:29 -#: terminal/serializers/storage.py:68 +#: terminal/serializers/storage.py:69 msgid "Protocol" msgstr "协议" @@ -726,7 +726,7 @@ msgstr "硬件信息" msgid "Org name" msgstr "组织名称" -#: assets/serializers/asset.py:162 assets/serializers/asset.py:193 +#: assets/serializers/asset.py:162 assets/serializers/asset.py:201 msgid "Connectivity" msgstr "连接" @@ -1129,7 +1129,7 @@ msgstr "是否成功" msgid "Result" msgstr "结果" -#: audits/serializers.py:79 terminal/serializers/storage.py:177 +#: audits/serializers.py:79 terminal/serializers/storage.py:178 msgid "Hosts" msgstr "主机" @@ -2714,60 +2714,60 @@ msgstr "是否可重放" msgid "Can join" msgstr "是否可加入" -#: terminal/serializers/storage.py:20 +#: terminal/serializers/storage.py:21 msgid "Endpoint invalid: remove path `{}`" msgstr "端点无效: 移除路径 `{}`" -#: terminal/serializers/storage.py:26 +#: terminal/serializers/storage.py:27 msgid "Bucket" msgstr "桶名称" -#: terminal/serializers/storage.py:29 +#: terminal/serializers/storage.py:30 msgid "Access key" msgstr "" -#: terminal/serializers/storage.py:33 +#: terminal/serializers/storage.py:34 msgid "Secret key" msgstr "" -#: terminal/serializers/storage.py:38 terminal/serializers/storage.py:50 -#: terminal/serializers/storage.py:80 +#: terminal/serializers/storage.py:39 terminal/serializers/storage.py:51 +#: terminal/serializers/storage.py:81 msgid "Endpoint" msgstr "端点" -#: terminal/serializers/storage.py:65 xpack/plugins/cloud/models.py:276 +#: terminal/serializers/storage.py:66 xpack/plugins/cloud/models.py:276 msgid "Region" msgstr "地域" -#: terminal/serializers/storage.py:90 +#: terminal/serializers/storage.py:91 msgid "Container name" msgstr "容器名称" -#: terminal/serializers/storage.py:92 +#: terminal/serializers/storage.py:93 msgid "Account name" msgstr "账户名称" -#: terminal/serializers/storage.py:93 +#: terminal/serializers/storage.py:94 msgid "Account key" msgstr "账户密钥" -#: terminal/serializers/storage.py:96 +#: terminal/serializers/storage.py:97 msgid "Endpoint suffix" msgstr "端点后缀" -#: terminal/serializers/storage.py:154 +#: terminal/serializers/storage.py:155 msgid "The address format is incorrect" msgstr "地址格式不正确" -#: terminal/serializers/storage.py:161 +#: terminal/serializers/storage.py:162 msgid "Host invalid" msgstr "主机无效" -#: terminal/serializers/storage.py:164 +#: terminal/serializers/storage.py:165 msgid "Port invalid" msgstr "端口无效" -#: terminal/serializers/storage.py:180 +#: terminal/serializers/storage.py:181 msgid "Index" msgstr "索引" @@ -3236,7 +3236,7 @@ msgid "Join user groups" msgstr "添加到用户组" #: users/forms/user.py:103 users/views/profile/password.py:59 -#: users/views/profile/reset.py:127 +#: users/views/profile/reset.py:126 msgid "* Your password does not meet the requirements" msgstr "* 您的密码不符合要求" @@ -3867,7 +3867,7 @@ msgstr "新的公钥已设置成功,请下载对应的私钥" msgid "Update user" msgstr "更新用户" -#: users/templates/users/user_update.html:22 users/views/profile/reset.py:120 +#: users/templates/users/user_update.html:22 users/views/profile/reset.py:119 msgid "User auth from {}, go there change password" msgstr "用户认证源来自 {}, 请去相应系统修改密码" @@ -3975,7 +3975,7 @@ msgstr "" "
\n" " " -#: users/utils.py:116 users/views/profile/reset.py:80 +#: users/utils.py:116 users/views/profile/reset.py:79 msgid "Reset password success" msgstr "重置密码成功" @@ -4188,20 +4188,20 @@ msgid "" "password" msgstr "用户来自 {} 请去相应系统修改密码" -#: users/views/profile/reset.py:66 +#: users/views/profile/reset.py:65 msgid "Send reset password message" msgstr "发送重置密码邮件" -#: users/views/profile/reset.py:67 +#: users/views/profile/reset.py:66 msgid "Send reset password mail success, login your mail box and follow it " msgstr "" "发送重置邮件成功, 请登录邮箱查看, 按照提示操作 (如果没收到,请等待3-5分钟)" -#: users/views/profile/reset.py:81 +#: users/views/profile/reset.py:80 msgid "Reset password success, return to login page" msgstr "重置密码成功,返回到登录页面" -#: users/views/profile/reset.py:105 users/views/profile/reset.py:115 +#: users/views/profile/reset.py:104 users/views/profile/reset.py:114 msgid "Token invalid or expired" msgstr "Token错误或失效" diff --git a/apps/users/views/profile/reset.py b/apps/users/views/profile/reset.py index c5fa09eb5..8c676c756 100644 --- a/apps/users/views/profile/reset.py +++ b/apps/users/views/profile/reset.py @@ -49,8 +49,7 @@ class UserForgotPasswordView(FormView): if not user.is_local: error = _( 'The user is from {}, please go to the corresponding system to change the password' - ''.format(user.get_source_display()) - ) + ).format(user.get_source_display()) form.add_error('email', error) return self.form_invalid(form) From 7c55d462cda82cad170f1baedf3951bc2ee56aff Mon Sep 17 00:00:00 2001 From: Bai Date: Wed, 20 Jan 2021 11:59:43 +0800 Subject: [PATCH 4/7] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=92=8C=E7=99=BB=E5=BD=95=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E5=BC=80=E5=90=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/authentication/models.py | 3 +-- apps/tickets/handler/base.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/authentication/models.py b/apps/authentication/models.py index b2f6ad602..5764e84c8 100644 --- a/apps/authentication/models.py +++ b/apps/authentication/models.py @@ -69,17 +69,16 @@ class LoginConfirmSetting(CommonModelMixin): from tickets import const from tickets.models import Ticket ticket_title = _('Login confirm') + ' {}'.format(self.user) - ticket_applicant = self.user ticket_meta = self.construct_confirm_ticket_meta(request) ticket_assignees = self.reviewers.all() data = { 'title': ticket_title, 'type': const.TicketTypeChoices.login_confirm.value, - 'applicant': ticket_applicant, 'meta': ticket_meta, } ticket = Ticket.objects.create(**data) ticket.assignees.set(ticket_assignees) + ticket.open(self.user) return ticket def __str__(self): diff --git a/apps/tickets/handler/base.py b/apps/tickets/handler/base.py index a0092a96a..8e7ce2195 100644 --- a/apps/tickets/handler/base.py +++ b/apps/tickets/handler/base.py @@ -59,7 +59,7 @@ class BaseHandler(object): user_display = str(user) action_display = self.ticket.get_action_display() data = { - 'body': _('User {} {} the ticket'.format(user_display, action_display)), + 'body': _('User {} {} the ticket').format(user_display, action_display), 'user': user, 'user_display': user_display } From 1090887b2bbc6ecf61c5fd2c104240fb57b13397 Mon Sep 17 00:00:00 2001 From: xinwen Date: Wed, 20 Jan 2021 14:54:56 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix:=20=E7=AE=A1=E7=90=86=E7=94=A8=E6=88=B7?= =?UTF-8?q?->=20=E8=B5=84=E4=BA=A7=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AF=86=E7=A0=81=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/models/authbook.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/assets/models/authbook.py b/apps/assets/models/authbook.py index 7d0a3f472..35b7e3894 100644 --- a/apps/assets/models/authbook.py +++ b/apps/assets/models/authbook.py @@ -57,7 +57,7 @@ class AuthBook(BaseUser): 同时设置自己的 is_latest=True, version=max_version + 1 """ username = kwargs['username'] - asset = kwargs['asset'] + asset = kwargs.get('asset') or kwargs.get('asset_id') with transaction.atomic(): # 使用select_for_update限制并发创建相同的username、asset条目 instances = cls.objects.select_for_update().filter(username=username, asset=asset) From 3e38e4fc59914b17fb4a66de03a6a037954885ed Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Wed, 20 Jan 2021 19:08:39 +0800 Subject: [PATCH 6/7] =?UTF-8?q?i18n:=20=E4=BC=98=E5=8C=96=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=20(#5492)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * i18n: 优化翻译 * i18n: 优化翻译(2) * i18n: 优化翻译(3) Co-authored-by: Bai --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 63477 -> 63458 bytes apps/locale/zh/LC_MESSAGES/django.po | 12 ++++++------ apps/tickets/handler/base.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 0e3edb30136a63e17b399f49266e65f8db05ef09..56fb9b8d2e6f512af02cfe9f707f82144b086678 100644 GIT binary patch delta 8134 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 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index bb762fb8f..57fff2e30 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-20 11:35+0800\n" +"POT-Creation-Date: 2021-01-20 16:09+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -555,7 +555,7 @@ msgstr "默认资产组" #: assets/models/label.py:15 audits/models.py:36 audits/models.py:56 #: audits/models.py:69 audits/serializers.py:81 authentication/models.py:44 -#: authentication/models.py:96 orgs/models.py:18 orgs/models.py:423 +#: authentication/models.py:95 orgs/models.py:18 orgs/models.py:423 #: perms/models/asset_permission.py:173 perms/models/base.py:49 #: templates/index.html:78 terminal/backends/command/models.py:18 #: terminal/backends/command/serializers.py:12 terminal/models/session.py:37 @@ -653,7 +653,7 @@ msgstr "登录模式" msgid "SFTP Root" msgstr "SFTP根路径" -#: assets/models/user.py:127 authentication/models.py:94 +#: assets/models/user.py:127 authentication/models.py:93 msgid "Token" msgstr "" @@ -1324,7 +1324,7 @@ msgstr "审批人" msgid "Login confirm" msgstr "登录复核" -#: authentication/models.py:95 +#: authentication/models.py:94 msgid "Expired" msgstr "过期时间" @@ -2911,8 +2911,8 @@ msgid "Approved actions" msgstr "批准的动作" #: tickets/handler/base.py:62 -msgid "User {} {} the ticket" -msgstr "用户 {} {} 这个工单" +msgid "{} {} the ticket" +msgstr "{} {}工单" #: tickets/handler/base.py:91 msgid "Ticket title" diff --git a/apps/tickets/handler/base.py b/apps/tickets/handler/base.py index 8e7ce2195..b095a2791 100644 --- a/apps/tickets/handler/base.py +++ b/apps/tickets/handler/base.py @@ -59,7 +59,7 @@ class BaseHandler(object): user_display = str(user) action_display = self.ticket.get_action_display() data = { - 'body': _('User {} {} the ticket').format(user_display, action_display), + 'body': _('{} {} the ticket').format(user_display, action_display), 'user': user, 'user_display': user_display } From 3ac20d80d1aed6e99d6da496d630e49012b4eb19 Mon Sep 17 00:00:00 2001 From: xinwen Date: Wed, 20 Jan 2021 18:56:12 +0800 Subject: [PATCH 7/7] =?UTF-8?q?fix:=20=E7=99=BB=E5=BD=95=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E7=9A=84=E7=99=BB=E5=BD=95=E6=96=B9=E5=BC=8F=E4=B8=8D=E5=87=86?= =?UTF-8?q?=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/audits/signals_handler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/audits/signals_handler.py b/apps/audits/signals_handler.py index 5543cca3b..4b527c846 100644 --- a/apps/audits/signals_handler.py +++ b/apps/audits/signals_handler.py @@ -125,7 +125,8 @@ def on_audits_log_create(sender, instance=None, **kwargs): def get_login_backend(request): - backend = request.session.get(BACKEND_SESSION_KEY, '') + backend = request.session.get('auth_backend', '') or request.session.get(BACKEND_SESSION_KEY, '') + backend = backend.rsplit('.', maxsplit=1)[-1] if backend in LOGIN_BACKEND: return LOGIN_BACKEND[backend]