From 1f15937139910b2f41598eef473571a85dee663f Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 16 Jun 2020 11:04:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 53698 -> 53837 bytes apps/locale/zh/LC_MESSAGES/django.po | 10 +++++++++- apps/settings/api.py | 9 ++++++++- apps/users/serializers/user.py | 4 ++-- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 331ae38c750c151330b40dbb1e6442977b146203..02bf6ef03ac7c50816be079c8bf34378babcf748 100644 GIT binary patch delta 13329 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 WZ3}G@(PUe{ciXky_Fc~C!v6>3{H_H6 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index a374c7e20..e68fdec58 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: 2020-06-15 12:32+0800\n" +"POT-Creation-Date: 2020-06-16 11:02+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -2716,6 +2716,14 @@ msgstr "角色只能为 {}" msgid "Password does not match security rules" msgstr "密码不满足安全规则" +#: users/serializers/user.py:274 +msgid "The old password is incorrect" +msgstr "旧密码错误" + +#: users/serializers/user.py:288 +msgid "The newly set password is inconsistent" +msgstr "两次密码不一致" + #: users/serializers_v2/user.py:36 msgid "name not unique" msgstr "名称重复" diff --git a/apps/settings/api.py b/apps/settings/api.py index 974e31a4e..35ccd5f5b 100644 --- a/apps/settings/api.py +++ b/apps/settings/api.py @@ -275,7 +275,14 @@ class PublicSettingApi(generics.RetrieveAPIView): "LOGIN_CONFIRM_ENABLE": settings.LOGIN_CONFIRM_ENABLE, "SECURITY_VIEW_AUTH_NEED_MFA": settings.SECURITY_VIEW_AUTH_NEED_MFA, "SECURITY_MFA_VERIFY_TTL": settings.SECURITY_MFA_VERIFY_TTL, - "LOGO_URLS": settings.LOGO_URLS + "LOGO_URLS": settings.LOGO_URLS, + "PASSWORD_RULE": { + 'SECURITY_PASSWORD_MIN_LENGTH': settings.SECURITY_PASSWORD_MIN_LENGTH, + 'SECURITY_PASSWORD_UPPER_CASE': settings.SECURITY_PASSWORD_UPPER_CASE, + 'SECURITY_PASSWORD_LOWER_CASE': settings.SECURITY_PASSWORD_LOWER_CASE, + 'SECURITY_PASSWORD_NUMBER': settings.SECURITY_PASSWORD_NUMBER, + 'SECURITY_PASSWORD_SPECIAL_CHAR': settings.SECURITY_PASSWORD_SPECIAL_CHAR, + } } } return instance diff --git a/apps/users/serializers/user.py b/apps/users/serializers/user.py index 37d820b65..b01bddf42 100644 --- a/apps/users/serializers/user.py +++ b/apps/users/serializers/user.py @@ -271,7 +271,7 @@ class UserUpdatePasswordSerializer(serializers.ModelSerializer): def validate_old_password(self, value): if not self.instance.check_password(value): - msg = 'The old password is incorrect' + msg = _('The old password is incorrect') raise serializers.ValidationError(msg) return value @@ -285,7 +285,7 @@ class UserUpdatePasswordSerializer(serializers.ModelSerializer): def validate_new_password_again(self, value): if value != self.initial_data.get('new_password', ''): - msg = 'The newly set password is inconsistent' + msg = _('The newly set password is inconsistent') raise serializers.ValidationError(msg) return value