From 1f4fc9b6f03a4c69cff96aac840710df5293490e Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 28 May 2020 20:46:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9API-Key?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/authentication/serializers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/authentication/serializers.py b/apps/authentication/serializers.py index f000c3438..25620fbd1 100644 --- a/apps/authentication/serializers.py +++ b/apps/authentication/serializers.py @@ -15,9 +15,11 @@ __all__ = [ class AccessKeySerializer(serializers.ModelSerializer): + id_display = serializers.UUIDField(source='id', read_only=True) + class Meta: model = AccessKey - fields = ['id', 'secret', 'is_active', 'date_created'] + fields = ['id', 'secret', 'is_active', 'date_created', 'id_display'] read_only_fields = ['id', 'secret', 'date_created'] From 5ee8519274ffbfad41c6e2a36638d27ff84a348b Mon Sep 17 00:00:00 2001 From: Bai Date: Fri, 29 May 2020 14:04:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9AccessKey?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/authentication/serializers.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/authentication/serializers.py b/apps/authentication/serializers.py index 25620fbd1..f000c3438 100644 --- a/apps/authentication/serializers.py +++ b/apps/authentication/serializers.py @@ -15,11 +15,9 @@ __all__ = [ class AccessKeySerializer(serializers.ModelSerializer): - id_display = serializers.UUIDField(source='id', read_only=True) - class Meta: model = AccessKey - fields = ['id', 'secret', 'is_active', 'date_created', 'id_display'] + fields = ['id', 'secret', 'is_active', 'date_created'] read_only_fields = ['id', 'secret', 'date_created'] From 3a79bfd5f62dbedf03b285710aad2092bcc9f3b0 Mon Sep 17 00:00:00 2001 From: xinwen Date: Fri, 29 May 2020 15:18:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[Update]=20=E6=B7=BB=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=20i18n=20(#4052)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 90188 -> 89943 bytes apps/locale/zh/LC_MESSAGES/django.po | 296 +++++++++++++-------------- apps/ops/mixin.py | 2 +- 3 files changed, 144 insertions(+), 154 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index c571399ffa1ba0018dea6ccb0df9315e62d59fc1..6ea8518e0bfd89937321f69201137f40b0bd5009 100644 GIT binary patch delta 26549 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 YWahRfbEfSWlhUtJ>>ckj`_;|=f1s{DIRF3v delta 26768 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\n" "Language-Team: JumpServer team\n" @@ -53,7 +53,7 @@ msgstr "自定义" #: users/templates/users/user_asset_permission.html:70 #: users/templates/users/user_granted_remote_app.html:36 #: xpack/plugins/change_auth_plan/forms.py:74 -#: xpack/plugins/change_auth_plan/models.py:282 +#: xpack/plugins/change_auth_plan/models.py:274 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_create_update.html:40 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_list.html:54 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_subtask_list.html:13 @@ -147,7 +147,7 @@ msgstr "运行参数" #: terminal/models.py:411 terminal/templates/terminal/base_storage_list.html:31 #: terminal/templates/terminal/terminal_detail.html:43 #: terminal/templates/terminal/terminal_list.html:30 users/forms/profile.py:20 -#: users/models/group.py:15 users/models/user.py:450 +#: users/models/group.py:15 users/models/user.py:462 #: users/templates/users/_select_user_modal.html:13 #: users/templates/users/user_asset_permission.html:37 #: users/templates/users/user_asset_permission.html:154 @@ -170,9 +170,8 @@ msgstr "运行参数" #: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:53 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:12 #: xpack/plugins/gathered_user/templates/gathered_user/task_list.html:16 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:51 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:47 #: xpack/plugins/orgs/templates/orgs/org_list.html:12 -#: xpack/plugins/orgs/templates/orgs/org_users.html:46 msgid "Name" msgstr "名称" @@ -254,7 +253,7 @@ msgstr "数据库" #: terminal/models.py:418 terminal/templates/terminal/base_storage_list.html:33 #: terminal/templates/terminal/terminal_detail.html:63 #: tickets/templates/tickets/ticket_detail.html:104 users/models/group.py:16 -#: users/models/user.py:483 users/templates/users/user_detail.html:115 +#: users/models/user.py:495 users/templates/users/user_detail.html:115 #: users/templates/users/user_granted_database_app.html:38 #: users/templates/users/user_granted_remote_app.html:37 #: users/templates/users/user_group_detail.html:62 @@ -269,14 +268,14 @@ msgstr "数据库" #: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:128 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:18 #: xpack/plugins/gathered_user/models.py:26 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:63 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:59 #: xpack/plugins/orgs/templates/orgs/org_list.html:23 msgid "Comment" msgstr "备注" #: applications/models/database_app.py:41 #: perms/forms/database_app_permission.py:44 -#: perms/models/database_app_permission.py:17 +#: perms/models/database_app_permission.py:18 #: perms/templates/perms/database_app_permission_create_update.html:46 #: perms/templates/perms/database_app_permission_database_app.html:23 #: perms/templates/perms/database_app_permission_database_app.html:53 @@ -322,7 +321,7 @@ msgstr "参数" #: perms/templates/perms/asset_permission_detail.html:93 #: perms/templates/perms/database_app_permission_detail.html:89 #: perms/templates/perms/remote_app_permission_detail.html:85 -#: users/models/user.py:491 users/serializers/group.py:35 +#: users/models/user.py:503 users/serializers/group.py:35 #: users/templates/users/user_detail.html:97 #: xpack/plugins/change_auth_plan/models.py:80 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:111 @@ -356,7 +355,7 @@ msgstr "创建者" #: xpack/plugins/cloud/models.py:59 xpack/plugins/cloud/models.py:148 #: xpack/plugins/cloud/templates/cloud/account_detail.html:63 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:108 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:59 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:55 msgid "Date created" msgstr "创建日期" @@ -539,7 +538,7 @@ msgstr "详情" #: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:26 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:60 #: xpack/plugins/gathered_user/templates/gathered_user/task_list.html:46 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:24 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:20 #: xpack/plugins/orgs/templates/orgs/org_list.html:93 msgid "Update" msgstr "更新" @@ -591,7 +590,7 @@ msgstr "更新" #: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:30 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:61 #: xpack/plugins/gathered_user/templates/gathered_user/task_list.html:47 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:28 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:24 #: xpack/plugins/orgs/templates/orgs/org_list.html:95 msgid "Delete" msgstr "删除" @@ -651,7 +650,6 @@ msgstr "创建数据库应用" #: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:19 #: xpack/plugins/gathered_user/templates/gathered_user/task_list.html:20 #: xpack/plugins/orgs/templates/orgs/org_list.html:24 -#: xpack/plugins/orgs/templates/orgs/org_users.html:47 msgid "Action" msgstr "动作" @@ -679,7 +677,7 @@ msgstr "创建远程应用" msgid "Connect" msgstr "连接" -#: applications/views/database_app.py:26 users/models/user.py:144 +#: applications/views/database_app.py:26 users/models/user.py:156 msgid "Application" msgstr "应用程序" @@ -855,14 +853,14 @@ msgstr "SSH网关,支持代理SSH,RDP和VNC" #: perms/templates/perms/remote_app_permission_user.html:50 #: settings/templates/settings/_ldap_list_users_modal.html:31 #: settings/templates/settings/_ldap_test_user_login_modal.html:10 -#: users/forms/profile.py:19 users/models/user.py:448 +#: users/forms/profile.py:19 users/models/user.py:460 #: users/templates/users/_select_user_modal.html:14 #: users/templates/users/user_detail.html:53 #: users/templates/users/user_list.html:15 #: users/templates/users/user_profile.html:47 #: xpack/plugins/change_auth_plan/forms.py:59 #: xpack/plugins/change_auth_plan/models.py:46 -#: xpack/plugins/change_auth_plan/models.py:278 +#: xpack/plugins/change_auth_plan/models.py:270 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:63 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_list.html:53 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_subtask_list.html:12 @@ -922,13 +920,13 @@ msgstr "密码或密钥密码" #: users/templates/users/user_update.html:20 #: xpack/plugins/change_auth_plan/models.py:67 #: xpack/plugins/change_auth_plan/models.py:190 -#: xpack/plugins/change_auth_plan/models.py:285 +#: xpack/plugins/change_auth_plan/models.py:277 msgid "Password" msgstr "密码" #: assets/forms/user.py:29 assets/serializers/asset_user.py:79 #: assets/templates/assets/_asset_user_auth_update_modal.html:27 -#: users/models/user.py:477 +#: users/models/user.py:489 msgid "Private key" msgstr "ssh私钥" @@ -1150,13 +1148,13 @@ msgstr "" #: assets/models/base.py:235 xpack/plugins/change_auth_plan/models.py:71 #: xpack/plugins/change_auth_plan/models.py:197 -#: xpack/plugins/change_auth_plan/models.py:292 +#: xpack/plugins/change_auth_plan/models.py:284 msgid "SSH private key" msgstr "ssh密钥" #: assets/models/base.py:236 xpack/plugins/change_auth_plan/models.py:74 #: xpack/plugins/change_auth_plan/models.py:193 -#: xpack/plugins/change_auth_plan/models.py:288 +#: xpack/plugins/change_auth_plan/models.py:280 msgid "SSH public key" msgstr "ssh公钥" @@ -1176,7 +1174,7 @@ msgstr "带宽" msgid "Contact" msgstr "联系人" -#: assets/models/cluster.py:22 users/models/user.py:469 +#: assets/models/cluster.py:22 users/models/user.py:481 #: users/templates/users/user_detail.html:62 msgid "Phone" msgstr "手机" @@ -1202,7 +1200,7 @@ msgid "Default" msgstr "默认" #: assets/models/cluster.py:36 assets/models/label.py:14 -#: users/models/user.py:610 +#: users/models/user.py:622 msgid "System" msgstr "系统" @@ -1335,7 +1333,7 @@ msgstr "默认资产组" #: tickets/models/ticket.py:128 tickets/templates/tickets/ticket_detail.html:32 #: tickets/templates/tickets/ticket_list.html:34 #: tickets/templates/tickets/ticket_list.html:103 users/forms/group.py:15 -#: users/models/user.py:143 users/models/user.py:159 users/models/user.py:598 +#: users/models/user.py:155 users/models/user.py:171 users/models/user.py:610 #: users/serializers/group.py:20 #: users/templates/users/user_asset_permission.html:38 #: users/templates/users/user_asset_permission.html:64 @@ -1347,6 +1345,7 @@ msgstr "默认资产组" #: users/templates/users/user_remote_app_permission.html:37 #: users/templates/users/user_remote_app_permission.html:58 #: users/views/profile/base.py:46 xpack/plugins/orgs/forms.py:27 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:108 #: xpack/plugins/orgs/templates/orgs/org_list.html:15 msgid "User" msgstr "用户" @@ -1456,7 +1455,7 @@ msgstr "SFTP根路径" #: audits/templates/audits/ftp_log_list.html:76 #: perms/forms/asset_permission.py:95 perms/forms/remote_app_permission.py:49 #: perms/models/asset_permission.py:82 -#: perms/models/database_app_permission.py:21 +#: perms/models/database_app_permission.py:22 #: perms/models/remote_app_permission.py:16 #: perms/templates/perms/asset_permission_asset.html:124 #: perms/templates/perms/asset_permission_list.html:37 @@ -1540,7 +1539,7 @@ msgid "Backend" msgstr "后端" #: assets/serializers/asset_user.py:75 users/forms/profile.py:148 -#: users/models/user.py:480 users/templates/users/first_login.html:42 +#: users/models/user.py:492 users/templates/users/first_login.html:42 #: users/templates/users/user_password_update.html:49 #: users/templates/users/user_profile.html:69 #: users/templates/users/user_profile_update.html:46 @@ -2516,7 +2515,7 @@ msgstr "成功" #: terminal/models.py:199 terminal/templates/terminal/session_detail.html:72 #: terminal/templates/terminal/session_list.html:32 #: xpack/plugins/change_auth_plan/models.py:176 -#: xpack/plugins/change_auth_plan/models.py:307 +#: xpack/plugins/change_auth_plan/models.py:299 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_list.html:59 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_subtask_list.html:17 #: xpack/plugins/gathered_user/models.py:76 @@ -2579,14 +2578,14 @@ msgstr "Agent" #: authentication/templates/authentication/_mfa_confirm_modal.html:14 #: authentication/templates/authentication/login_otp.html:6 #: settings/forms/security.py:16 users/forms/profile.py:52 -#: users/models/user.py:472 users/templates/users/first_login.html:45 +#: users/models/user.py:484 users/templates/users/first_login.html:45 #: users/templates/users/user_detail.html:77 #: users/templates/users/user_profile.html:87 msgid "MFA" msgstr "多因子认证" #: audits/models.py:87 audits/templates/audits/login_log_list.html:63 -#: xpack/plugins/change_auth_plan/models.py:303 +#: xpack/plugins/change_auth_plan/models.py:295 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_subtask_list.html:15 #: xpack/plugins/cloud/models.py:217 msgid "Reason" @@ -2636,7 +2635,6 @@ msgstr "运行用户" #: perms/templates/perms/asset_permission_user.html:74 #: perms/templates/perms/database_app_permission_user.html:74 #: perms/templates/perms/remote_app_permission_user.html:83 -#: xpack/plugins/orgs/templates/orgs/org_users.html:67 msgid "Select user" msgstr "选择用户" @@ -2861,7 +2859,7 @@ msgid "Show" msgstr "显示" #: authentication/templates/authentication/_access_key_modal.html:66 -#: users/models/user.py:370 users/templates/users/user_profile.html:94 +#: users/models/user.py:382 users/templates/users/user_profile.html:94 #: users/templates/users/user_profile.html:163 #: users/templates/users/user_profile.html:166 #: users/templates/users/user_verify_mfa.html:32 @@ -2869,7 +2867,7 @@ msgid "Disable" msgstr "禁用" #: authentication/templates/authentication/_access_key_modal.html:67 -#: users/models/user.py:371 users/templates/users/user_profile.html:92 +#: users/models/user.py:383 users/templates/users/user_profile.html:92 #: users/templates/users/user_profile.html:170 msgid "Enable" msgstr "启用" @@ -2971,12 +2969,12 @@ msgstr "退出登录成功" msgid "Logout success, return login page" msgstr "退出登录成功,返回到登录页面" -#: common/const.py:6 +#: common/const/__init__.py:6 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s 创建成功" -#: common/const.py:7 +#: common/const/__init__.py:7 #, python-format msgid "%(name)s was updated successfully" msgstr "%(name)s 更新成功" @@ -3054,11 +3052,11 @@ msgstr "" "
Luna是单独部署的一个程序,你需要部署luna,koko,
如果你看到了" "这个页面,证明你访问的不是nginx监听的端口,祝你好运
" -#: jumpserver/views/other.py:65 +#: jumpserver/views/other.py:73 msgid "Websocket server run on port: {}, you should proxy it on nginx" msgstr "Websocket 服务运行在端口: {}, 请检查nginx是否代理是否设置" -#: jumpserver/views/other.py:73 +#: jumpserver/views/other.py:81 msgid "" "
Koko is a separately deployed program, you need to deploy Koko, " "configure nginx for url distribution,
If you see this page, " @@ -3100,6 +3098,10 @@ msgstr "定期执行" msgid "Periodic perform" msgstr "定时执行" +#: ops/mixin.py:113 +msgid "Interval" +msgstr "间隔" + #: ops/mixin.py:122 msgid "* Please enter a valid crontab expression" msgstr "* 请输入有效的 crontab 表达式" @@ -3155,7 +3157,7 @@ msgstr "Become" #: ops/models/adhoc.py:150 users/templates/users/user_group_detail.html:54 #: xpack/plugins/cloud/templates/cloud/account_detail.html:59 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:55 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:51 msgid "Create by" msgstr "创建者" @@ -3178,7 +3180,7 @@ msgstr "完成时间" #: ops/models/adhoc.py:238 ops/templates/ops/adhoc_history.html:55 #: ops/templates/ops/task_history.html:61 ops/templates/ops/task_list.html:16 #: xpack/plugins/change_auth_plan/models.py:179 -#: xpack/plugins/change_auth_plan/models.py:310 +#: xpack/plugins/change_auth_plan/models.py:302 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_list.html:58 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_subtask_list.html:16 #: xpack/plugins/gathered_user/models.py:79 @@ -3374,7 +3376,7 @@ msgid "Pending" msgstr "等待" #: ops/templates/ops/command_execution_list.html:70 -#: xpack/plugins/change_auth_plan/models.py:274 +#: xpack/plugins/change_auth_plan/models.py:266 msgid "Finished" msgstr "结束" @@ -3481,7 +3483,7 @@ msgstr "提示:RDP 协议不支持单独控制上传或下载文件" #: perms/templates/perms/database_app_permission_list.html:16 #: perms/templates/perms/remote_app_permission_list.html:16 #: templates/_nav.html:21 users/forms/user.py:168 users/models/group.py:31 -#: users/models/user.py:456 users/templates/users/_select_user_modal.html:16 +#: users/models/user.py:468 users/templates/users/_select_user_modal.html:16 #: users/templates/users/user_asset_permission.html:39 #: users/templates/users/user_asset_permission.html:67 #: users/templates/users/user_database_app_permission.html:38 @@ -3534,12 +3536,12 @@ msgstr "资产授权" #: perms/templates/perms/asset_permission_detail.html:85 #: perms/templates/perms/database_app_permission_detail.html:81 #: perms/templates/perms/remote_app_permission_detail.html:77 -#: users/models/user.py:488 users/templates/users/user_detail.html:93 +#: users/models/user.py:500 users/templates/users/user_detail.html:93 #: users/templates/users/user_profile.html:120 msgid "Date expired" msgstr "失效日期" -#: perms/models/database_app_permission.py:26 +#: perms/models/database_app_permission.py:27 #: users/templates/users/_user_detail_nav_header.html:61 #: users/views/user.py:277 msgid "DatabaseApp permission" @@ -3590,9 +3592,8 @@ msgstr "添加资产" #: perms/templates/perms/remote_app_permission_user.html:120 #: users/templates/users/user_group_detail.html:87 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_asset_list.html:76 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:89 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:123 -#: xpack/plugins/orgs/templates/orgs/org_users.html:73 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:88 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:125 msgid "Add" msgstr "添加" @@ -3691,7 +3692,6 @@ msgstr "刷新成功" #: perms/templates/perms/asset_permission_user.html:31 #: perms/templates/perms/database_app_permission_user.html:31 #: perms/templates/perms/remote_app_permission_user.html:30 -#: xpack/plugins/orgs/templates/orgs/org_users.html:24 msgid "User list of " msgstr "用户列表" @@ -4179,7 +4179,7 @@ msgid "Refresh cache" msgstr "刷新缓存" #: settings/templates/settings/_ldap_list_users_modal.html:33 -#: users/forms/profile.py:89 users/models/user.py:452 +#: users/forms/profile.py:89 users/models/user.py:464 #: users/templates/users/user_detail.html:57 #: users/templates/users/user_profile.html:59 msgid "Email" @@ -5397,11 +5397,11 @@ msgid "Public key should not be the same as your old one." msgstr "不能和原来的密钥相同" #: users/forms/profile.py:137 users/forms/user.py:90 -#: users/serializers/user.py:166 +#: users/serializers/user.py:167 users/serializers/user.py:287 msgid "Not a valid ssh public key" msgstr "ssh密钥不合法" -#: users/forms/user.py:27 users/models/user.py:460 +#: users/forms/user.py:27 users/models/user.py:472 #: users/templates/users/_select_user_modal.html:15 #: users/templates/users/user_detail.html:73 #: users/templates/users/user_list.html:16 @@ -5409,7 +5409,7 @@ msgstr "ssh密钥不合法" msgid "Role" msgstr "角色" -#: users/forms/user.py:31 users/models/user.py:495 +#: users/forms/user.py:31 users/models/user.py:507 #: users/templates/users/user_detail.html:89 #: users/templates/users/user_list.html:18 #: users/templates/users/user_profile.html:102 @@ -5429,15 +5429,15 @@ msgstr "添加到用户组" msgid "* Your password does not meet the requirements" msgstr "* 您的密码不符合要求" -#: users/forms/user.py:124 users/serializers/user.py:27 +#: users/forms/user.py:124 users/serializers/user.py:28 msgid "Reset link will be generated and sent to the user" msgstr "生成重置密码链接,通过邮件发送给用户" -#: users/forms/user.py:125 users/serializers/user.py:28 +#: users/forms/user.py:125 users/serializers/user.py:29 msgid "Set password" msgstr "设置密码" -#: users/forms/user.py:132 users/serializers/user.py:35 +#: users/forms/user.py:132 users/serializers/user.py:36 #: xpack/plugins/change_auth_plan/models.py:60 #: xpack/plugins/change_auth_plan/serializers.py:30 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_create_update.html:45 @@ -5447,45 +5447,44 @@ msgstr "设置密码" msgid "Password strategy" msgstr "密码策略" -#: users/models/user.py:142 users/models/user.py:606 +#: users/models/user.py:154 users/models/user.py:618 msgid "Administrator" msgstr "管理员" -#: users/models/user.py:145 xpack/plugins/orgs/forms.py:29 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:109 +#: users/models/user.py:157 xpack/plugins/orgs/forms.py:29 #: xpack/plugins/orgs/templates/orgs/org_list.html:14 msgid "Auditor" msgstr "审计员" -#: users/models/user.py:155 +#: users/models/user.py:167 msgid "Org admin" msgstr "组织管理员" -#: users/models/user.py:157 +#: users/models/user.py:169 msgid "Org auditor" msgstr "组织审计员" -#: users/models/user.py:372 users/templates/users/user_profile.html:90 +#: users/models/user.py:384 users/templates/users/user_profile.html:90 msgid "Force enable" msgstr "强制启用" -#: users/models/user.py:439 +#: users/models/user.py:451 msgid "Local" msgstr "数据库" -#: users/models/user.py:463 +#: users/models/user.py:475 msgid "Avatar" msgstr "头像" -#: users/models/user.py:466 users/templates/users/user_detail.html:68 +#: users/models/user.py:478 users/templates/users/user_detail.html:68 msgid "Wechat" msgstr "微信" -#: users/models/user.py:499 +#: users/models/user.py:511 msgid "Date password last updated" msgstr "最后更新密码日期" -#: users/models/user.py:609 +#: users/models/user.py:621 msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" @@ -5493,39 +5492,39 @@ msgstr "Administrator是初始的超级管理员" msgid "Auditors cannot be join in the user group" msgstr "审计员不能被加入到用户组" -#: users/serializers/user.py:66 +#: users/serializers/user.py:67 msgid "Is first login" msgstr "首次登录" -#: users/serializers/user.py:67 +#: users/serializers/user.py:68 msgid "Is valid" msgstr "账户是否有效" -#: users/serializers/user.py:68 +#: users/serializers/user.py:69 msgid "Is expired" msgstr " 是否过期" -#: users/serializers/user.py:69 +#: users/serializers/user.py:70 msgid "Avatar url" msgstr "头像路径" -#: users/serializers/user.py:73 +#: users/serializers/user.py:74 msgid "Groups name" msgstr "用户组名" -#: users/serializers/user.py:74 +#: users/serializers/user.py:75 msgid "Source name" msgstr "用户来源名" -#: users/serializers/user.py:75 +#: users/serializers/user.py:76 msgid "Role name" msgstr "角色名" -#: users/serializers/user.py:94 +#: users/serializers/user.py:95 msgid "Role limit to {}" msgstr "角色只能为 {}" -#: users/serializers/user.py:106 +#: users/serializers/user.py:107 users/serializers/user.py:253 msgid "Password does not match security rules" msgstr "密码不满足安全规则" @@ -5787,6 +5786,7 @@ msgid "User group detail" msgstr "用户组详情" #: users/templates/users/user_group_detail.html:81 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:116 msgid "Add user" msgstr "添加用户" @@ -6292,35 +6292,35 @@ msgid "Change auth plan snapshot" msgstr "改密计划快照" #: xpack/plugins/change_auth_plan/models.py:202 -#: xpack/plugins/change_auth_plan/models.py:296 +#: xpack/plugins/change_auth_plan/models.py:288 msgid "Change auth plan execution" msgstr "改密计划执行" -#: xpack/plugins/change_auth_plan/models.py:269 +#: xpack/plugins/change_auth_plan/models.py:261 msgid "Ready" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:270 +#: xpack/plugins/change_auth_plan/models.py:262 msgid "Preflight check" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:271 +#: xpack/plugins/change_auth_plan/models.py:263 msgid "Change auth" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:272 +#: xpack/plugins/change_auth_plan/models.py:264 msgid "Verify auth" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:273 +#: xpack/plugins/change_auth_plan/models.py:265 msgid "Keep auth" msgstr "" -#: xpack/plugins/change_auth_plan/models.py:300 +#: xpack/plugins/change_auth_plan/models.py:292 msgid "Step" msgstr "步骤" -#: xpack/plugins/change_auth_plan/models.py:317 +#: xpack/plugins/change_auth_plan/models.py:309 msgid "Change auth plan task" msgstr "改密计划任务" @@ -6485,7 +6485,7 @@ msgstr "" msgid "Cloud account" msgstr "云账号" -#: xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:122 xpack/plugins/cloud/serializers.py:55 msgid "Regions" msgstr "地域" @@ -6493,10 +6493,10 @@ msgstr "地域" msgid "Instances" msgstr "实例" -#: xpack/plugins/cloud/models.py:136 +#: xpack/plugins/cloud/models.py:136 xpack/plugins/cloud/serializers.py:77 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:69 msgid "Covered always" -msgstr "" +msgstr "总是被覆盖" #: xpack/plugins/cloud/models.py:142 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:104 @@ -6543,11 +6543,11 @@ msgstr "同步实例任务历史" msgid "Instance" msgstr "实例" -#: xpack/plugins/cloud/providers/aliyun.py:19 +#: xpack/plugins/cloud/providers/aliyun.py:16 msgid "Alibaba Cloud" msgstr "阿里云" -#: xpack/plugins/cloud/providers/aws.py:15 +#: xpack/plugins/cloud/providers/aws.py:14 msgid "AWS (International)" msgstr "AWS (国际)" @@ -6555,63 +6555,53 @@ msgstr "AWS (国际)" msgid "AWS (China)" msgstr "AWS (中国)" -#: xpack/plugins/cloud/providers/huaweicloud.py:17 +#: xpack/plugins/cloud/providers/huaweicloud.py:13 msgid "Huawei Cloud" msgstr "华为云" +#: xpack/plugins/cloud/providers/huaweicloud.py:16 +msgid "CN North-Beijing4" +msgstr "华北-北京4" + +#: xpack/plugins/cloud/providers/huaweicloud.py:17 +msgid "CN East-Shanghai1" +msgstr "华东-上海1" + +#: xpack/plugins/cloud/providers/huaweicloud.py:18 +msgid "CN East-Shanghai2" +msgstr "华东-上海2" + +#: xpack/plugins/cloud/providers/huaweicloud.py:19 +msgid "CN South-Guangzhou" +msgstr "华南-广州" + #: xpack/plugins/cloud/providers/huaweicloud.py:20 -msgid "AF-Johannesburg" -msgstr "非洲-约翰内斯堡" +msgid "CN Southwest-Guiyang1" +msgstr "西南-贵阳1" #: xpack/plugins/cloud/providers/huaweicloud.py:21 -msgid "AP-Bangkok" -msgstr "亚太-曼谷" +#, fuzzy +#| msgid "AP-Hong Kong" +msgid "AP-Hong-Kong" +msgstr "亚太-香港" #: xpack/plugins/cloud/providers/huaweicloud.py:22 -msgid "AP-Hong Kong" -msgstr "亚太-香港" +msgid "AP-Bangkok" +msgstr "亚太-曼谷" #: xpack/plugins/cloud/providers/huaweicloud.py:23 msgid "AP-Singapore" msgstr "亚太-新加坡" #: xpack/plugins/cloud/providers/huaweicloud.py:24 -msgid "CN East-Shanghai1" -msgstr "华东-上海1" +msgid "AF-Johannesburg" +msgstr "非洲-约翰内斯堡" #: xpack/plugins/cloud/providers/huaweicloud.py:25 -msgid "CN East-Shanghai2" -msgstr "华东-上海2" - -#: xpack/plugins/cloud/providers/huaweicloud.py:26 -msgid "CN North-Beijing1" -msgstr "华北-北京1" - -#: xpack/plugins/cloud/providers/huaweicloud.py:27 -msgid "CN North-Beijing4" -msgstr "华北-北京4" - -#: xpack/plugins/cloud/providers/huaweicloud.py:28 -msgid "CN Northeast-Dalian" -msgstr "华北-大连" - -#: xpack/plugins/cloud/providers/huaweicloud.py:29 -msgid "CN South-Guangzhou" -msgstr "华南-广州" - -#: xpack/plugins/cloud/providers/huaweicloud.py:30 -msgid "CN Southwest-Guiyang1" -msgstr "西南-贵阳1" - -#: xpack/plugins/cloud/providers/huaweicloud.py:31 -msgid "EU-Paris" -msgstr "欧洲-巴黎" - -#: xpack/plugins/cloud/providers/huaweicloud.py:32 msgid "LA-Santiago" msgstr "拉美-圣地亚哥" -#: xpack/plugins/cloud/providers/qcloud.py:17 +#: xpack/plugins/cloud/providers/qcloud.py:14 msgid "Tencent Cloud" msgstr "腾讯云" @@ -6946,60 +6936,42 @@ msgid "Select auditor" msgstr "选择审计员" #: xpack/plugins/orgs/forms.py:28 -#: xpack/plugins/orgs/templates/orgs/org_detail.html:75 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:71 #: xpack/plugins/orgs/templates/orgs/org_list.html:13 msgid "Admin" msgstr "管理员" -#: xpack/plugins/orgs/meta.py:8 xpack/plugins/orgs/views.py:27 -#: xpack/plugins/orgs/views.py:44 xpack/plugins/orgs/views.py:62 -#: xpack/plugins/orgs/views.py:85 xpack/plugins/orgs/views.py:116 +#: xpack/plugins/orgs/meta.py:8 xpack/plugins/orgs/views.py:26 +#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:61 +#: xpack/plugins/orgs/views.py:79 msgid "Organizations" msgstr "组织管理" #: xpack/plugins/orgs/templates/orgs/org_detail.html:17 -#: xpack/plugins/orgs/templates/orgs/org_users.html:13 -#: xpack/plugins/orgs/views.py:86 +#: xpack/plugins/orgs/views.py:80 msgid "Org detail" msgstr "组织详情" -#: xpack/plugins/orgs/templates/orgs/org_detail.html:20 -#: xpack/plugins/orgs/templates/orgs/org_users.html:16 -msgid "Org users" -msgstr "组织用户" - -#: xpack/plugins/orgs/templates/orgs/org_detail.html:83 +#: xpack/plugins/orgs/templates/orgs/org_detail.html:79 msgid "Add admin" msgstr "添加管理员" -#: xpack/plugins/orgs/templates/orgs/org_detail.html:117 -msgid "Add auditor" -msgstr "添加审计员" - #: xpack/plugins/orgs/templates/orgs/org_list.html:5 msgid "Create organization " msgstr "创建组织" -#: xpack/plugins/orgs/templates/orgs/org_users.html:59 -msgid "Add user to organization" -msgstr "添加用户" - -#: xpack/plugins/orgs/views.py:28 +#: xpack/plugins/orgs/views.py:27 msgid "Org list" msgstr "组织列表" -#: xpack/plugins/orgs/views.py:45 +#: xpack/plugins/orgs/views.py:44 msgid "Create org" msgstr "创建组织" -#: xpack/plugins/orgs/views.py:63 +#: xpack/plugins/orgs/views.py:62 msgid "Update org" msgstr "更新组织" -#: xpack/plugins/orgs/views.py:117 -msgid "Org user list" -msgstr "组织用户列表" - #: xpack/plugins/vault/meta.py:11 xpack/plugins/vault/views.py:23 #: xpack/plugins/vault/views.py:38 msgid "Vault" @@ -7021,6 +6993,27 @@ msgstr "密码匣子" msgid "vault create" msgstr "创建" +#~ msgid "CN North-Beijing1" +#~ msgstr "华北-北京1" + +#~ msgid "CN Northeast-Dalian" +#~ msgstr "华北-大连" + +#~ msgid "EU-Paris" +#~ msgstr "欧洲-巴黎" + +#~ msgid "Org users" +#~ msgstr "组织用户" + +#~ msgid "Add auditor" +#~ msgstr "添加审计员" + +#~ msgid "Add user to organization" +#~ msgstr "添加用户" + +#~ msgid "Org user list" +#~ msgstr "组织用户列表" + #~ msgid "Total hosts" #~ msgstr "主机总数" @@ -7033,9 +7026,6 @@ msgstr "创建" #~ msgid "Region & Instance" #~ msgstr "地域 & 实例" -#~ msgid "Interval" -#~ msgstr "间隔" - #~ msgid "Crontab" #~ msgstr "Crontab" diff --git a/apps/ops/mixin.py b/apps/ops/mixin.py index d3d397220..fd6f9cf27 100644 --- a/apps/ops/mixin.py +++ b/apps/ops/mixin.py @@ -110,7 +110,7 @@ class PeriodTaskSerializerMixin(serializers.Serializer): max_length=128, allow_blank=True, allow_null=True, required=False, label=_('Regularly perform') ) - interval = serializers.IntegerField(allow_null=True, required=False) + interval = serializers.IntegerField(allow_null=True, required=False, label=_('Interval')) INTERVAL_MAX = 65535 INTERVAL_MIN = 1