merged: Merge to v4 (bai)

pull/13274/head^2
Bai 2024-05-22 18:12:35 +08:00
commit e7f92ec0d7
18 changed files with 456 additions and 450 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-17 16:45+0800\n"
"POT-Creation-Date: 2024-05-15 11:48+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -80,10 +80,8 @@ msgid "Anonymous account"
msgstr ""
#: accounts/const/account.py:18
#, fuzzy
#| msgid "Is service account"
msgid "Specified account"
msgstr "Is service account"
msgstr ""
#: accounts/const/account.py:26 users/models/user.py:751
msgid "Local"
@ -5416,45 +5414,43 @@ msgstr ""
#: settings/serializers/basic.py:13
msgid ""
"External URL, email links or other system callbacks are used to access it, "
"eg: http://dev.jumpserver.org:8080"
msgstr ""
"Site URL are commonly used in emails sent or as callback addresses for "
"external systems. eg: http://dev.jumpserver.org:8080"
#: settings/serializers/basic.py:18
msgid "User guide url"
"Site URL is the externally accessible address of the current product service "
"and is usually used in links in system emails"
msgstr ""
#: settings/serializers/basic.py:19
msgid "User guide url"
msgstr ""
#: settings/serializers/basic.py:20
msgid "User first login update profile done redirect to it"
msgstr ""
#: settings/serializers/basic.py:22
#: settings/serializers/basic.py:23
msgid "Global organization"
msgstr ""
#: settings/serializers/basic.py:23
#: settings/serializers/basic.py:24
msgid "The name of global organization to display"
msgstr ""
#: settings/serializers/basic.py:26
#: settings/serializers/basic.py:27
msgid "Help Docs URL"
msgstr "Document URL"
#: settings/serializers/basic.py:27
#: settings/serializers/basic.py:28
msgid "default: http://docs.jumpserver.org"
msgstr ""
#: settings/serializers/basic.py:30
#: settings/serializers/basic.py:31
msgid "Help Support URL"
msgstr "Support URL"
#: settings/serializers/basic.py:31
#: settings/serializers/basic.py:32
msgid "default: http://www.jumpserver.org/support/"
msgstr ""
#: settings/serializers/basic.py:44
#: settings/serializers/basic.py:45
msgid "Organization name already exists"
msgstr ""
@ -5509,7 +5505,7 @@ msgid "Subject"
msgstr ""
#: settings/serializers/feature.py:22
msgid "More URL"
msgid "More Link"
msgstr ""
#: settings/serializers/feature.py:36 settings/serializers/feature.py:38
@ -8000,10 +7996,8 @@ msgid "On"
msgstr ""
#: users/serializers/profile.py:94
#, fuzzy
#| msgid "Su enabled"
msgid "Forced enabled"
msgstr "Switch enabled"
msgstr ""
#: users/serializers/user.py:45
msgid "System roles"
@ -9150,3 +9144,10 @@ msgstr ""
#: xpack/plugins/license/models.py:86
msgid "Ultimate edition"
msgstr ""
#~ msgid ""
#~ "External URL, email links or other system callbacks are used to access "
#~ "it, eg: http://dev.jumpserver.org:8080"
#~ msgstr ""
#~ "Site URL are commonly used in emails sent or as callback addresses for "
#~ "external systems. eg: http://dev.jumpserver.org:8080"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-13 18:52+0800\n"
"POT-Creation-Date: 2024-05-15 11:48+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -5620,45 +5620,43 @@ msgstr "サイトURL"
#: settings/serializers/basic.py:13
msgid ""
"External URL, email links or other system callbacks are used to access it, "
"eg: http://dev.jumpserver.org:8080"
"Site URL is the externally accessible address of the current product service "
"and is usually used in links in system emails"
msgstr ""
"外部URL、メールリンクまたは他のシステムコールバックにアクセスするには、"
"http://dev.jumpserver.org:8080などを使用します"
#: settings/serializers/basic.py:18
#: settings/serializers/basic.py:19
msgid "User guide url"
msgstr "ユーザーガイドurl"
#: settings/serializers/basic.py:19
#: settings/serializers/basic.py:20
msgid "User first login update profile done redirect to it"
msgstr "ユーザーの最初のログイン更新プロファイルがリダイレクトされました"
#: settings/serializers/basic.py:22
#: settings/serializers/basic.py:23
msgid "Global organization"
msgstr "グローバル組織名"
#: settings/serializers/basic.py:23
#: settings/serializers/basic.py:24
msgid "The name of global organization to display"
msgstr "表示するグローバル組織の名前"
#: settings/serializers/basic.py:26
#: settings/serializers/basic.py:27
msgid "Help Docs URL"
msgstr "ドキュメントリンク"
#: settings/serializers/basic.py:27
#: settings/serializers/basic.py:28
msgid "default: http://docs.jumpserver.org"
msgstr "デフォルト: http://docs.jumpserver.org"
#: settings/serializers/basic.py:30
#: settings/serializers/basic.py:31
msgid "Help Support URL"
msgstr "サポートリンク"
#: settings/serializers/basic.py:31
#: settings/serializers/basic.py:32
msgid "default: http://www.jumpserver.org/support/"
msgstr "デフォルト: http://www.jumpserver.org/support/"
#: settings/serializers/basic.py:44
#: settings/serializers/basic.py:45
msgid "Organization name already exists"
msgstr "組織名はすでに存在します。"
@ -5725,7 +5723,7 @@ msgid "Subject"
msgstr "件名"
#: settings/serializers/feature.py:22
msgid "More URL"
msgid "More Link"
msgstr "もっとURL"
#: settings/serializers/feature.py:36 settings/serializers/feature.py:38
@ -8950,7 +8948,9 @@ msgstr "インスタンス \"%s\" の同期に失敗しました"
msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates"
msgstr "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プラットフォームとプロトコルの更新をスキップ"
msgstr ""
"更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プ"
"ラットフォームとプロトコルの更新をスキップ"
#: xpack/plugins/cloud/manager.py:358
#, python-format
@ -9551,6 +9551,13 @@ msgstr "エンタープライズプロフェッショナル版"
msgid "Ultimate edition"
msgstr "エンタープライズ・フラッグシップ・エディション"
#~ msgid ""
#~ "External URL, email links or other system callbacks are used to access "
#~ "it, eg: http://dev.jumpserver.org:8080"
#~ msgstr ""
#~ "外部URL、メールリンクまたは他のシステムコールバックにアクセスするには、"
#~ "http://dev.jumpserver.org:8080などを使用します"
#, fuzzy
#~| msgid "permed assets"
#~ msgid "Release assets"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-17 16:45+0800\n"
"POT-Creation-Date: 2024-05-11 10:40+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -28,9 +28,9 @@ msgstr "成功: %s, 失败: %s, 总数: %s"
#: accounts/const/account.py:6
#: accounts/serializers/automations/change_secret.py:34
#: audits/signal_handlers/login_log.py:34 authentication/confirm/password.py:9
#: authentication/confirm/password.py:24 authentication/confirm/password.py:26
#: authentication/forms.py:28
#: assets/models/_user.py:24 audits/signal_handlers/login_log.py:34
#: authentication/confirm/password.py:9 authentication/confirm/password.py:24
#: authentication/confirm/password.py:26 authentication/forms.py:28
#: authentication/templates/authentication/login.html:329
#: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:47
#: settings/serializers/msg.py:35 terminal/serializers/storage.py:123
@ -52,7 +52,8 @@ msgstr "SSH 密钥"
msgid "Access key"
msgstr "Access key"
#: accounts/const/account.py:9 authentication/backends/passkey/models.py:16
#: accounts/const/account.py:9 assets/models/_user.py:48
#: authentication/backends/passkey/models.py:16
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:52
msgid "Token"
msgstr "Token"
@ -389,7 +390,7 @@ msgstr "账号备份计划"
#: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241
#: ops/templates/ops/celery_task_log.html:95
#: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:78
#: settings/templates/ldap/_msg_import_ldap_user.html:5
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
@ -418,8 +419,7 @@ msgid "Trigger mode"
msgstr "触发模式"
#: accounts/models/automations/backup_account.py:134 audits/models.py:203
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:165
#: xpack/plugins/cloud/models.py:204
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:204
msgid "Reason"
msgstr "原因"
@ -547,8 +547,9 @@ msgstr "最后登录日期"
#: accounts/models/automations/gather_account.py:17
#: accounts/models/automations/push_account.py:15 accounts/models/base.py:65
#: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19
#: acls/serializers/base.py:50 audits/models.py:188 authentication/forms.py:21
#: authentication/forms.py:23 authentication/models/temp_token.py:9
#: acls/serializers/base.py:50 assets/models/_user.py:23 audits/models.py:188
#: authentication/forms.py:21 authentication/forms.py:23
#: authentication/models/temp_token.py:9
#: authentication/templates/authentication/_msg_different_city.html:9
#: authentication/templates/authentication/_msg_oauth_bind.html:9
#: terminal/serializers/storage.py:136 users/forms/profile.py:31
@ -628,12 +629,13 @@ msgstr "密码规则"
#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20
#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/serializers/base.py:35 assets/models/asset/common.py:93
#: acls/serializers/base.py:35 applications/models.py:9
#: assets/models/_user.py:22 assets/models/asset/common.py:93
#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21
#: assets/models/domain.py:19 assets/models/label.py:18
#: assets/models/platform.py:15 assets/models/platform.py:94
#: assets/serializers/asset/common.py:149 assets/serializers/platform.py:143
#: assets/serializers/platform.py:261
#: assets/models/domain.py:19 assets/models/group.py:17
#: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/platform.py:94 assets/serializers/asset/common.py:149
#: assets/serializers/platform.py:143 assets/serializers/platform.py:261
#: authentication/backends/passkey/models.py:10
#: authentication/serializers/connect_token_secret.py:113
#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11
@ -652,7 +654,7 @@ msgstr "密码规则"
#: users/forms/profile.py:32 users/models/group.py:13
#: users/models/preference.py:11 users/models/user.py:874
#: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272
#: xpack/plugins/cloud/serializers/task.py:71
#: xpack/plugins/cloud/serializers/task.py:70
msgid "Name"
msgstr "名称"
@ -670,7 +672,7 @@ msgstr "特权账号"
msgid "Is active"
msgstr "激活"
#: accounts/models/template.py:18
#: accounts/models/template.py:18 assets/models/_user.py:53
msgid "Auto push"
msgstr "自动推送"
@ -784,18 +786,19 @@ msgstr "参数"
msgid "Exist policy"
msgstr "账号存在策略"
#: accounts/serializers/account/account.py:195 assets/models/label.py:21
#: assets/models/platform.py:95 assets/serializers/asset/common.py:125
#: assets/serializers/cagegory.py:12 assets/serializers/platform.py:165
#: assets/serializers/platform.py:262 perms/serializers/user_permission.py:26
#: settings/models.py:36 tickets/models/ticket/apply_application.py:13
#: users/models/preference.py:12
#: accounts/serializers/account/account.py:195 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:95
#: assets/serializers/asset/common.py:125 assets/serializers/cagegory.py:12
#: assets/serializers/platform.py:165 assets/serializers/platform.py:262
#: perms/serializers/user_permission.py:26 settings/models.py:36
#: tickets/models/ticket/apply_application.py:13 users/models/preference.py:12
msgid "Category"
msgstr "类别"
#: accounts/serializers/account/account.py:196
#: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24
#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20
#: acls/serializers/command_acl.py:19 applications/models.py:14
#: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:96
#: assets/serializers/asset/common.py:126 assets/serializers/platform.py:145
#: assets/serializers/platform.py:164 audits/serializers.py:53
@ -839,7 +842,6 @@ msgstr "已修改"
#: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:36
#: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:73
msgid "Assets"
msgstr "资产"
@ -853,7 +855,6 @@ msgid "Asset does not support this secret type: %s"
msgstr "资产不支持账号类型: %s"
#: accounts/serializers/account/account.py:410
#: xpack/plugins/cloud/serializers/account.py:111
msgid "Account has exist"
msgstr "账号已存在"
@ -880,8 +881,8 @@ msgstr "ID"
#: terminal/serializers/command.py:16
#: terminal/templates/terminal/_msg_command_warning.html:6
#: terminal/templates/terminal/_msg_session_sharing.html:6
#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1062
#: users/models/user.py:1100
#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1059
#: users/models/user.py:1097
msgid "User"
msgstr "用户"
@ -966,8 +967,9 @@ msgid ""
"default parameters will be used"
msgstr "关联平台,可配置推送参数,如果不关联,将使用默认参数"
#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:26
#: accounts/serializers/account/virtual.py:19 assets/models/_user.py:27
#: assets/models/cmd_filter.py:40 assets/models/cmd_filter.py:88
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:158 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:39 terminal/models/applet/applet.py:45
#: terminal/models/applet/applet.py:321 terminal/models/applet/host.py:143
@ -1095,7 +1097,7 @@ msgid "Deleted account"
msgstr "删除账号"
#: accounts/templates/accounts/change_secret_failed_info.html:3
#: terminal/serializers/task.py:10
#: ops/templates/ops/celery_task_log.html:71 terminal/serializers/task.py:10
msgid "Task name"
msgstr "任务名称"
@ -1143,6 +1145,8 @@ msgid "Review"
msgstr "审批"
#: acls/const.py:9
#, fuzzy
#| msgid "Warning"
msgid "Warn"
msgstr "告警"
@ -1150,13 +1154,15 @@ msgstr "告警"
msgid "Notify"
msgstr ""
#: acls/models/base.py:37 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:278
#: acls/models/base.py:37 assets/models/_user.py:51
#: assets/models/cmd_filter.py:76 terminal/models/component/endpoint.py:112
#: xpack/plugins/cloud/models.py:278
msgid "Priority"
msgstr "优先级"
#: acls/models/base.py:38 assets/models/cmd_filter.py:76
#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:279
#: acls/models/base.py:38 assets/models/_user.py:51
#: assets/models/cmd_filter.py:76 terminal/models/component/endpoint.py:113
#: xpack/plugins/cloud/models.py:279
msgid "1-100, the lower the value will be match first"
msgstr "优先级可选范围为 1-100 (数值越小越优先)"
@ -1301,7 +1307,7 @@ msgid "None of the reviewers belong to Organization `{}`"
msgstr "所有复核人都不属于组织 `{}`"
#: acls/serializers/rules/rules.py:20
#: xpack/plugins/cloud/serializers/task.py:146
#: xpack/plugins/cloud/serializers/task.py:145
msgid "IP address invalid: `{}`"
msgstr "IP 地址无效: `{}`"
@ -1359,6 +1365,23 @@ msgstr ""
"用户刚刚成功登录到系统。请确保这是授权的操作。如果您怀疑这是一个未经授权的访"
"问,请立即采取适当的措施。"
#: applications/apps.py:9
msgid "App Applications"
msgstr "应用管理"
#: applications/models.py:16 xpack/plugins/cloud/models.py:37
#: xpack/plugins/cloud/serializers/account.py:68
msgid "Attrs"
msgstr "属性"
#: applications/models.py:19
msgid "Application"
msgstr "应用程序"
#: applications/models.py:23
msgid "Can match application"
msgstr "匹配应用"
#: assets/api/asset/asset.py:180
msgid "Cannot create asset directly, you should create a host or other"
msgstr "不能直接创建资产, 你应该创建主机或其他资产"
@ -1463,7 +1486,6 @@ msgstr "脚本"
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31
#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17
#: xpack/plugins/cloud/manager.py:73
#: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host"
msgstr "主机"
@ -1667,6 +1689,104 @@ msgstr "网站"
msgid "This function is not supported temporarily"
msgstr "暂时不支持此功能"
#: assets/models/_user.py:25
msgid "SSH private key"
msgstr "SSH密钥"
#: assets/models/_user.py:26
msgid "SSH public key"
msgstr "SSH公钥"
# msgid "Comment"
# msgstr "备注"
#: assets/models/_user.py:28 assets/models/automations/base.py:114
#: assets/models/cmd_filter.py:41 assets/models/group.py:19
#: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54
#: ops/models/job.py:240 users/models/user.py:1098
msgid "Date created"
msgstr "创建日期"
#: assets/models/_user.py:29 assets/models/cmd_filter.py:42
#: common/db/models.py:35 users/models/user.py:936
msgid "Date updated"
msgstr "更新日期"
#: assets/models/_user.py:30 assets/models/cmd_filter.py:44
#: assets/models/cmd_filter.py:91 assets/models/group.py:18
#: common/db/models.py:32 users/models/user.py:917
#: users/serializers/group.py:32
msgid "Created by"
msgstr "创建者"
#: assets/models/_user.py:40
msgid "Automatic managed"
msgstr "托管密码"
#: assets/models/_user.py:41
msgid "Manually input"
msgstr "手动输入"
#: assets/models/_user.py:45
msgid "Common user"
msgstr "普通用户"
#: assets/models/_user.py:46 assets/models/_user.py:95
msgid "Admin user"
msgstr "特权用户"
#: assets/models/_user.py:49
msgid "Username same with user"
msgstr "用户名与用户相同"
#: assets/models/_user.py:52 authentication/models/connection_token.py:41
#: authentication/serializers/connect_token_secret.py:114
#: settings/serializers/msg.py:29 terminal/models/applet/applet.py:42
#: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:21 terminal/serializers/session.py:48
#: terminal/serializers/storage.py:71
msgid "Protocol"
msgstr "协议"
#: assets/models/_user.py:54
msgid "Sudo"
msgstr "Sudo"
#: assets/models/_user.py:55 ops/const.py:50 ops/const.py:61
msgid "Shell"
msgstr "Shell"
#: assets/models/_user.py:56
msgid "Login mode"
msgstr "认证方式"
#: assets/models/_user.py:57 terminal/serializers/storage.py:152
msgid "SFTP Root"
msgstr "SFTP根路径"
#: assets/models/_user.py:58
msgid "Home"
msgstr "家目录"
#: assets/models/_user.py:59
msgid "System groups"
msgstr "用户组"
#: assets/models/_user.py:62
msgid "User switch"
msgstr "用户切换"
#: assets/models/_user.py:63
msgid "Switch from"
msgstr "切换自"
#: assets/models/_user.py:69
msgid "System user"
msgstr "系统用户"
#: assets/models/_user.py:71
msgid "Can match system user"
msgstr "可以匹配系统用户"
#: assets/models/asset/cloud.py:11
msgid "Cloud"
msgstr "云服务"
@ -1691,8 +1811,10 @@ msgid "Platform"
msgstr "平台"
#: assets/models/asset/common.py:163 assets/models/domain.py:22
msgid "Zone"
msgstr ""
#: authentication/serializers/connect_token_secret.py:136
#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:327
msgid "Domain"
msgstr "网域"
#: assets/models/asset/common.py:166 assets/serializers/asset/common.py:385
#: assets/serializers/asset/host.py:11
@ -1762,14 +1884,6 @@ msgstr "自动化任务"
msgid "Asset automation task"
msgstr "资产自动化任务"
# msgid "Comment"
# msgstr "备注"
#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41
#: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54
#: ops/models/job.py:240 users/models/user.py:1101
msgid "Date created"
msgstr "创建日期"
#: assets/models/automations/gather_facts.py:15
msgid "Gather asset facts"
msgstr "收集资产信息"
@ -1791,17 +1905,6 @@ msgstr "校验日期"
msgid "User group"
msgstr "用户组"
#: assets/models/cmd_filter.py:42 common/db/models.py:35
#: users/models/user.py:936
msgid "Date updated"
msgstr "更新日期"
#: assets/models/cmd_filter.py:44 assets/models/cmd_filter.py:91
#: common/db/models.py:32 users/models/user.py:917
#: users/serializers/group.py:32
msgid "Created by"
msgstr "创建者"
#: assets/models/cmd_filter.py:52
msgid "Command filter"
msgstr "命令过滤器"
@ -1834,7 +1937,21 @@ msgstr "收藏的资产"
msgid "Gateway"
msgstr "网关"
#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1086
#: assets/models/group.py:27
msgid "Asset group"
msgstr "资产组"
#: assets/models/group.py:31 assets/models/platform.py:19
#: assets/serializers/platform.py:146
#: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default"
msgstr "默认"
#: assets/models/group.py:31
msgid "Default asset group"
msgstr "默认资产组"
#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1083
msgid "System"
msgstr "系统"
@ -1889,11 +2006,6 @@ msgstr "主要的"
msgid "Required"
msgstr "必须的"
#: assets/models/platform.py:19 assets/serializers/platform.py:146
#: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default"
msgstr "默认"
#: assets/models/platform.py:20
msgid "Public"
msgstr "开放的"
@ -2001,7 +2113,7 @@ msgid "Charset"
msgstr "编码"
#: assets/models/platform.py:104 assets/serializers/platform.py:198
msgid "Gateway enabled"
msgid "Domain enabled"
msgstr "启用网域"
#: assets/models/platform.py:106 assets/serializers/platform.py:191
@ -2032,7 +2144,7 @@ msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: authentication/serializers/connect_token_secret.py:75
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:46
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328
#: xpack/plugins/cloud/serializers/task.py:34
#: xpack/plugins/cloud/serializers/task.py:33
msgid "Protocols"
msgstr "协议组"
@ -2241,7 +2353,7 @@ msgid ""
msgstr ""
#: assets/serializers/platform.py:199
msgid "Assets can be connected using a zone gateway"
msgid "Assets can be connected using a domain gateway"
msgstr ""
#: assets/serializers/platform.py:201
@ -2371,7 +2483,6 @@ msgstr "映射目录"
#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277
#: terminal/templates/terminal/_msg_command_warning.html:18
#: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:74
msgid "View"
msgstr "查看"
@ -2431,7 +2542,6 @@ msgstr "登录日志"
#: audits/const.py:51 terminal/models/applet/host.py:144
#: terminal/models/component/task.py:22
#: xpack/plugins/cloud/serializers/account.py:55
msgid "Task"
msgstr "任务"
@ -2541,8 +2651,9 @@ msgstr "MFA"
msgid "Login Date"
msgstr "登录日期"
#: audits/models.py:212 audits/models.py:266
msgid "Auth backend"
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
#: audits/serializers.py:184
msgid "Authentication backend"
msgstr "认证方式"
#: audits/models.py:256
@ -2572,12 +2683,6 @@ msgstr "创建者"
msgid "Reason display"
msgstr "原因描述"
#: audits/serializers.py:70 audits/serializers.py:184
#, fuzzy
#| msgid "Auth backend"
msgid "Auth backend display"
msgstr "认证方式"
#: audits/serializers.py:134
#, python-format
msgid "%s %s this resource"
@ -3093,15 +3198,6 @@ msgstr "自定义用户名"
msgid "Input secret"
msgstr "自定义密码"
#: authentication/models/connection_token.py:41
#: authentication/serializers/connect_token_secret.py:114
#: settings/serializers/msg.py:29 terminal/models/applet/applet.py:42
#: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:21 terminal/serializers/session.py:48
#: terminal/serializers/storage.py:71
msgid "Protocol"
msgstr "协议"
#: authentication/models/connection_token.py:42
msgid "Connect method"
msgstr "连接方式"
@ -3200,11 +3296,6 @@ msgstr "选项"
msgid "Component"
msgstr "组件"
#: authentication/serializers/connect_token_secret.py:136
#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:327
msgid "Domain"
msgstr "网域"
#: authentication/serializers/connect_token_secret.py:138
msgid "Expired now"
msgstr "立刻过期"
@ -3668,7 +3759,7 @@ msgstr "运行中"
msgid "Canceled"
msgstr "取消"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:380
#: common/const/common.py:5
#, python-format
msgid "%(name)s was created successfully"
msgstr "%(name)s 创建成功"
@ -4197,10 +4288,6 @@ msgstr "仅限特权账号"
msgid "Privileged First"
msgstr "特权账号优先"
#: ops/const.py:50 ops/const.py:61
msgid "Shell"
msgstr "Shell"
#: ops/const.py:51 ops/const.py:62
msgid "Powershell"
msgstr "PowerShell"
@ -4308,7 +4395,6 @@ msgid "Result"
msgstr "结果"
#: ops/models/base.py:52 ops/models/job.py:238
#: xpack/plugins/cloud/manager.py:77
msgid "Summary"
msgstr "汇总"
@ -4887,7 +4973,7 @@ msgstr "系统设置"
msgid "Session audits"
msgstr "会话审计"
#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74
#: rbac/tree.py:49
msgid "Cloud import"
msgstr "云同步"
@ -5594,7 +5680,7 @@ msgid "Subject"
msgstr "主题"
#: settings/serializers/feature.py:22
msgid "More URL"
msgid "More Link"
msgstr "更多信息 URL"
#: settings/serializers/feature.py:36 settings/serializers/feature.py:38
@ -6814,7 +6900,7 @@ msgid "Can download session replay"
msgstr "可以下载会话录像"
#: terminal/models/session/session.py:35
msgid "Account ID"
msgid "Account id"
msgstr "账号 ID"
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118
@ -7194,8 +7280,7 @@ msgstr "Access key ID(AK)"
msgid "Access key secret"
msgstr "Access key secret(SK)"
#: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:90
#: xpack/plugins/cloud/models.py:249
#: terminal/serializers/storage.py:68 xpack/plugins/cloud/models.py:249
msgid "Region"
msgstr "地域"
@ -7220,10 +7305,6 @@ msgstr "主机"
msgid "Private key"
msgstr "ssh私钥"
#: terminal/serializers/storage.py:152
msgid "SFTP Root"
msgstr "SFTP根路径"
#: terminal/serializers/storage.py:173
msgid "The address cannot contain the special character `#`"
msgstr "地址中不能包含特殊字符 `#`"
@ -7996,31 +8077,31 @@ msgstr "需要更新密码"
msgid "Date api key used"
msgstr "Api key 最后使用日期"
#: users/models/user.py:1057
#: users/models/user.py:1054
msgid "Can not delete admin user"
msgstr "无法删除管理员用户"
#: users/models/user.py:1071
#: users/models/user.py:1068
msgid "Can invite user"
msgstr "可以邀请用户"
#: users/models/user.py:1072
#: users/models/user.py:1069
msgid "Can remove user"
msgstr "可以移除用户"
#: users/models/user.py:1073
#: users/models/user.py:1070
msgid "Can match user"
msgstr "可以匹配用户"
#: users/models/user.py:1082
#: users/models/user.py:1079
msgid "Administrator"
msgstr "管理员"
#: users/models/user.py:1085
#: users/models/user.py:1082
msgid "Administrator is the super user of system"
msgstr "Administrator是初始的超级管理员"
#: users/models/user.py:1110
#: users/models/user.py:1107
msgid "User password history"
msgstr "用户密码历史"
@ -8069,8 +8150,8 @@ msgid ""
"emails containing file attachments. <br>Such as: account backup files, "
"account password change results files"
msgstr ""
"文件加密密码,当系统发送的邮件中包含文件附件时,使用此密码进行解密。<br>如:"
"账号备份文件、账号改密结果文件"
"文件加密密码,当系统发送的邮件中包含文件附件时,使用此密码进行解密。<br>"
"如:账号备份文件、账号改密结果文件"
#: users/serializers/preference/lina.py:38 users/serializers/profile.py:48
msgid "The newly set password is inconsistent"
@ -8526,10 +8607,9 @@ msgstr "重置密码成功,返回到登录页面"
msgid "XPACK"
msgstr "XPack"
#: xpack/exceptions.py:8
#: xpack/exceptions.py:7
msgid ""
"Based on the current task configuration, assets that do not match the "
"strategy will skipped."
"The current task is not synchronized with unmatched policy assets, skipping"
msgstr ""
#: xpack/plugins/cloud/api.py:60
@ -8652,19 +8732,19 @@ msgstr "实例名称和部分IP"
msgid "Succeed"
msgstr "成功"
#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80
#: xpack/plugins/cloud/const.py:52
msgid "Unsync"
msgstr "未同步"
#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79
#: xpack/plugins/cloud/const.py:53
msgid "New Sync"
msgstr "新同步"
#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79
#: xpack/plugins/cloud/const.py:54
msgid "Synced"
msgstr "已同步"
#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80
#: xpack/plugins/cloud/const.py:55
msgid "Released"
msgstr "已释放"
@ -8676,98 +8756,11 @@ msgstr "与"
msgid "Or"
msgstr "或"
#: xpack/plugins/cloud/manager.py:41
#, python-format
msgid "Task \"%s\" starts executing"
msgstr "任务 \"%s\" 开始执行"
#: xpack/plugins/cloud/manager.py:45 xpack/plugins/cloud/manager.py:55
#: xpack/plugins/cloud/manager.py:57 xpack/plugins/cloud/providers/gcp.py:64
#: xpack/plugins/cloud/manager.py:55 xpack/plugins/cloud/providers/gcp.py:64
#: xpack/plugins/cloud/providers/huaweicloud.py:34
msgid "Account unavailable"
msgstr "账号无效"
#: xpack/plugins/cloud/manager.py:71
msgid "View the task details path: "
msgstr "查看任务详情路径:"
#: xpack/plugins/cloud/manager.py:74
msgid "Account Details"
msgstr "账号详情"
#: xpack/plugins/cloud/manager.py:75
msgid "Synchronization History List"
msgstr "同步历史列表"
#: xpack/plugins/cloud/manager.py:75
msgid "Synchronization Instance List"
msgstr "同步实例列表"
#: xpack/plugins/cloud/manager.py:83
msgid "Task execution completed"
msgstr "任务执行完成"
#: xpack/plugins/cloud/manager.py:87
msgid "Synchronization regions"
msgstr "同步地域"
#: xpack/plugins/cloud/manager.py:110
#, python-format
msgid "Get instances of region \"%s\" error, error: %s"
msgstr "获取地域 \"%s\" 下的实例失败,错误:%s"
#: xpack/plugins/cloud/manager.py:128
#, python-format
msgid "The instance IP \"%s\" is not in network segment \"%s\""
msgstr "实例的IP \"%s\" 不在网段 \"%s\" 中"
#: xpack/plugins/cloud/manager.py:164
#, python-format
msgid "Failed to synchronize the instance \"%s\""
msgstr "同步实例 \"%s\" 失败"
#: xpack/plugins/cloud/manager.py:316
#, python-format
msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates"
msgstr "更新的资产 \"%s\" 的平台类型和原类型不一致。跳过平台和协议更新"
#: xpack/plugins/cloud/manager.py:358
#, python-format
msgid "The asset \"%s\" already exists"
msgstr "资产 \"%s\" 已存在"
#: xpack/plugins/cloud/manager.py:362
#, python-format
msgid "Update asset \"%s\""
msgstr "更新资产 \"%s\""
#: xpack/plugins/cloud/manager.py:365
#, python-format
msgid "Asset \"%s\" has been updated"
msgstr "资产 \"%s\" 已更新"
#: xpack/plugins/cloud/manager.py:376
#, python-format
msgid "Prepare to create asset \"%s\""
msgstr "准备创建资产 \"%s\""
#: xpack/plugins/cloud/manager.py:388
#, python-format
msgid "Set nodes \"%s\""
msgstr "设置节点 \"%s\""
#: xpack/plugins/cloud/manager.py:414
#, python-format
msgid "Set accounts \"%s\""
msgstr "设置账号 \"%s\""
#: xpack/plugins/cloud/manager.py:430
#, python-format
msgid "Set protocols \"%s\""
msgstr "设置协议 \"%s\""
#: xpack/plugins/cloud/meta.py:9
msgid "Cloud center"
msgstr "云管中心"
@ -8776,11 +8769,6 @@ msgstr "云管中心"
msgid "Provider"
msgstr "云服务商"
#: xpack/plugins/cloud/models.py:37
#: xpack/plugins/cloud/serializers/account.py:69
msgid "Attrs"
msgstr "属性"
#: xpack/plugins/cloud/models.py:38
msgid "Validity"
msgstr "有效"
@ -8793,7 +8781,7 @@ msgstr "云账号"
msgid "Test cloud account"
msgstr "测试云账号"
#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:160
#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:159
msgid "Regions"
msgstr "地域"
@ -8801,16 +8789,16 @@ msgstr "地域"
msgid "Hostname strategy"
msgstr "主机名策略"
#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:163
#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:162
msgid "IP network segment group"
msgstr "IP网段组"
#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:168
#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:167
msgid "Sync IP type"
msgstr "同步IP类型"
#: xpack/plugins/cloud/models.py:102
#: xpack/plugins/cloud/serializers/task.py:186
#: xpack/plugins/cloud/serializers/task.py:185
msgid "Always update"
msgstr "总是更新"
@ -8859,7 +8847,7 @@ msgstr "实例"
msgid "Sync instance detail"
msgstr "同步实例详情"
#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:73
#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:72
msgid "Rule relation"
msgstr "条件关系"
@ -8915,7 +8903,7 @@ msgstr "规则匹配"
msgid "Rule value"
msgstr "规则值"
#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:76
#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:75
msgid "Strategy rule"
msgstr "条件"
@ -8927,7 +8915,7 @@ msgstr "动作属性"
msgid "Action value"
msgstr "动作值"
#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:79
#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:78
msgid "Strategy action"
msgstr "动作"
@ -9121,16 +9109,11 @@ msgstr "TR-Istanbul"
msgid "CN East-Suqian"
msgstr "华东-宿迁"
#: xpack/plugins/cloud/providers/lan.py:79
#, python-format
msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable"
msgstr "实例 IP \"%(ip)s\" 的端口 \"%(port)s\" 不可连接"
#: xpack/plugins/cloud/serializers/account.py:70
#: xpack/plugins/cloud/serializers/account.py:69
msgid "Validity display"
msgstr "有效性显示"
#: xpack/plugins/cloud/serializers/account.py:71
#: xpack/plugins/cloud/serializers/account.py:70
msgid "Provider display"
msgstr "服务商显示"
@ -9223,7 +9206,7 @@ msgstr "测试超时时间"
msgid "Project"
msgstr "project"
#: xpack/plugins/cloud/serializers/task.py:152
#: xpack/plugins/cloud/serializers/task.py:151
msgid ""
"Only instances matching the IP range will be synced. <br>If the instance "
"contains multiple IP addresses, the first IP address that matches will be "
@ -9235,11 +9218,11 @@ msgstr ""
"到的 IP 地址将被用作创建的资产的 IP。<br>默认值 * 表示同步所有实例和随机匹配 "
"IP 地址。<br> 例如: 192.168.1.0/24,10.1.1.1-10.1.1.20。"
#: xpack/plugins/cloud/serializers/task.py:158
#: xpack/plugins/cloud/serializers/task.py:157
msgid "History count"
msgstr "执行次数"
#: xpack/plugins/cloud/serializers/task.py:159
#: xpack/plugins/cloud/serializers/task.py:158
msgid "Instance count"
msgstr "实例个数"
@ -9255,8 +9238,7 @@ msgstr "定期清除同步实例任务执行记录"
msgid "Restore default successfully."
msgstr "恢复默认成功!"
#: xpack/plugins/interface/meta.py:9 xpack/plugins/interface/models.py:45
#: xpack/plugins/interface/models.py:86
#: xpack/plugins/interface/meta.py:9
msgid "Interface settings"
msgstr "界面设置"
@ -9291,6 +9273,10 @@ msgstr "主题"
msgid "Footer content"
msgstr "页脚内容"
#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86
msgid "Interface setting"
msgstr "界面设置"
#: xpack/plugins/interface/serializers/interface.py:37
msgid "Wide logo on top"
msgstr "顶部宽 Logo"
@ -9304,7 +9290,7 @@ msgid "License import successfully"
msgstr "许可证导入成功"
#: xpack/plugins/license/api.py:53
msgid "Invalid license"
msgid "License is invalid"
msgstr "无效的许可证"
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
@ -9327,10 +9313,17 @@ msgstr "企业专业版"
msgid "Ultimate edition"
msgstr "企业旗舰版"
#, fuzzy
#~| msgid "permed assets"
#~ msgid "Release assets"
#~ msgstr "授权的资产"
#~ msgid "Reopen"
#~ msgstr "重新打开"
#~ msgid "New file encryption password"
#~ msgstr "文件加密密码"
#~ msgid "Confirm file encryption password"
#~ msgstr "确认文件加密密码"
#~ msgid "Key password"
#~ msgstr "密钥密码"
#~ msgid "Title of login page"
#~ msgstr "登录页标题"
@ -9344,84 +9337,6 @@ msgstr "企业旗舰版"
#~ msgid "Logo of logout page"
#~ msgstr "退出页面小 Logo"
#~ msgid "Interface setting"
#~ msgstr "界面设置"
#~ msgid "License is invalid"
#~ msgstr "无效的许可证"
#~ msgid "App Applications"
#~ msgstr "应用管理"
#~ msgid "Application"
#~ msgstr "应用程序"
#~ msgid "Can match application"
#~ msgstr "匹配应用"
#~ msgid "SSH private key"
#~ msgstr "SSH密钥"
#~ msgid "SSH public key"
#~ msgstr "SSH公钥"
#~ msgid "Automatic managed"
#~ msgstr "托管密码"
#~ msgid "Manually input"
#~ msgstr "手动输入"
#~ msgid "Common user"
#~ msgstr "普通用户"
#~ msgid "Admin user"
#~ msgstr "特权用户"
#~ msgid "Username same with user"
#~ msgstr "用户名与用户相同"
#~ msgid "Sudo"
#~ msgstr "Sudo"
#~ msgid "Login mode"
#~ msgstr "认证方式"
#~ msgid "Home"
#~ msgstr "家目录"
#~ msgid "System groups"
#~ msgstr "用户组"
#~ msgid "User switch"
#~ msgstr "用户切换"
#~ msgid "Switch from"
#~ msgstr "切换自"
#~ msgid "System user"
#~ msgstr "系统用户"
#~ msgid "Can match system user"
#~ msgstr "可以匹配系统用户"
#~ msgid "Asset group"
#~ msgstr "资产组"
#~ msgid "Default asset group"
#~ msgstr "默认资产组"
#~ msgid "Reopen"
#~ msgstr "重新打开"
#~ msgid "New file encryption password"
#~ msgstr "文件加密密码"
#~ msgid "Confirm file encryption password"
#~ msgstr "确认文件加密密码"
#~ msgid "Key password"
#~ msgstr "密钥密码"
#~ msgid "Organization ID"
#~ msgstr "组织 ID"

View File

@ -180,7 +180,7 @@
"BasePort": "Listening ports",
"Basic": "Basic",
"BasicInfo": "Basic information",
"BasicSetting": "Basic",
"BasicSettings": "General",
"BatchConsent": "Batch Approval",
"BatchDeployment": "Batch deployment",
"BatchProcessing": "{number} items selected",
@ -205,7 +205,7 @@
"BulkRemoveSuccessMsg": "Bulk remove successful",
"BulkSyncErrorMsg": "Bulk sync failed: ",
"CACertificate": "Ca certificate",
"CAS": "Cas",
"CAS": "CAS",
"CMPP2": "Cmpp v2.0",
"CTYunPrivate": "Tianyi private cloud",
"CalculationResults": "Error in cron expression",
@ -222,12 +222,12 @@
"ChangeField": "Change field",
"ChangeOrganization": "Change organization",
"ChangePassword": "Change password",
"ChangeReceiver": "Change recipient",
"EditRecipient": "Edit recipient",
"ChangeSecretParams": "Change password parameters",
"ChangeViewHelpText": "Click to switch different views",
"Chat": "Chat",
"ChatAI": "Chat ai",
"ChatHello": "Hello! Can i help you?",
"ChatAI": "Chat AI",
"ChdirHelpText": "By default, the execution directory is the user's home directory",
"CheckAssetsAmount": "Check asset quantity",
"CheckViewAcceptor": "Click to view the acceptance person",
@ -341,7 +341,7 @@
"CustomCol": "Customize display columns",
"CustomCreate": "Create asset - custom",
"CustomFields": "Custom attributes",
"CustomFile": "Please place custom files in the specified directory (data/sms/main.py), and enable configuration item sms_custom_file_md5=<file md5 value> in config.txt",
"CustomFile": "Please place custom files in the specified directory (data/sms/main.py), and enable configuration item `SMS_CUSTOM_FILE_MD5=<file md5 value>` in config.txt",
"CustomHelpMessage": "Custom assets type is dependent on remote applications. please configure it in system settings in the remote applications",
"CustomParams": "The left side are parameters received by the sms platform, and the right side are jumpserver parameters waiting for formatting, which will eventually be as follows:<br/>{\"phone_numbers\": \"123,134\", \"content\": \"verification code: 666666\"}",
"CustomUpdate": "Update the asset - custom",
@ -398,7 +398,7 @@
"DeviceCreate": "Create asset - device",
"DeviceUpdate": "Update the asset - device",
"Digit": "Number",
"DingTalk": "Dingtalk",
"DingTalk": "DingTalk",
"DingTalkOAuth": "DingTalk OAuth",
"DingTalkTest": "Test",
"Disable": "Disable",
@ -506,7 +506,7 @@
"Generate": "Generate",
"GenerateAccounts": "Regenerate account",
"GenerateSuccessMsg": "Account creation successful",
"GenericSetting": "Generic",
"GeneralSetting": "General",
"GoHomePage": "Go to homepage",
"Goto": "Goto",
"GrantedAssets": "Authorized assets",
@ -517,8 +517,6 @@
"HardwareInfo": "Hardware information",
"HasImportErrorItemMsg": "There are import failures, click on the left x to view the failure reasons, after editing the table, you can continue to import failures.",
"Help": "Help",
"HelpDocumentTip": "Document url for navigation bar 'help -> document' redirection.",
"HelpSupportTip": "Support url for the navigation bar 'help -> support' redirection.",
"HighLoad": "Higher",
"HistoricalSessionNum": "Total historical sessions",
"History": "History",
@ -619,7 +617,7 @@
"Last30Days": "Monthly",
"Last7Days": "Weekly",
"LastPublishedTime": "Last publish time",
"Ldap": "Ldap",
"Ldap": "LDAP",
"LdapBulkImport": "User import",
"LdapConnectTest": "Test connection",
"LdapLoginTest": "Test login",
@ -737,9 +735,9 @@
"Now": "Now",
"Number": "No.",
"NumberOfVisits": "Visits",
"OAuth2": "Oauth2",
"OAuth2": "OAuth2",
"OAuth2LogoTip": "Note: authentication provider (recommended image size: 64px*64px)",
"OIDC": "Oidc",
"OIDC": "OIDC",
"ObjectNotFoundOrDeletedMsg": "No corresponding resources found or it has been deleted.",
"Offline": "Offline",
"OfflineSelected": "Offline selected",
@ -965,7 +963,7 @@
"SCP": "Sangfor cloud platform",
"SMS": "Message",
"SMSProvider": "SMS service provider",
"SMTP": "Email server",
"SMTP": "Server",
"SSHKey": "SSH Key",
"SSHKeyOfProfileSSHUpdatePage": "You can reset and download the SSH public key by clicking the button below, or copy your SSH public key and submit it.",
"SSHPort": "SSH Port",
@ -1119,9 +1117,9 @@
"SystemRoleHelpMsg": "System roles are roles that apply universally across all organizations within the platform. these roles allow you to define specific permissions and access levels for users across the entire system. changes made to system roles will affect all organizations using the platform.",
"SystemRoles": "System roles",
"SystemSetting": "System settings",
"SystemTools": "System tools",
"SystemTools": "Tools",
"TableColSetting": "Select visible attribute columns",
"TableSetting": "Table preference",
"TableSetting": "Table preferences",
"Target": "Target",
"TargetResources": "Target resource",
"Task": "Task",
@ -1130,6 +1128,7 @@
"TaskDone": "Task finished",
"TaskID": "Task id",
"TaskList": "Tasks",
"SystemTasks": "Tasks",
"TaskMonitor": "Monitoring",
"TechnologyConsult": "Technical consultation",
"TempPasswordTip": "The temporary password is valid for 300 seconds and becomes invalid immediately after use",
@ -1269,12 +1268,12 @@
"VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.",
"VirtualAccountUpdate": "Virtual account update",
"VirtualAccounts": "Virtual accounts",
"VirtualApp": "Virtual app",
"VirtualApp": "Virtual App",
"VirtualAppDetail": "Virtual app details",
"VirtualApps": "Virtual app",
"VirtualApps": "VApp",
"Volcengine": "Volcengine",
"Warning": "Warning",
"WeCom": "Wecom",
"WeCom": "WeCom",
"WeComOAuth": "WeCom OAuth",
"WeComTest": "Test",
"WebCreate": "Create asset - web",
@ -1301,5 +1300,10 @@
"ZoneList": "Zones",
"ZoneUpdate": "Update the zone",
"TailLog": "Tail Log",
"NoLog": "No log"
"NoLog": "No log",
"SiteURLTip": "For example: https://demo.jumpserver.org",
"Settings...": "Settings...",
"EmailTemplate": "Template",
"EmailTemplateHelpTip": "Email template is used for sending emails and includes the email subject prefix and email content",
"ForgotPasswordURL": "Forgot password URL"
}

View File

@ -181,6 +181,18 @@
"BatchReject": "一括拒否",
"BatchTest": "一括テスト",
"BatchTransfer": "一括転送",
"BasicSettings": "基本設定",
"BasicTools": "基本的なツール",
"BatchActivate": "一括アクティブ化",
"BatchApproval": "大量承認です",
"BatchCommand": "一括コマンド",
"BatchCommandNotExecuted": "未実行コマンド",
"BatchDelete": "一括削除",
"BatchDisable": "一括無効化",
"BatchRemoval": "一括除去",
"BatchRetry": "一括リトライ",
"BatchScript": "バッチ スクリプト",
"BatchUpdate": "ロット更新",
"BeforeChange": "変更前",
"Beian": "登記",
"BelongAll": "同時に含む",
@ -1123,7 +1135,7 @@
"TaskDetail": "タスクの詳細",
"TaskDone": "ジョブ終了",
"TaskID": "タスク ID",
"TaskList": "タスクリスト",
"SystemTasks": "タスクリスト",
"TaskMonitor": "タスクモニタリング",
"TechnologyConsult": "技術相談",
"TempPasswordTip": "一時的なパスワードの有効期間は300秒で、使用後すぐに無効になります",

View File

@ -197,7 +197,7 @@
"BasePort": "监听端口",
"Basic": "基本设置",
"BasicInfo": "基本信息",
"BasicSetting": "基本设置",
"BasicSettings": "基本设置",
"BatchConsent": "批量同意",
"BatchDeployment": "批量部署",
"BatchProcessing": "批量处理(选中 {Number} 项)",
@ -238,7 +238,7 @@
"ChangeField": "变更字段",
"ChangeOrganization": "更改组织",
"ChangePassword": "更新密码",
"ChangeReceiver": "修改消息接收人",
"EditRecipient": "编辑接收人",
"ChangeSecretParams": "改密参数",
"ChangeViewHelpText": "点击切换不同视图",
"Chat": "聊天",
@ -523,8 +523,6 @@
"HardwareInfo": "硬件信息",
"HasImportErrorItemMsg": "存在导入失败项,点击左侧 x 查看失败原因,点击表格编辑后,可以继续导入失败项",
"Help": "帮助",
"HelpDocumentTip": "可以更改网站导航栏 帮助 -> 文档 的网址",
"HelpSupportTip": "可以更改网站导航栏 帮助 -> 支持 的网址",
"HighLoad": "较高",
"HistoricalSessionNum": "历史会话数",
"History": "历史记录",
@ -603,7 +601,7 @@
"JobUpdate": "更新作业",
"KingSoftCloud": "金山云",
"KokoSetting": "KoKo 配置",
"GenericSetting": "通用配置",
"GeneralSetting": "通用配置",
"LAN": "局域网",
"LDAPUser": "LDAP 用户",
"Label": "标签",
@ -1122,7 +1120,7 @@
"TaskDetail": "任务详情",
"TaskDone": "任务结束",
"TaskID": "任务 ID",
"TaskList": "任务列表",
"SystemTasks": "任务列表",
"TaskMonitor": "任务监控",
"TechnologyConsult": "技术咨询",
"TempPasswordTip": "临时密码有效期为 300 秒,使用后立刻失效",
@ -1295,5 +1293,9 @@
"InformationModification": "信息更改",
"Phone": "手机",
"TailLog": "追踪日志",
"NoLog": "无日志"
"NoLog": "无日志",
"SiteURLTip": "例如https://demo.jumpserver.org",
"Settings...": "设置...",
"EmailTemplate": "邮件模版",
"EmailTemplateHelpTip": "邮件模版是用于发送邮件的模版,包括邮件标题前缀和邮件内容"
}

View File

@ -215,7 +215,7 @@
"BasePort": "監聽埠",
"Basic": "基本設置",
"BasicInfo": "基本資訊",
"BasicSetting": "基本設置",
"BasicSettings": "基本設置",
"BasicTools": "基本工具",
"BatchActivate": "批次啟用",
"BatchApproval": "批次審批",
@ -1308,7 +1308,7 @@
"TaskDispatch": "任務下發成功",
"TaskDone": "任務結束",
"TaskID": "任務 ID",
"TaskList": "任務列表",
"SystemTasks": "任務列表",
"TaskMonitor": "任務監控",
"TechnologyConsult": "技術諮詢",
"TempPassword": "臨時密碼有效期為 300 秒,使用後立刻失效",

View File

@ -587,7 +587,7 @@ class Config(dict):
# 导航栏 帮助
'HELP_DOCUMENT_URL': 'https://docs.jumpserver.org/zh/v3/',
'HELP_SUPPORT_URL': 'http://www.jumpserver.org/support/',
'HELP_SUPPORT_URL': 'https://www.jumpserver.org/support/',
'FORGOT_PASSWORD_URL': '',
'HEALTH_CHECK_TOKEN': '',

View File

@ -22,10 +22,23 @@ class AuthSettingSerializer(serializers.Serializer):
AUTH_SLACK = serializers.BooleanField(default=False, label=_('WeCom Auth'))
AUTH_SSO = serializers.BooleanField(default=False, label=_("SSO Auth"))
AUTH_PASSKEY = serializers.BooleanField(default=False, label=_("Passkey Auth"))
EMAIL_SUFFIX = serializers.CharField(
required=False, max_length=1024, label=_("Email suffix"),
help_text=_(
"After third-party user authentication is successful, "
"if the third-party authentication service platform does not return the user's email "
"information, the system will automatically create the user using this email suffix"
)
)
FORGOT_PASSWORD_URL = serializers.CharField(
required=False, allow_blank=True, max_length=1024,
label=_("Forgot Password URL")
label=_("Forgot Password"),
help_text=_("The URL for Forgotten Password on the user login page")
)
LOGIN_REDIRECT_MSG_ENABLED = serializers.BooleanField(
required=False, label=_("Login redirection prompt")
required=False, label=_("Login redirection"),
help_text=_(
"Should an flash page be displayed before the user is redirected to third-party "
"authentication when the administrator enables third-party redirect authentication"
)
)

View File

@ -15,7 +15,10 @@ class CASSettingSerializer(serializers.Serializer):
required=False, allow_null=True, allow_blank=True,
max_length=1024, label=_('Proxy Server')
)
CAS_LOGOUT_COMPLETELY = serializers.BooleanField(required=False, label=_('Logout completely'))
CAS_LOGOUT_COMPLETELY = serializers.BooleanField(
required=False, label=_('Logout completely'),
help_text=_('When the user signs out, they also be logged out from the CAS Server')
)
CAS_VERSION = serializers.IntegerField(
required=False, label=_('Version'), min_value=1, max_value=3
)
@ -25,8 +28,17 @@ class CASSettingSerializer(serializers.Serializer):
CAS_APPLY_ATTRIBUTES_TO_USER = serializers.BooleanField(
required=False, label=_('Enable attributes map')
)
CAS_RENAME_ATTRIBUTES = serializers.JSONField(required=False, label=_('User attribute'))
CAS_RENAME_ATTRIBUTES = serializers.JSONField(
required=False, label=_('User attribute'),
help_text=_(
"User attribute mapping, where the `key` is the CAS service user attribute name "
"and the `value` is the JumpServer user attribute name"
)
)
CAS_CREATE_USER = serializers.BooleanField(
required=False, label=_('Create user'),
help_text=_('Automatically create a new user if not found.')
help_text=_(
'After successful user authentication, if the user does not exist, '
'automatically create the user'
)
)

View File

@ -40,24 +40,32 @@ class LDAPSettingSerializer(serializers.Serializer):
AUTH_LDAP_SERVER_URI = serializers.CharField(
required=True, max_length=1024, label=_('Server'),
help_text=_('eg: ldap://localhost:389')
help_text=_('LDAP server URI')
)
AUTH_LDAP_BIND_DN = serializers.CharField(
required=False, max_length=1024, label=_('Bind DN'),
help_text=_('Binding Distinguished Name')
)
AUTH_LDAP_BIND_DN = serializers.CharField(required=False, max_length=1024, label=_('Bind DN'))
AUTH_LDAP_BIND_PASSWORD = EncryptedField(
max_length=1024, required=False, label=_('Password')
max_length=1024, required=False, label=_('Password'),
help_text=_('Binding password')
)
AUTH_LDAP_SEARCH_OU = serializers.CharField(
max_length=1024, allow_blank=True, required=False, label=_('User OU'),
help_text=_('Use | split multi OUs')
max_length=1024, allow_blank=True, required=False, label=_('Search OU'),
help_text=_(
'User Search Base, if there are multiple OUs, you can separate them with the `|` symbol'
)
)
AUTH_LDAP_SEARCH_FILTER = serializers.CharField(
max_length=1024, required=True, label=_('User search filter'),
help_text=_('Choice may be (cn|uid|sAMAccountName)=%(user)s)')
max_length=1024, required=True, label=_('Search filter'),
help_text=_('Selection could include (cn|uid|sAMAccountName=%(user)s)')
)
AUTH_LDAP_USER_ATTR_MAP = serializers.JSONField(
required=True, label=_('User attribute'),
help_text=_('User attr map present how to map LDAP user attr to '
'jumpserver, username,name,email is jumpserver attr')
help_text=_(
'User attribute mapping, where the `key` is the JumpServer user attribute name and the '
'`value` is the LDAP service user attribute name'
)
)
AUTH_LDAP_SYNC_ORG_IDS = serializers.ListField(
required=False, label=_('Organization'), max_length=36
@ -85,7 +93,9 @@ class LDAPSettingSerializer(serializers.Serializer):
'improve the speed of user authentication., 0 means no cache'
)
)
AUTH_LDAP_SEARCH_PAGED_SIZE = serializers.IntegerField(required=False, label=_('Search paged size (piece)'))
AUTH_LDAP_SEARCH_PAGED_SIZE = serializers.IntegerField(
required=False, label=_('Search paged size (piece)')
)
AUTH_LDAP_SYNC_RECEIVERS = serializers.ListField(
required=False, label=_('Recipient'), max_length=36
)

View File

@ -13,7 +13,8 @@ class CommonSettingSerializer(serializers.Serializer):
# OpenID 公有配置参数 (version <= 1.5.8 或 version >= 1.5.8)
BASE_SITE_URL = serializers.CharField(
required=False, allow_null=True, allow_blank=True,
max_length=1024, label=_('Base site URL')
max_length=1024, label=_('Base site URL'),
help_text=_("The current site's URL is used to construct the callback address")
)
AUTH_OPENID_CLIENT_ID = serializers.CharField(
required=False, max_length=1024, label=_('Client Id')
@ -35,8 +36,10 @@ class CommonSettingSerializer(serializers.Serializer):
)
AUTH_OPENID_USER_ATTR_MAP = serializers.JSONField(
required=True, label=_('User attribute'),
help_text=_('User attr map present how to map OpenID user attr to '
'jumpserver, username,name,email is jumpserver attr')
help_text=_(
"User attribute mapping, where the `key` is the JumpServer user attribute name "
"and the `value` is the OIDC service user attribute name"
)
)
AUTH_OPENID_PKCE = serializers.BooleanField(required=False, label=_('Enable PKCE'))
AUTH_OPENID_CODE_CHALLENGE_METHOD = serializers.ChoiceField(
@ -48,7 +51,10 @@ class CommonSettingSerializer(serializers.Serializer):
class KeycloakSettingSerializer(CommonSettingSerializer):
# OpenID 旧配置参数 (version <= 1.5.8 (discarded))
AUTH_OPENID_KEYCLOAK = serializers.BooleanField(
label=_("Use Keycloak"), required=False, default=False
label=_("Use Keycloak"), required=False, default=False,
help_text=_(
"Use Keycloak as the OpenID Connect server, or use standard OpenID Connect Protocol"
)
)
AUTH_OPENID_SERVER_URL = serializers.CharField(
required=False, max_length=1024, label=_('Server')
@ -60,7 +66,9 @@ class KeycloakSettingSerializer(CommonSettingSerializer):
class OIDCSettingSerializer(KeycloakSettingSerializer):
# OpenID 新配置参数 (version >= 1.5.9)
AUTH_OPENID = serializers.BooleanField(required=False, label=_('OIDC'))
AUTH_OPENID = serializers.BooleanField(
required=False, label=_('OIDC'), help_text=_('OpenID Connect')
)
AUTH_OPENID_PROVIDER_ENDPOINT = serializers.CharField(
required=False, max_length=1024, label=_('Provider endpoint')
)
@ -85,15 +93,21 @@ class OIDCSettingSerializer(KeycloakSettingSerializer):
AUTH_OPENID_PROVIDER_SIGNATURE_KEY = serializers.CharField(
required=False, max_length=1024, allow_null=True, label=_('Signing key')
)
AUTH_OPENID_SCOPES = serializers.CharField(required=False, max_length=1024, label=_('Scopes'))
AUTH_OPENID_SCOPES = serializers.CharField(
required=False, max_length=1024, label=_('Scopes')
)
AUTH_OPENID_ID_TOKEN_MAX_AGE = serializers.IntegerField(
required=False, label=_('ID Token max age (s)')
)
AUTH_OPENID_ID_TOKEN_INCLUDE_CLAIMS = serializers.BooleanField(
required=False, label=_('ID Token include claims')
)
AUTH_OPENID_USE_STATE = serializers.BooleanField(required=False, label=_('Use state'))
AUTH_OPENID_USE_NONCE = serializers.BooleanField(required=False, label=_('Use nonce'))
AUTH_OPENID_USE_STATE = serializers.BooleanField(
required=False, label=_('Use state')
)
AUTH_OPENID_USE_NONCE = serializers.BooleanField(
required=False, label=_('Use nonce')
)
AUTH_OPENID_ALWAYS_UPDATE_USER = serializers.BooleanField(
required=False, label=_('Always update user')
)

View File

@ -14,12 +14,16 @@ __all__ = [
class SMSSettingSerializer(serializers.Serializer):
SMS_ENABLED = serializers.BooleanField(default=False, label=_('SMS'))
SMS_ENABLED = serializers.BooleanField(
default=False, label=_('SMS'), help_text=_('Enable Short Message Service (SMS)')
)
SMS_BACKEND = serializers.ChoiceField(
choices=BACKENDS.choices, default=BACKENDS.ALIBABA, label=_('SMS provider / Protocol')
choices=BACKENDS.choices, default=BACKENDS.ALIBABA, label=_('Provider'),
help_text=_('Short Message Service (SMS) provider or protocol')
)
SMS_CODE_LENGTH = serializers.IntegerField(
default=4, min_value=4, max_value=16, label=_('SMS code length')
default=4, min_value=4, max_value=16, label=_('Code length'),
help_text=_('Length of the sent verification code')
)
@ -32,7 +36,8 @@ class BaseSMSSettingSerializer(serializers.Serializer):
PREFIX_TITLE = _('SMS')
SMS_TEST_PHONE = PhoneField(
validators=[PhoneValidator()], required=False, allow_blank=True, allow_null=True, label=_('Test phone')
validators=[PhoneValidator()], required=False, allow_blank=True, allow_null=True,
label=_('Phone')
)
def to_representation(self, instance):

View File

@ -10,8 +10,8 @@ class BasicSettingSerializer(serializers.Serializer):
SITE_URL = serializers.URLField(
required=True, label=_("Site URL"),
help_text=_(
'External URL, email links or other system callbacks are used to access it, '
'eg: http://dev.jumpserver.org:8080'
'Site URL is the externally accessible address of the current product '
'service and is usually used in links in system emails'
)
)
USER_GUIDE_URL = serializers.URLField(
@ -23,12 +23,12 @@ class BasicSettingSerializer(serializers.Serializer):
help_text=_('The name of global organization to display')
)
HELP_DOCUMENT_URL = serializers.URLField(
required=False, allow_blank=True, allow_null=True, label=_("Help Docs URL"),
help_text=_('default: http://docs.jumpserver.org')
required=False, allow_blank=True, allow_null=True, label=_("Document URL"),
help_text=_('Document URL refers to the address in the top navigation bar Help - Document')
)
HELP_SUPPORT_URL = serializers.URLField(
required=False, allow_blank=True, allow_null=True, label=_("Help Support URL"),
help_text=_('default: http://www.jumpserver.org/support/')
required=False, allow_blank=True, allow_null=True, label=_("Support URL"),
help_text=_('Support URL refers to the address in the top navigation bar Help - Support')
)
@staticmethod

View File

@ -19,7 +19,7 @@ class AnnouncementSerializer(serializers.Serializer):
CONTENT = serializers.CharField(label=_("Content"))
LINK = serializers.URLField(
required=False, allow_null=True, allow_blank=True,
label=_("More URL"), default='',
label=_("More Link"), default='',
)
def to_representation(self, instance):
@ -57,12 +57,13 @@ class VaultSettingSerializer(serializers.Serializer):
HISTORY_ACCOUNT_CLEAN_LIMIT = serializers.IntegerField(
default=999, max_value=999, min_value=1,
required=False, label=_('Historical accounts retained count'),
required=False, label=_('Record limit'),
help_text=_(
'If the specific value is less than 999, '
'If the specific value is less than 999 (default), '
'the system will automatically perform a task every night: '
'check and delete historical accounts that exceed the predetermined number. '
'If the value reaches or exceeds 999, no historical account deletion will be performed.'
'If the value reaches or exceeds 999 (default), '
'no historical account deletion will be performed'
)
)
@ -75,13 +76,15 @@ class ChatAISettingSerializer(serializers.Serializer):
required=False, label=_('Chat AI')
)
GPT_BASE_URL = serializers.CharField(
allow_blank=True, required=False, label=_('Base Url')
allow_blank=True, required=False, label=_('Base URL'),
help_text=_('The base URL of the GPT service. For example: https://api.openai.com/v1')
)
GPT_API_KEY = EncryptedField(
allow_blank=True, required=False, label=_('API Key'),
)
GPT_PROXY = serializers.CharField(
allow_blank=True, required=False, label=_('Proxy')
allow_blank=True, required=False, label=_('Proxy'),
help_text=_('The proxy server address of the GPT service. For example: http://ip:port')
)
GPT_MODEL = serializers.ChoiceField(
default='', choices=GPT_MODEL_CHOICES, label=_("GPT Model"), required=False,
@ -108,15 +111,19 @@ class ChatAISettingSerializer(serializers.Serializer):
class TicketSettingSerializer(serializers.Serializer):
PREFIX_TITLE = _('Ticket')
TICKETS_ENABLED = serializers.BooleanField(required=False, default=True, label=_("Enable tickets"))
TICKETS_DIRECT_APPROVE = serializers.BooleanField(required=False, default=False, label=_("No login approval"))
TICKETS_ENABLED = serializers.BooleanField(required=False, default=True, label=_("Ticket"))
TICKETS_DIRECT_APPROVE = serializers.BooleanField(
required=False, default=False, label=_("Approval without login"),
help_text=_('Allow direct approval ticket without login')
)
TICKET_AUTHORIZE_DEFAULT_TIME = serializers.IntegerField(
min_value=1, max_value=999999, required=False,
label=_("Default period")
label=_("Period"),
help_text=_("The default authorization time period when applying for assets via a ticket")
)
TICKET_AUTHORIZE_DEFAULT_TIME_UNIT = serializers.ChoiceField(
choices=[('day', _("day")), ('hour', _("hour"))],
label=_("Default unit"), required=False,
label=_("Unit"), required=False, help_text=_("The unit of period")
)
@ -124,13 +131,13 @@ class OpsSettingSerializer(serializers.Serializer):
PREFIX_TITLE = _('Feature')
SECURITY_COMMAND_EXECUTION = serializers.BooleanField(
required=False, label=_('Job center'),
help_text=_('Allow user run batch command or not using ansible')
required=False, label=_('Adhoc'),
help_text=_('Allow users to execute batch commands in the Workbench - Job Center - Adhoc')
)
SECURITY_COMMAND_BLACKLIST = serializers.ListField(
child=serializers.CharField(max_length=1024, ),
label=_('Command blacklist'),
help_text=_("Commands that are not allowed execute.")
help_text=_("Command blacklist in Adhoc")
)
@ -138,5 +145,9 @@ class VirtualAppSerializer(serializers.Serializer):
PREFIX_TITLE = _('Virtual app')
VIRTUAL_APP_ENABLED = serializers.BooleanField(
required=False, label=_('Virtual app'),
required=False, label=_('vApp'),
help_text=_(
'Virtual applications, you can use the Linux operating system as an application server '
'in remote applications.'
)
)

View File

@ -30,39 +30,37 @@ class EmailSettingSerializer(serializers.Serializer):
)
EMAIL_HOST = serializers.CharField(max_length=1024, required=True, label=_("Host"))
EMAIL_PORT = serializers.CharField(max_length=5, required=True, label=_("Port"))
EMAIL_HOST_USER = serializers.CharField(max_length=128, required=True, label=_("Account"))
EMAIL_HOST_USER = serializers.CharField(
max_length=128, required=True, label=_("User"), help_text=_("The user to be used for email server authentication")
)
EMAIL_HOST_PASSWORD = EncryptedField(
max_length=1024, required=False, label=_("Password"),
help_text=_("Tips: Some provider use token except password")
help_text=_("Password to use for the email server. It is used in conjunction with `User` when authenticating to the email server")
)
EMAIL_FROM = serializers.CharField(
max_length=128, allow_blank=True, required=False, label=_('Sender'),
help_text=_('Tips: Send mail account, default SMTP account as the send account')
max_length=128, allow_blank=True, required=False, label=_('From'),
help_text=_('Sender email address (default to using the `User`)')
)
EMAIL_RECIPIENT = serializers.CharField(
max_length=128, allow_blank=True, required=False, label=_('Test recipient'),
help_text=_('Tips: Used only as a test mail recipient')
max_length=128, allow_blank=True, required=False, label=_('Recipient'),
help_text=_("The recipient is used for testing the email server's connectivity")
)
EMAIL_USE_SSL = serializers.BooleanField(
required=False, label=_('Use SSL'),
help_text=_('If SMTP port is 465, may be select')
help_text=_('Whether to use an implicit TLS (secure) connection when talking to the SMTP server. In most email documentation this type of TLS connection is referred to as SSL. It is generally used on port 465')
)
EMAIL_USE_TLS = serializers.BooleanField(
required=False, label=_("Use TLS"),
help_text=_('If SMTP port is 587, may be select')
)
EMAIL_SUBJECT_PREFIX = serializers.CharField(
max_length=1024, required=True, label=_('Subject prefix')
)
EMAIL_SUFFIX = serializers.CharField(
required=False, max_length=1024, label=_("Email suffix"),
help_text=_('This is used by default if no email is returned during SSO authentication')
help_text=_('Whether to use a TLS (secure) connection when talking to the SMTP server. This is used for explicit TLS connections, generally on port 587')
)
class EmailContentSettingSerializer(serializers.Serializer):
PREFIX_TITLE = _('Email')
EMAIL_SUBJECT_PREFIX = serializers.CharField(
max_length=1024, required=True, label=_('Subject prefix')
)
EMAIL_CUSTOM_USER_CREATED_SUBJECT = serializers.CharField(
max_length=1024, allow_blank=True, required=False,
label=_('Subject'),

View File

@ -38,4 +38,4 @@ class TerminalSettingSerializer(serializers.Serializer):
)
TERMINAL_MAGNUS_ENABLED = serializers.BooleanField(label="Magnus")
TERMINAL_RAZOR_ENABLED = serializers.BooleanField(label="Razor")
TERMINAL_KOKO_SSH_ENABLED = serializers.BooleanField(label="Koko")
TERMINAL_KOKO_SSH_ENABLED = serializers.BooleanField(label="SSH Client")

View File

@ -668,11 +668,13 @@ class MFAMixin:
@property
def mfa_force_enabled(self):
force_level = settings.SECURITY_MFA_AUTH
# 1 All users
if force_level in [True, 1]:
return True
# 2 管理员强制开启
# 2 管理员强制开启
if force_level == 2 and self.is_org_admin:
return True
# 3 仅用户开启
return self.mfa_level == 2
def enable_mfa(self):