mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-13 14:44:47 +00:00
Update comment
This commit is contained in:
parent
1790cd8345
commit
f282b2079e
@ -228,6 +228,7 @@ class MFAMixin:
|
|||||||
self._do_check_user_mfa(code, mfa_type, user=user)
|
self._do_check_user_mfa(code, mfa_type, user=user)
|
||||||
|
|
||||||
def check_user_mfa_if_need(self, user):
|
def check_user_mfa_if_need(self, user):
|
||||||
|
# 扫码登录的认证方式会执行该函数检查 mfa,跳转登录认证方式则通过ThirdPartyLoginMiddleware中间件检验 mfa
|
||||||
if not settings.SECURITY_MFA_AUTH_ENABLED_FOR_THIRD_PARTY and \
|
if not settings.SECURITY_MFA_AUTH_ENABLED_FOR_THIRD_PARTY and \
|
||||||
self.request.session.get('auth_backend') in AUTHENTICATION_BACKENDS_THIRD_PARTY:
|
self.request.session.get('auth_backend') in AUTHENTICATION_BACKENDS_THIRD_PARTY:
|
||||||
return
|
return
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: JumpServer 0.3.3\n"
|
"Project-Id-Version: JumpServer 0.3.3\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-07-08 15:52+0800\n"
|
"POT-Creation-Date: 2025-07-09 11:28+0800\n"
|
||||||
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
|
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
|
||||||
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
||||||
"Language-Team: JumpServer team<ibuler@qq.com>\n"
|
"Language-Team: JumpServer team<ibuler@qq.com>\n"
|
||||||
@ -140,6 +140,8 @@ msgstr ">>> 开始执行测试网关账号可连接性任务"
|
|||||||
#: users/templates/users/_msg_user_created.html:13
|
#: users/templates/users/_msg_user_created.html:13
|
||||||
#: users/templates/users/user_password_verify.html:18
|
#: users/templates/users/user_password_verify.html:18
|
||||||
#: xpack/plugins/cloud/serializers/account_attrs.py:43
|
#: xpack/plugins/cloud/serializers/account_attrs.py:43
|
||||||
|
#: xpack/plugins/cloud/serializers/account_attrs.py:105
|
||||||
|
#: xpack/plugins/cloud/serializers/account_attrs.py:112
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "密码"
|
msgstr "密码"
|
||||||
|
|
||||||
@ -183,7 +185,7 @@ msgstr "匿名账号"
|
|||||||
msgid "Specified account"
|
msgid "Specified account"
|
||||||
msgstr "指定账号"
|
msgstr "指定账号"
|
||||||
|
|
||||||
#: accounts/const/account.py:26 users/models/user/_source.py:11
|
#: accounts/const/account.py:26 users/models/user/_source.py:13
|
||||||
msgid "Local"
|
msgid "Local"
|
||||||
msgstr "数据库"
|
msgstr "数据库"
|
||||||
|
|
||||||
@ -603,7 +605,7 @@ msgstr "密文"
|
|||||||
#: assets/models/automations/base.py:22 assets/models/cmd_filter.py:38
|
#: assets/models/automations/base.py:22 assets/models/cmd_filter.py:38
|
||||||
#: assets/serializers/asset/common.py:148
|
#: assets/serializers/asset/common.py:148
|
||||||
#: assets/serializers/asset/common.py:423 perms/serializers/permission.py:66
|
#: assets/serializers/asset/common.py:423 perms/serializers/permission.py:66
|
||||||
#: perms/serializers/user_permission.py:76 rbac/tree.py:50
|
#: perms/serializers/user_permission.py:87 rbac/tree.py:50
|
||||||
msgid "Accounts"
|
msgid "Accounts"
|
||||||
msgstr "账号"
|
msgstr "账号"
|
||||||
|
|
||||||
@ -873,6 +875,8 @@ msgstr "重复密码"
|
|||||||
#: users/serializers/profile.py:190
|
#: users/serializers/profile.py:190
|
||||||
#: users/templates/users/_msg_user_created.html:12
|
#: users/templates/users/_msg_user_created.html:12
|
||||||
#: xpack/plugins/cloud/serializers/account_attrs.py:41
|
#: xpack/plugins/cloud/serializers/account_attrs.py:41
|
||||||
|
#: xpack/plugins/cloud/serializers/account_attrs.py:103
|
||||||
|
#: xpack/plugins/cloud/serializers/account_attrs.py:110
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "用户名"
|
msgstr "用户名"
|
||||||
|
|
||||||
@ -1170,7 +1174,7 @@ msgstr "账号存在策略"
|
|||||||
#: accounts/serializers/account/account.py:206 assets/models/label.py:21
|
#: accounts/serializers/account/account.py:206 assets/models/label.py:21
|
||||||
#: assets/models/platform.py:95 assets/serializers/asset/common.py:145
|
#: assets/models/platform.py:95 assets/serializers/asset/common.py:145
|
||||||
#: assets/serializers/cagegory.py:12 assets/serializers/platform.py:173
|
#: assets/serializers/cagegory.py:12 assets/serializers/platform.py:173
|
||||||
#: assets/serializers/platform.py:284 perms/serializers/user_permission.py:26
|
#: assets/serializers/platform.py:284 perms/serializers/user_permission.py:27
|
||||||
#: settings/models.py:41 tickets/models/ticket/apply_application.py:13
|
#: settings/models.py:41 tickets/models/ticket/apply_application.py:13
|
||||||
#: users/models/preference.py:12 xpack/plugins/cloud/models.py:41
|
#: users/models/preference.py:12 xpack/plugins/cloud/models.py:41
|
||||||
#: xpack/plugins/cloud/models.py:326
|
#: xpack/plugins/cloud/models.py:326
|
||||||
@ -1186,7 +1190,7 @@ msgstr "类别"
|
|||||||
#: audits/serializers.py:76 audits/serializers.py:196
|
#: audits/serializers.py:76 audits/serializers.py:196
|
||||||
#: authentication/models/connection_token.py:63
|
#: authentication/models/connection_token.py:63
|
||||||
#: authentication/serializers/connect_token_secret.py:128 ops/models/job.py:155
|
#: authentication/serializers/connect_token_secret.py:128 ops/models/job.py:155
|
||||||
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40
|
#: perms/serializers/user_permission.py:28 terminal/models/applet/applet.py:40
|
||||||
#: terminal/models/component/storage.py:58
|
#: terminal/models/component/storage.py:58
|
||||||
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29
|
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29
|
||||||
#: terminal/serializers/session.py:33 terminal/serializers/storage.py:281
|
#: terminal/serializers/session.py:33 terminal/serializers/storage.py:281
|
||||||
@ -1327,12 +1331,12 @@ msgid "Password length"
|
|||||||
msgstr "密码长度"
|
msgstr "密码长度"
|
||||||
|
|
||||||
#: accounts/serializers/account/template.py:12
|
#: accounts/serializers/account/template.py:12
|
||||||
#: settings/serializers/security.py:51
|
#: settings/serializers/security.py:52
|
||||||
msgid "Lowercase"
|
msgid "Lowercase"
|
||||||
msgstr "小写字母"
|
msgstr "小写字母"
|
||||||
|
|
||||||
#: accounts/serializers/account/template.py:13
|
#: accounts/serializers/account/template.py:13
|
||||||
#: settings/serializers/security.py:48
|
#: settings/serializers/security.py:49
|
||||||
msgid "Uppercase"
|
msgid "Uppercase"
|
||||||
msgstr "大写字母"
|
msgstr "大写字母"
|
||||||
|
|
||||||
@ -1945,8 +1949,8 @@ msgid ""
|
|||||||
"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (Domain name "
|
"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (Domain name "
|
||||||
"support)"
|
"support)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:"
|
"* 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, "
|
||||||
"db8:2de::e13, 2001:db8:1a:1110::/64 (支持网域)"
|
"2001:db8:2de::e13, 2001:db8:1a:1110::/64 (支持网域)"
|
||||||
|
|
||||||
#: acls/serializers/base.py:41 assets/serializers/asset/host.py:19
|
#: acls/serializers/base.py:41 assets/serializers/asset/host.py:19
|
||||||
msgid "IP/Host"
|
msgid "IP/Host"
|
||||||
@ -1978,8 +1982,8 @@ msgid ""
|
|||||||
"With * indicating a match all. Such as: 192.168.10.1, 192.168.1.0/24, "
|
"With * indicating a match all. Such as: 192.168.10.1, 192.168.1.0/24, "
|
||||||
"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 "
|
"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:"
|
"* 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, "
|
||||||
"db8:2de::e13, 2001:db8:1a:1110::/64"
|
"2001:db8:2de::e13, 2001:db8:1a:1110::/64"
|
||||||
|
|
||||||
#: acls/serializers/rules/rules.py:48
|
#: acls/serializers/rules/rules.py:48
|
||||||
#: authentication/templates/authentication/_msg_oauth_bind.html:12
|
#: authentication/templates/authentication/_msg_oauth_bind.html:12
|
||||||
@ -2199,7 +2203,7 @@ msgstr "禁用"
|
|||||||
msgid "Basic"
|
msgid "Basic"
|
||||||
msgstr "基本"
|
msgstr "基本"
|
||||||
|
|
||||||
#: assets/const/base.py:34 assets/const/protocol.py:298
|
#: assets/const/base.py:34 assets/const/protocol.py:304
|
||||||
#: assets/models/asset/web.py:13
|
#: assets/models/asset/web.py:13
|
||||||
msgid "Script"
|
msgid "Script"
|
||||||
msgstr "脚本"
|
msgstr "脚本"
|
||||||
@ -2228,7 +2232,8 @@ msgstr "云服务"
|
|||||||
msgid "Web"
|
msgid "Web"
|
||||||
msgstr "Web"
|
msgstr "Web"
|
||||||
|
|
||||||
#: assets/const/category.py:16 common/sdk/sms/endpoint.py:20
|
#: assets/const/category.py:16 common/sdk/sms/custom_file.py:47
|
||||||
|
#: common/sdk/sms/endpoint.py:20
|
||||||
msgid "Custom type"
|
msgid "Custom type"
|
||||||
msgstr "自定义类型"
|
msgstr "自定义类型"
|
||||||
|
|
||||||
@ -2335,7 +2340,7 @@ msgid "Any"
|
|||||||
msgstr "任意"
|
msgstr "任意"
|
||||||
|
|
||||||
#: assets/const/protocol.py:88 rbac/tree.py:64
|
#: assets/const/protocol.py:88 rbac/tree.py:64
|
||||||
#: settings/serializers/security.py:273
|
#: settings/serializers/security.py:277
|
||||||
msgid "Security"
|
msgid "Security"
|
||||||
msgstr "安全"
|
msgstr "安全"
|
||||||
|
|
||||||
@ -2400,55 +2405,63 @@ msgid ""
|
|||||||
"SQL Server version, Different versions have different connection drivers"
|
"SQL Server version, Different versions have different connection drivers"
|
||||||
msgstr "SQL Server 版本,不同版本有不同的连接驱动"
|
msgstr "SQL Server 版本,不同版本有不同的连接驱动"
|
||||||
|
|
||||||
#: assets/const/protocol.py:226
|
#: assets/const/protocol.py:201
|
||||||
|
msgid "Encrypt"
|
||||||
|
msgstr "加密的"
|
||||||
|
|
||||||
|
#: assets/const/protocol.py:202
|
||||||
|
msgid "Whether to use TLS encryption."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/const/protocol.py:232
|
||||||
msgid "Auth source"
|
msgid "Auth source"
|
||||||
msgstr "认证数据库"
|
msgstr "认证数据库"
|
||||||
|
|
||||||
#: assets/const/protocol.py:227
|
#: assets/const/protocol.py:233
|
||||||
msgid "The database to authenticate against"
|
msgid "The database to authenticate against"
|
||||||
msgstr "要进行身份验证的数据库"
|
msgstr "要进行身份验证的数据库"
|
||||||
|
|
||||||
#: assets/const/protocol.py:232 authentication/models/connection_token.py:48
|
#: assets/const/protocol.py:238 authentication/models/connection_token.py:48
|
||||||
msgid "Connect options"
|
msgid "Connect options"
|
||||||
msgstr "连接项"
|
msgstr "连接项"
|
||||||
|
|
||||||
#: assets/const/protocol.py:233
|
#: assets/const/protocol.py:239
|
||||||
msgid "The connection specific options eg. retryWrites=false&retryReads=false"
|
msgid "The connection specific options eg. retryWrites=false&retryReads=false"
|
||||||
msgstr "连接特定选项,例如 retryWrites=false&retryReads=false"
|
msgstr "连接特定选项,例如 retryWrites=false&retryReads=false"
|
||||||
|
|
||||||
#: assets/const/protocol.py:245
|
#: assets/const/protocol.py:251
|
||||||
msgid "Auth username"
|
msgid "Auth username"
|
||||||
msgstr "使用用户名认证"
|
msgstr "使用用户名认证"
|
||||||
|
|
||||||
#: assets/const/protocol.py:268
|
#: assets/const/protocol.py:274
|
||||||
msgid "Safe mode"
|
msgid "Safe mode"
|
||||||
msgstr "安全模式"
|
msgstr "安全模式"
|
||||||
|
|
||||||
#: assets/const/protocol.py:270
|
#: assets/const/protocol.py:276
|
||||||
msgid ""
|
msgid ""
|
||||||
"When safe mode is enabled, some operations will be disabled, such as: New "
|
"When safe mode is enabled, some operations will be disabled, such as: New "
|
||||||
"tab, right click, visit other website, etc."
|
"tab, right click, visit other website, etc."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"当安全模式启用时,一些操作将被禁用,例如:新建标签页、右键、访问其它网站 等"
|
"当安全模式启用时,一些操作将被禁用,例如:新建标签页、右键、访问其它网站 等"
|
||||||
|
|
||||||
#: assets/const/protocol.py:275 assets/models/asset/web.py:9
|
#: assets/const/protocol.py:281 assets/models/asset/web.py:9
|
||||||
#: assets/serializers/asset/info/spec.py:16
|
#: assets/serializers/asset/info/spec.py:16
|
||||||
msgid "Autofill"
|
msgid "Autofill"
|
||||||
msgstr "自动代填"
|
msgstr "自动代填"
|
||||||
|
|
||||||
#: assets/const/protocol.py:283 assets/models/asset/web.py:10
|
#: assets/const/protocol.py:289 assets/models/asset/web.py:10
|
||||||
msgid "Username selector"
|
msgid "Username selector"
|
||||||
msgstr "用户名选择器"
|
msgstr "用户名选择器"
|
||||||
|
|
||||||
#: assets/const/protocol.py:288 assets/models/asset/web.py:11
|
#: assets/const/protocol.py:294 assets/models/asset/web.py:11
|
||||||
msgid "Password selector"
|
msgid "Password selector"
|
||||||
msgstr "密码选择器"
|
msgstr "密码选择器"
|
||||||
|
|
||||||
#: assets/const/protocol.py:293 assets/models/asset/web.py:12
|
#: assets/const/protocol.py:299 assets/models/asset/web.py:12
|
||||||
msgid "Submit selector"
|
msgid "Submit selector"
|
||||||
msgstr "确认按钮选择器"
|
msgstr "确认按钮选择器"
|
||||||
|
|
||||||
#: assets/const/protocol.py:316
|
#: assets/const/protocol.py:322
|
||||||
msgid "API mode"
|
msgid "API mode"
|
||||||
msgstr "API 模式"
|
msgstr "API 模式"
|
||||||
|
|
||||||
@ -2484,12 +2497,12 @@ msgstr "地址"
|
|||||||
#: assets/serializers/asset/common.py:150
|
#: assets/serializers/asset/common.py:150
|
||||||
#: authentication/backends/passkey/models.py:12
|
#: authentication/backends/passkey/models.py:12
|
||||||
#: authentication/serializers/connect_token_secret.py:120
|
#: authentication/serializers/connect_token_secret.py:120
|
||||||
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:398
|
#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:398
|
||||||
msgid "Platform"
|
msgid "Platform"
|
||||||
msgstr "平台"
|
msgstr "平台"
|
||||||
|
|
||||||
#: assets/models/asset/common.py:173 assets/models/zone.py:22
|
#: assets/models/asset/common.py:173 assets/models/zone.py:22
|
||||||
#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:400
|
#: perms/serializers/user_permission.py:29 xpack/plugins/cloud/models.py:400
|
||||||
msgid "Zone"
|
msgid "Zone"
|
||||||
msgstr "网域"
|
msgstr "网域"
|
||||||
|
|
||||||
@ -2901,7 +2914,7 @@ msgstr "节点路径,格式为 [\"/组织/节点名\"], 如果节点不存在
|
|||||||
#: authentication/serializers/connect_token_secret.py:30
|
#: authentication/serializers/connect_token_secret.py:30
|
||||||
#: authentication/serializers/connect_token_secret.py:77
|
#: authentication/serializers/connect_token_secret.py:77
|
||||||
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:67
|
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:67
|
||||||
#: perms/serializers/user_permission.py:75 xpack/plugins/cloud/models.py:401
|
#: perms/serializers/user_permission.py:86 xpack/plugins/cloud/models.py:401
|
||||||
#: xpack/plugins/cloud/serializers/task.py:36
|
#: xpack/plugins/cloud/serializers/task.py:36
|
||||||
msgid "Protocols"
|
msgid "Protocols"
|
||||||
msgstr "协议组"
|
msgstr "协议组"
|
||||||
@ -2929,7 +2942,7 @@ msgstr "端口超出范围 (0-65535)"
|
|||||||
msgid "Protocol is required: {}"
|
msgid "Protocol is required: {}"
|
||||||
msgstr "协议是必填的: {}"
|
msgstr "协议是必填的: {}"
|
||||||
|
|
||||||
#: assets/serializers/asset/common.py:353
|
#: assets/serializers/asset/common.py:353 labels/api.py:107
|
||||||
msgid "Invalid data"
|
msgid "Invalid data"
|
||||||
msgstr "无效的数据"
|
msgstr "无效的数据"
|
||||||
|
|
||||||
@ -3600,7 +3613,7 @@ msgstr "认证令牌"
|
|||||||
#: audits/signal_handlers/login_log.py:37 authentication/notifications.py:73
|
#: audits/signal_handlers/login_log.py:37 authentication/notifications.py:73
|
||||||
#: authentication/utils.py:114 notifications/backends/__init__.py:11
|
#: authentication/utils.py:114 notifications/backends/__init__.py:11
|
||||||
#: settings/serializers/auth/wecom.py:11 settings/serializers/auth/wecom.py:16
|
#: settings/serializers/auth/wecom.py:11 settings/serializers/auth/wecom.py:16
|
||||||
#: users/models/user/__init__.py:130 users/models/user/_source.py:19
|
#: users/models/user/__init__.py:130 users/models/user/_source.py:21
|
||||||
msgid "WeCom"
|
msgid "WeCom"
|
||||||
msgstr "企业微信"
|
msgstr "企业微信"
|
||||||
|
|
||||||
@ -3608,21 +3621,21 @@ msgstr "企业微信"
|
|||||||
#: authentication/views/feishu.py:97 notifications/backends/__init__.py:14
|
#: authentication/views/feishu.py:97 notifications/backends/__init__.py:14
|
||||||
#: settings/serializers/auth/feishu.py:12
|
#: settings/serializers/auth/feishu.py:12
|
||||||
#: settings/serializers/auth/feishu.py:14 users/models/user/__init__.py:136
|
#: settings/serializers/auth/feishu.py:14 users/models/user/__init__.py:136
|
||||||
#: users/models/user/_source.py:21
|
#: users/models/user/_source.py:23
|
||||||
msgid "FeiShu"
|
msgid "FeiShu"
|
||||||
msgstr "飞书"
|
msgstr "飞书"
|
||||||
|
|
||||||
#: audits/signal_handlers/login_log.py:40 authentication/utils.py:138
|
#: audits/signal_handlers/login_log.py:40 authentication/utils.py:138
|
||||||
#: authentication/views/slack.py:79 notifications/backends/__init__.py:16
|
#: authentication/views/slack.py:79 notifications/backends/__init__.py:16
|
||||||
#: settings/serializers/auth/slack.py:11 settings/serializers/auth/slack.py:13
|
#: settings/serializers/auth/slack.py:11 settings/serializers/auth/slack.py:13
|
||||||
#: users/models/user/__init__.py:142 users/models/user/_source.py:23
|
#: users/models/user/__init__.py:142 users/models/user/_source.py:25
|
||||||
msgid "Slack"
|
msgid "Slack"
|
||||||
msgstr "Slack"
|
msgstr "Slack"
|
||||||
|
|
||||||
#: audits/signal_handlers/login_log.py:41 authentication/utils.py:120
|
#: audits/signal_handlers/login_log.py:41 authentication/utils.py:120
|
||||||
#: authentication/views/dingtalk.py:151 notifications/backends/__init__.py:12
|
#: authentication/views/dingtalk.py:151 notifications/backends/__init__.py:12
|
||||||
#: settings/serializers/auth/dingtalk.py:11 users/models/user/__init__.py:133
|
#: settings/serializers/auth/dingtalk.py:11 users/models/user/__init__.py:133
|
||||||
#: users/models/user/_source.py:20
|
#: users/models/user/_source.py:22
|
||||||
msgid "DingTalk"
|
msgid "DingTalk"
|
||||||
msgstr "钉钉"
|
msgstr "钉钉"
|
||||||
|
|
||||||
@ -3995,16 +4008,16 @@ msgstr "您的密码无效"
|
|||||||
msgid "Please wait for %s seconds before retry"
|
msgid "Please wait for %s seconds before retry"
|
||||||
msgstr "请在 %s 秒后重试"
|
msgstr "请在 %s 秒后重试"
|
||||||
|
|
||||||
#: authentication/errors/redirect.py:85 authentication/mixins.py:327
|
#: authentication/errors/redirect.py:85 authentication/mixins.py:332
|
||||||
#: users/views/profile/reset.py:224
|
#: users/views/profile/reset.py:224
|
||||||
msgid "Your password is too simple, please change it for security"
|
msgid "Your password is too simple, please change it for security"
|
||||||
msgstr "你的密码过于简单,为了安全,请修改"
|
msgstr "你的密码过于简单,为了安全,请修改"
|
||||||
|
|
||||||
#: authentication/errors/redirect.py:93 authentication/mixins.py:336
|
#: authentication/errors/redirect.py:93 authentication/mixins.py:341
|
||||||
msgid "You should to change your password before login"
|
msgid "You should to change your password before login"
|
||||||
msgstr "登录完成前,请先修改密码"
|
msgstr "登录完成前,请先修改密码"
|
||||||
|
|
||||||
#: authentication/errors/redirect.py:101 authentication/mixins.py:345
|
#: authentication/errors/redirect.py:101 authentication/mixins.py:350
|
||||||
msgid "Your password has expired, please reset before logging in"
|
msgid "Your password has expired, please reset before logging in"
|
||||||
msgstr "您的密码已过期,先修改再登录"
|
msgstr "您的密码已过期,先修改再登录"
|
||||||
|
|
||||||
@ -4121,21 +4134,21 @@ msgstr "清空手机号码禁用"
|
|||||||
msgid "Authentication failed (before login check failed): {}"
|
msgid "Authentication failed (before login check failed): {}"
|
||||||
msgstr "认证失败 (登录前检查失败): {}"
|
msgstr "认证失败 (登录前检查失败): {}"
|
||||||
|
|
||||||
#: authentication/mixins.py:83
|
#: authentication/mixins.py:84
|
||||||
msgid "User is invalid"
|
msgid "User is invalid"
|
||||||
msgstr "无效的用户"
|
msgstr "无效的用户"
|
||||||
|
|
||||||
#: authentication/mixins.py:98
|
#: authentication/mixins.py:99
|
||||||
msgid ""
|
msgid ""
|
||||||
"The administrator has enabled 'Only allow login from user source'. \n"
|
"The administrator has enabled 'Only allow login from user source'. \n"
|
||||||
" The current user source is {}. Please contact the administrator."
|
" The current user source is {}. Please contact the administrator."
|
||||||
msgstr "管理员已开启'仅允许从用户来源登录',当前用户来源为{},请联系管理员。"
|
msgstr "管理员已开启'仅允许从用户来源登录',当前用户来源为{},请联系管理员。"
|
||||||
|
|
||||||
#: authentication/mixins.py:273
|
#: authentication/mixins.py:278
|
||||||
msgid "The MFA type ({}) is not enabled"
|
msgid "The MFA type ({}) is not enabled"
|
||||||
msgstr "该 MFA ({}) 方式没有启用"
|
msgstr "该 MFA ({}) 方式没有启用"
|
||||||
|
|
||||||
#: authentication/mixins.py:315
|
#: authentication/mixins.py:320
|
||||||
msgid "Please change your password"
|
msgid "Please change your password"
|
||||||
msgstr "请修改密码"
|
msgstr "请修改密码"
|
||||||
|
|
||||||
@ -4384,8 +4397,8 @@ msgid ""
|
|||||||
"Retention Period"
|
"Retention Period"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"系统在连接资产或创建临时密码时,会生成相应的连接 Token 或临时密码记录。为了保"
|
"系统在连接资产或创建临时密码时,会生成相应的连接 Token 或临时密码记录。为了保"
|
||||||
"障系统安全并控制数据存储量,系统会根据“安全设置 > 密码安全 > Token 保留时"
|
"障系统安全并控制数据存储量,系统会根据“安全设置 > 密码安全 > Token 保留时长”"
|
||||||
"长”中的配置,每天凌晨 2 点自动清理所有已过期的 Token 记录"
|
"中的配置,每天凌晨 2 点自动清理所有已过期的 Token 记录"
|
||||||
|
|
||||||
#: authentication/templates/authentication/_access_key_modal.html:6
|
#: authentication/templates/authentication/_access_key_modal.html:6
|
||||||
msgid "API key list"
|
msgid "API key list"
|
||||||
@ -5097,6 +5110,10 @@ msgstr "自定义短信文件无效"
|
|||||||
msgid "SMS sending failed[%s]: %s"
|
msgid "SMS sending failed[%s]: %s"
|
||||||
msgstr "短信发送失败[%s]: %s"
|
msgstr "短信发送失败[%s]: %s"
|
||||||
|
|
||||||
|
#: common/sdk/sms/custom_file.py:47 common/serializers/common.py:98
|
||||||
|
msgid "File"
|
||||||
|
msgstr "文件"
|
||||||
|
|
||||||
#: common/sdk/sms/endpoint.py:16
|
#: common/sdk/sms/endpoint.py:16
|
||||||
msgid "Alibaba cloud"
|
msgid "Alibaba cloud"
|
||||||
msgstr "阿里云"
|
msgstr "阿里云"
|
||||||
@ -5141,10 +5158,6 @@ msgstr "请在 {} 秒后发送"
|
|||||||
msgid "Children"
|
msgid "Children"
|
||||||
msgstr "节点"
|
msgstr "节点"
|
||||||
|
|
||||||
#: common/serializers/common.py:98
|
|
||||||
msgid "File"
|
|
||||||
msgstr "文件"
|
|
||||||
|
|
||||||
#: common/serializers/fields.py:139
|
#: common/serializers/fields.py:139
|
||||||
msgid "Invalid data type"
|
msgid "Invalid data type"
|
||||||
msgstr "无效的数据"
|
msgstr "无效的数据"
|
||||||
@ -5267,6 +5280,10 @@ msgstr "你的账号已创建成功"
|
|||||||
msgid "JumpServer - An open-source PAM"
|
msgid "JumpServer - An open-source PAM"
|
||||||
msgstr "JumpServer 开源堡垒机"
|
msgstr "JumpServer 开源堡垒机"
|
||||||
|
|
||||||
|
#: jumpserver/context_processor.py:28
|
||||||
|
msgid "FIT2CLOUD"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: jumpserver/views/celery_flower.py:22
|
#: jumpserver/views/celery_flower.py:22
|
||||||
msgid "<h1>Flower service unavailable, check it</h1>"
|
msgid "<h1>Flower service unavailable, check it</h1>"
|
||||||
msgstr "Flower 服务不可用,请检查"
|
msgstr "Flower 服务不可用,请检查"
|
||||||
@ -5298,7 +5315,7 @@ msgstr ""
|
|||||||
msgid "App Labels"
|
msgid "App Labels"
|
||||||
msgstr "标签管理"
|
msgstr "标签管理"
|
||||||
|
|
||||||
#: labels/models.py:15 settings/serializers/security.py:212
|
#: labels/models.py:15 settings/serializers/security.py:216
|
||||||
msgid "Color"
|
msgid "Color"
|
||||||
msgstr "颜色"
|
msgstr "颜色"
|
||||||
|
|
||||||
@ -6682,7 +6699,7 @@ msgstr ""
|
|||||||
"用户属性映射,其中 `key` 是 JumpServer 用户属性名称,`value` 是飞书服务用户属"
|
"用户属性映射,其中 `key` 是 JumpServer 用户属性名称,`value` 是飞书服务用户属"
|
||||||
"性名称"
|
"性名称"
|
||||||
|
|
||||||
#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:22
|
#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24
|
||||||
msgid "Lark"
|
msgid "Lark"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -7271,7 +7288,7 @@ msgstr "租户 ID"
|
|||||||
|
|
||||||
#: settings/serializers/feature.py:110 terminal/serializers/storage.py:68
|
#: settings/serializers/feature.py:110 terminal/serializers/storage.py:68
|
||||||
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124
|
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124
|
||||||
#: xpack/plugins/cloud/models.py:292
|
#: xpack/plugins/cloud/manager.py:161 xpack/plugins/cloud/models.py:292
|
||||||
msgid "Region"
|
msgid "Region"
|
||||||
msgstr "地域"
|
msgstr "地域"
|
||||||
|
|
||||||
@ -7473,11 +7490,11 @@ msgstr ""
|
|||||||
"放置单独授权的资产到未分组节点, 避免能看到资产所在节点,但该节点未被授权的问"
|
"放置单独授权的资产到未分组节点, 避免能看到资产所在节点,但该节点未被授权的问"
|
||||||
"题"
|
"题"
|
||||||
|
|
||||||
#: settings/serializers/security.py:19
|
#: settings/serializers/security.py:20
|
||||||
msgid "User password expiration (day)"
|
msgid "User password expiration (day)"
|
||||||
msgstr "用户密码过期时间 (天)"
|
msgstr "用户密码过期时间 (天)"
|
||||||
|
|
||||||
#: settings/serializers/security.py:21
|
#: settings/serializers/security.py:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"If the user does not update the password during the time, the user password "
|
"If the user does not update the password during the time, the user password "
|
||||||
"will expire failure;The password expiration reminder mail will be automatic "
|
"will expire failure;The password expiration reminder mail will be automatic "
|
||||||
@ -7486,79 +7503,79 @@ msgstr ""
|
|||||||
"如果用户在此期间没有更新密码,用户密码将过期失效; 密码过期提醒邮件将在密码过"
|
"如果用户在此期间没有更新密码,用户密码将过期失效; 密码过期提醒邮件将在密码过"
|
||||||
"期前5天内由系统 (每天)自动发送给用户"
|
"期前5天内由系统 (每天)自动发送给用户"
|
||||||
|
|
||||||
#: settings/serializers/security.py:28
|
#: settings/serializers/security.py:29
|
||||||
msgid "User expired tokens record keep days"
|
msgid "User expired tokens record keep days"
|
||||||
msgstr "用户过期 Token 保留天数"
|
msgstr "用户过期 Token 保留天数"
|
||||||
|
|
||||||
#: settings/serializers/security.py:29
|
#: settings/serializers/security.py:30
|
||||||
msgid ""
|
msgid ""
|
||||||
"Retention period (in days) for expired user tokens before automatic cleanup."
|
"Retention period (in days) for expired user tokens before automatic cleanup."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"系统在每日清理任务中永久删除用户过期 token 记录之前,保留这些记录的天数"
|
"系统在每日清理任务中永久删除用户过期 token 记录之前,保留这些记录的天数"
|
||||||
|
|
||||||
#: settings/serializers/security.py:33
|
#: settings/serializers/security.py:34
|
||||||
msgid "Recent password count"
|
msgid "Recent password count"
|
||||||
msgstr "不能设置近几次密码"
|
msgstr "不能设置近几次密码"
|
||||||
|
|
||||||
#: settings/serializers/security.py:35
|
#: settings/serializers/security.py:36
|
||||||
msgid ""
|
msgid ""
|
||||||
"Tip: When the user resets the password, it cannot be the previous n "
|
"Tip: When the user resets the password, it cannot be the previous n "
|
||||||
"historical passwords of the user"
|
"historical passwords of the user"
|
||||||
msgstr "提示:用户重置密码时,不能为该用户前几次使用过的密码"
|
msgstr "提示:用户重置密码时,不能为该用户前几次使用过的密码"
|
||||||
|
|
||||||
#: settings/serializers/security.py:41
|
#: settings/serializers/security.py:42
|
||||||
msgid "Minimum length (User)"
|
msgid "Minimum length (User)"
|
||||||
msgstr "密码最小长度"
|
msgstr "密码最小长度"
|
||||||
|
|
||||||
#: settings/serializers/security.py:45
|
#: settings/serializers/security.py:46
|
||||||
msgid "Minimum length (Admin)"
|
msgid "Minimum length (Admin)"
|
||||||
msgstr "管理员密码最小长度"
|
msgstr "管理员密码最小长度"
|
||||||
|
|
||||||
#: settings/serializers/security.py:54
|
#: settings/serializers/security.py:55
|
||||||
msgid "Digits"
|
msgid "Digits"
|
||||||
msgstr "必须包含数字"
|
msgstr "必须包含数字"
|
||||||
|
|
||||||
#: settings/serializers/security.py:57
|
#: settings/serializers/security.py:58
|
||||||
msgid "Special characters"
|
msgid "Special characters"
|
||||||
msgstr "必须包含特殊字符"
|
msgstr "必须包含特殊字符"
|
||||||
|
|
||||||
#: settings/serializers/security.py:62
|
#: settings/serializers/security.py:63
|
||||||
msgid ""
|
msgid ""
|
||||||
"If the user has failed to log in for a limited number of times, no login is "
|
"If the user has failed to log in for a limited number of times, no login is "
|
||||||
"allowed during this time interval."
|
"allowed during this time interval."
|
||||||
msgstr "当用户登录失败次数达到限制后,那么在此间隔内禁止登录"
|
msgstr "当用户登录失败次数达到限制后,那么在此间隔内禁止登录"
|
||||||
|
|
||||||
#: settings/serializers/security.py:70 settings/serializers/security.py:80
|
#: settings/serializers/security.py:71 settings/serializers/security.py:81
|
||||||
msgid "Login failures count"
|
msgid "Login failures count"
|
||||||
msgstr "限制用户登录失败次数"
|
msgstr "限制用户登录失败次数"
|
||||||
|
|
||||||
#: settings/serializers/security.py:74 settings/serializers/security.py:84
|
#: settings/serializers/security.py:75 settings/serializers/security.py:85
|
||||||
msgid "Login failure period (minute)"
|
msgid "Login failure period (minute)"
|
||||||
msgstr "禁止用户登录间隔 (分)"
|
msgstr "禁止用户登录间隔 (分)"
|
||||||
|
|
||||||
#: settings/serializers/security.py:88
|
#: settings/serializers/security.py:89
|
||||||
msgid "Login IP whitelist"
|
msgid "Login IP whitelist"
|
||||||
msgstr "IP 登录白名单"
|
msgstr "IP 登录白名单"
|
||||||
|
|
||||||
#: settings/serializers/security.py:93
|
#: settings/serializers/security.py:94
|
||||||
msgid "Login IP blacklist"
|
msgid "Login IP blacklist"
|
||||||
msgstr "IP 登录黑名单"
|
msgstr "IP 登录黑名单"
|
||||||
|
|
||||||
#: settings/serializers/security.py:98
|
#: settings/serializers/security.py:99
|
||||||
msgid "Only single device login"
|
msgid "Only single device login"
|
||||||
msgstr "仅一台设备登录"
|
msgstr "仅一台设备登录"
|
||||||
|
|
||||||
#: settings/serializers/security.py:99
|
#: settings/serializers/security.py:100
|
||||||
msgid ""
|
msgid ""
|
||||||
"After the user logs in on the new device, other logged-in devices will "
|
"After the user logs in on the new device, other logged-in devices will "
|
||||||
"automatically log out"
|
"automatically log out"
|
||||||
msgstr "用户在新设备登录后,其他已登录的设备会自动退出"
|
msgstr "用户在新设备登录后,其他已登录的设备会自动退出"
|
||||||
|
|
||||||
#: settings/serializers/security.py:102
|
#: settings/serializers/security.py:103
|
||||||
msgid "Only exist user login"
|
msgid "Only exist user login"
|
||||||
msgstr "仅已存在用户登录"
|
msgstr "仅已存在用户登录"
|
||||||
|
|
||||||
#: settings/serializers/security.py:104
|
#: settings/serializers/security.py:105
|
||||||
msgid ""
|
msgid ""
|
||||||
"If enabled, non-existent users will not be allowed to log in; if disabled, "
|
"If enabled, non-existent users will not be allowed to log in; if disabled, "
|
||||||
"users of other authentication methods except local authentication methods "
|
"users of other authentication methods except local authentication methods "
|
||||||
@ -7568,11 +7585,11 @@ msgstr ""
|
|||||||
"如果开启,不存在的用户将不被允许登录;如果关闭,除本地认证方式外,其他认证方"
|
"如果开启,不存在的用户将不被允许登录;如果关闭,除本地认证方式外,其他认证方"
|
||||||
"式的用户都允许登录并自动创建用户 (如果用户不存在)"
|
"式的用户都允许登录并自动创建用户 (如果用户不存在)"
|
||||||
|
|
||||||
#: settings/serializers/security.py:110
|
#: settings/serializers/security.py:111
|
||||||
msgid "Only from source login"
|
msgid "Only from source login"
|
||||||
msgstr "仅从用户来源登录"
|
msgstr "仅从用户来源登录"
|
||||||
|
|
||||||
#: settings/serializers/security.py:112
|
#: settings/serializers/security.py:113
|
||||||
msgid ""
|
msgid ""
|
||||||
"If it is enabled, the user will only authenticate to the source when logging "
|
"If it is enabled, the user will only authenticate to the source when logging "
|
||||||
"in; if it is disabled, the user will authenticate all the enabled "
|
"in; if it is disabled, the user will authenticate all the enabled "
|
||||||
@ -7582,78 +7599,78 @@ msgstr ""
|
|||||||
"如果开启,用户登录时仅会向来源端进行认证;如果关闭,用户登录时会按照一定的顺"
|
"如果开启,用户登录时仅会向来源端进行认证;如果关闭,用户登录时会按照一定的顺"
|
||||||
"序对所有已开启的认证方式进行顺序认证,只要有一个认证成功就可以直接登录"
|
"序对所有已开启的认证方式进行顺序认证,只要有一个认证成功就可以直接登录"
|
||||||
|
|
||||||
#: settings/serializers/security.py:123
|
#: settings/serializers/security.py:122
|
||||||
|
msgid "The third-party login modes include "
|
||||||
|
msgstr "第三方登录方式包括:
|
||||||
|
|
||||||
|
#: settings/serializers/security.py:127
|
||||||
#: users/templates/users/mfa_setting.html:160
|
#: users/templates/users/mfa_setting.html:160
|
||||||
msgid "Not enabled"
|
msgid "Not enabled"
|
||||||
msgstr "未启用"
|
msgstr "未启用"
|
||||||
|
|
||||||
#: settings/serializers/security.py:124
|
#: settings/serializers/security.py:128
|
||||||
msgid "All users"
|
msgid "All users"
|
||||||
msgstr "所有用户"
|
msgstr "所有用户"
|
||||||
|
|
||||||
#: settings/serializers/security.py:125
|
#: settings/serializers/security.py:129
|
||||||
msgid "Only admin users"
|
msgid "Only admin users"
|
||||||
msgstr "仅管理员"
|
msgstr "仅管理员"
|
||||||
|
|
||||||
#: settings/serializers/security.py:127
|
#: settings/serializers/security.py:131
|
||||||
msgid "Global MFA"
|
msgid "Global MFA"
|
||||||
msgstr "全局启用 MFA 认证"
|
msgstr "全局启用 MFA 认证"
|
||||||
|
|
||||||
#: settings/serializers/security.py:131
|
#: settings/serializers/security.py:135
|
||||||
msgid "Third-party login MFA"
|
msgid "Third-party login MFA"
|
||||||
msgstr "第三方认证开启 MFA"
|
msgstr "第三方认证开启 MFA"
|
||||||
|
|
||||||
#: settings/serializers/security.py:132
|
#: settings/serializers/security.py:140
|
||||||
msgid "The third-party login modes include OIDC, CAS, and SAML2"
|
|
||||||
msgstr "第三方登录方式包括: OIDC、CAS、SAML2"
|
|
||||||
|
|
||||||
#: settings/serializers/security.py:136
|
|
||||||
msgid "MFA via Email"
|
msgid "MFA via Email"
|
||||||
msgstr "邮件验证 MFA"
|
msgstr "邮件验证 MFA"
|
||||||
|
|
||||||
#: settings/serializers/security.py:137
|
#: settings/serializers/security.py:141
|
||||||
msgid "Email as a method for multi-factor authentication"
|
msgid "Email as a method for multi-factor authentication"
|
||||||
msgstr "将电子邮件作为多因子认证的一种方式"
|
msgstr "将电子邮件作为多因子认证的一种方式"
|
||||||
|
|
||||||
#: settings/serializers/security.py:140
|
#: settings/serializers/security.py:144
|
||||||
msgid "OTP issuer name"
|
msgid "OTP issuer name"
|
||||||
msgstr "OTP 扫描后的名称"
|
msgstr "OTP 扫描后的名称"
|
||||||
|
|
||||||
#: settings/serializers/security.py:144
|
#: settings/serializers/security.py:148
|
||||||
msgid "OTP valid window"
|
msgid "OTP valid window"
|
||||||
msgstr "OTP 延迟有效次数"
|
msgstr "OTP 延迟有效次数"
|
||||||
|
|
||||||
#: settings/serializers/security.py:148
|
#: settings/serializers/security.py:152
|
||||||
msgid "MFA verify TTL"
|
msgid "MFA verify TTL"
|
||||||
msgstr "MFA 校验有效期"
|
msgstr "MFA 校验有效期"
|
||||||
|
|
||||||
#: settings/serializers/security.py:150
|
#: settings/serializers/security.py:154
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unit: second, The verification MFA takes effect only when you view the "
|
"Unit: second, The verification MFA takes effect only when you view the "
|
||||||
"account password"
|
"account password"
|
||||||
msgstr "单位:秒,目前仅在查看账号密码校验 MFA 时生效"
|
msgstr "单位:秒,目前仅在查看账号密码校验 MFA 时生效"
|
||||||
|
|
||||||
#: settings/serializers/security.py:155
|
#: settings/serializers/security.py:159
|
||||||
msgid "MFA in login page"
|
msgid "MFA in login page"
|
||||||
msgstr "MFA 在登录页面输入"
|
msgstr "MFA 在登录页面输入"
|
||||||
|
|
||||||
#: settings/serializers/security.py:156
|
#: settings/serializers/security.py:160
|
||||||
msgid "Eu security regulations(GDPR) require MFA to be on the login page"
|
msgid "Eu security regulations(GDPR) require MFA to be on the login page"
|
||||||
msgstr "欧盟数据安全法规(GDPR) 要求 MFA 在登录页面,来确保系统登录安全"
|
msgstr "欧盟数据安全法规(GDPR) 要求 MFA 在登录页面,来确保系统登录安全"
|
||||||
|
|
||||||
#: settings/serializers/security.py:160
|
#: settings/serializers/security.py:164
|
||||||
msgid "Verify code TTL (second)"
|
msgid "Verify code TTL (second)"
|
||||||
msgstr "验证码有效时间 (分)"
|
msgstr "验证码有效时间 (分)"
|
||||||
|
|
||||||
#: settings/serializers/security.py:161
|
#: settings/serializers/security.py:165
|
||||||
msgid "Reset password and send SMS code expiration time"
|
msgid "Reset password and send SMS code expiration time"
|
||||||
msgstr "重置密码的验证码及发送短信的验证码过期时间"
|
msgstr "重置密码的验证码及发送短信的验证码过期时间"
|
||||||
|
|
||||||
#: settings/serializers/security.py:165
|
#: settings/serializers/security.py:169
|
||||||
msgid "Login dynamic code"
|
msgid "Login dynamic code"
|
||||||
msgstr "启用登录附加码"
|
msgstr "启用登录附加码"
|
||||||
|
|
||||||
#: settings/serializers/security.py:166
|
#: settings/serializers/security.py:170
|
||||||
msgid ""
|
msgid ""
|
||||||
"The password and additional code are sent to a third party authentication "
|
"The password and additional code are sent to a third party authentication "
|
||||||
"system for verification"
|
"system for verification"
|
||||||
@ -7661,19 +7678,19 @@ msgstr ""
|
|||||||
"密码和附加码一并发送给第三方认证系统进行校验, 如:有的第三方认证系统,需要 密"
|
"密码和附加码一并发送给第三方认证系统进行校验, 如:有的第三方认证系统,需要 密"
|
||||||
"码+6位数字 完成认证"
|
"码+6位数字 完成认证"
|
||||||
|
|
||||||
#: settings/serializers/security.py:170
|
#: settings/serializers/security.py:174
|
||||||
msgid "Login captcha"
|
msgid "Login captcha"
|
||||||
msgstr "启用登录验证码"
|
msgstr "启用登录验证码"
|
||||||
|
|
||||||
#: settings/serializers/security.py:171
|
#: settings/serializers/security.py:175
|
||||||
msgid "Enable captcha to prevent robot authentication"
|
msgid "Enable captcha to prevent robot authentication"
|
||||||
msgstr "开启验证码,防止机器人登录"
|
msgstr "开启验证码,防止机器人登录"
|
||||||
|
|
||||||
#: settings/serializers/security.py:174
|
#: settings/serializers/security.py:178
|
||||||
msgid "Suspicious Login Verification"
|
msgid "Suspicious Login Verification"
|
||||||
msgstr "异地登录通知"
|
msgstr "异地登录通知"
|
||||||
|
|
||||||
#: settings/serializers/security.py:176
|
#: settings/serializers/security.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"The system determines whether the login IP address belongs to a common login "
|
"The system determines whether the login IP address belongs to a common login "
|
||||||
"city. If the account is logged in from a common login city, the system sends "
|
"city. If the account is logged in from a common login city, the system sends "
|
||||||
@ -7682,101 +7699,101 @@ msgstr ""
|
|||||||
"根据登录 IP 是否所属常用登录城市进行判断,若账号在非常用城市登录,会发送异地"
|
"根据登录 IP 是否所属常用登录城市进行判断,若账号在非常用城市登录,会发送异地"
|
||||||
"登录提醒"
|
"登录提醒"
|
||||||
|
|
||||||
#: settings/serializers/security.py:182
|
#: settings/serializers/security.py:186
|
||||||
msgid "Auto Disable Threshold (day)"
|
msgid "Auto Disable Threshold (day)"
|
||||||
msgstr "不活跃用户自动禁用 (天)"
|
msgstr "不活跃用户自动禁用 (天)"
|
||||||
|
|
||||||
#: settings/serializers/security.py:183
|
#: settings/serializers/security.py:187
|
||||||
msgid ""
|
msgid ""
|
||||||
"Detect infrequent users daily and disable them if they exceed the "
|
"Detect infrequent users daily and disable them if they exceed the "
|
||||||
"predetermined time limit"
|
"predetermined time limit"
|
||||||
msgstr "每天检测一次,超过预设时间的用户自动禁用"
|
msgstr "每天检测一次,超过预设时间的用户自动禁用"
|
||||||
|
|
||||||
#: settings/serializers/security.py:203
|
#: settings/serializers/security.py:207
|
||||||
msgid "Watermark"
|
msgid "Watermark"
|
||||||
msgstr "开启水印"
|
msgstr "开启水印"
|
||||||
|
|
||||||
#: settings/serializers/security.py:206
|
#: settings/serializers/security.py:210
|
||||||
msgid "Watermark session content"
|
msgid "Watermark session content"
|
||||||
msgstr "会话水印自定义内容"
|
msgstr "会话水印自定义内容"
|
||||||
|
|
||||||
#: settings/serializers/security.py:209
|
#: settings/serializers/security.py:213
|
||||||
msgid "Watermark console content"
|
msgid "Watermark console content"
|
||||||
msgstr "管理页面水印自定义内容"
|
msgstr "管理页面水印自定义内容"
|
||||||
|
|
||||||
#: settings/serializers/security.py:215
|
#: settings/serializers/security.py:219
|
||||||
msgid "Watermark font size"
|
msgid "Watermark font size"
|
||||||
msgstr "字体字号"
|
msgstr "字体字号"
|
||||||
|
|
||||||
#: settings/serializers/security.py:218
|
#: settings/serializers/security.py:222
|
||||||
msgid "Watermark height"
|
msgid "Watermark height"
|
||||||
msgstr "单个水印高度"
|
msgstr "单个水印高度"
|
||||||
|
|
||||||
#: settings/serializers/security.py:221
|
#: settings/serializers/security.py:225
|
||||||
msgid "Watermark width"
|
msgid "Watermark width"
|
||||||
msgstr "单个水印宽度"
|
msgstr "单个水印宽度"
|
||||||
|
|
||||||
#: settings/serializers/security.py:224
|
#: settings/serializers/security.py:228
|
||||||
msgid "Watermark rotate"
|
msgid "Watermark rotate"
|
||||||
msgstr "水印旋转角度"
|
msgstr "水印旋转角度"
|
||||||
|
|
||||||
#: settings/serializers/security.py:228
|
#: settings/serializers/security.py:232
|
||||||
msgid "Max idle time (minute)"
|
msgid "Max idle time (minute)"
|
||||||
msgstr "连接最大空闲时间 (分)"
|
msgstr "连接最大空闲时间 (分)"
|
||||||
|
|
||||||
#: settings/serializers/security.py:229
|
#: settings/serializers/security.py:233
|
||||||
msgid "If idle time more than it, disconnect connection."
|
msgid "If idle time more than it, disconnect connection."
|
||||||
msgstr "提示:如果超过该配置没有操作,连接会被断开"
|
msgstr "提示:如果超过该配置没有操作,连接会被断开"
|
||||||
|
|
||||||
#: settings/serializers/security.py:232
|
#: settings/serializers/security.py:236
|
||||||
msgid "Session expire at browser closed"
|
msgid "Session expire at browser closed"
|
||||||
msgstr "会话在浏览器关闭时过期"
|
msgstr "会话在浏览器关闭时过期"
|
||||||
|
|
||||||
#: settings/serializers/security.py:233
|
#: settings/serializers/security.py:237
|
||||||
msgid "Whether to expire the session when the user closes their browser."
|
msgid "Whether to expire the session when the user closes their browser."
|
||||||
msgstr "当用户关闭浏览器时是否使会话过期。"
|
msgstr "当用户关闭浏览器时是否使会话过期。"
|
||||||
|
|
||||||
#: settings/serializers/security.py:238
|
#: settings/serializers/security.py:242
|
||||||
msgid "Allow users to view asset session information"
|
msgid "Allow users to view asset session information"
|
||||||
msgstr "允许用户查看资产在线会话信息"
|
msgstr "允许用户查看资产在线会话信息"
|
||||||
|
|
||||||
#: settings/serializers/security.py:240
|
#: settings/serializers/security.py:244
|
||||||
msgid ""
|
msgid ""
|
||||||
"When a user connects to an asset, the account selection popup displays the "
|
"When a user connects to an asset, the account selection popup displays the "
|
||||||
"number of active sessions for the current asset (RDP protocol only)."
|
"number of active sessions for the current asset (RDP protocol only)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"当用户连接资产时,账号选择弹窗中显示当前资产的在线会话数量(仅 rdp 协议)"
|
"当用户连接资产时,账号选择弹窗中显示当前资产的在线会话数量(仅 rdp 协议)"
|
||||||
|
|
||||||
#: settings/serializers/security.py:246
|
#: settings/serializers/security.py:250
|
||||||
msgid "Max online time (hour)"
|
msgid "Max online time (hour)"
|
||||||
msgstr "会话连接最大时间 (时)"
|
msgstr "会话连接最大时间 (时)"
|
||||||
|
|
||||||
#: settings/serializers/security.py:247
|
#: settings/serializers/security.py:251
|
||||||
msgid "If session connection time more than it, disconnect connection."
|
msgid "If session connection time more than it, disconnect connection."
|
||||||
msgstr "提示:如果会话连接超过该配置,连接会被断开"
|
msgstr "提示:如果会话连接超过该配置,连接会被断开"
|
||||||
|
|
||||||
#: settings/serializers/security.py:250
|
#: settings/serializers/security.py:254
|
||||||
msgid "Remember manual auth"
|
msgid "Remember manual auth"
|
||||||
msgstr "保存手动输入密码"
|
msgstr "保存手动输入密码"
|
||||||
|
|
||||||
#: settings/serializers/security.py:253
|
#: settings/serializers/security.py:257
|
||||||
#: terminal/templates/terminal/_msg_session_sharing.html:10
|
#: terminal/templates/terminal/_msg_session_sharing.html:10
|
||||||
msgid "Session share"
|
msgid "Session share"
|
||||||
msgstr "会话分享"
|
msgstr "会话分享"
|
||||||
|
|
||||||
#: settings/serializers/security.py:254
|
#: settings/serializers/security.py:258
|
||||||
msgid "Enabled, Allows user active session to be shared with other users"
|
msgid "Enabled, Allows user active session to be shared with other users"
|
||||||
msgstr "开启后允许用户分享已连接的资产会话给他人,协同工作"
|
msgstr "开启后允许用户分享已连接的资产会话给他人,协同工作"
|
||||||
|
|
||||||
#: settings/serializers/security.py:260
|
#: settings/serializers/security.py:264
|
||||||
msgid "Insecure command alert"
|
msgid "Insecure command alert"
|
||||||
msgstr "危险命令告警"
|
msgstr "危险命令告警"
|
||||||
|
|
||||||
#: settings/serializers/security.py:263
|
#: settings/serializers/security.py:267
|
||||||
msgid "Email recipient"
|
msgid "Email recipient"
|
||||||
msgstr "邮件收件人"
|
msgstr "邮件收件人"
|
||||||
|
|
||||||
#: settings/serializers/security.py:264
|
#: settings/serializers/security.py:268
|
||||||
msgid "Multiple user using , split"
|
msgid "Multiple user using , split"
|
||||||
msgstr "多个用户,使用 , 分割"
|
msgstr "多个用户,使用 , 分割"
|
||||||
|
|
||||||
@ -8265,7 +8282,7 @@ msgstr "会话不存在: {}"
|
|||||||
msgid "Session is finished or the protocol not supported"
|
msgid "Session is finished or the protocol not supported"
|
||||||
msgstr "会话已经完成或协议不支持"
|
msgstr "会话已经完成或协议不支持"
|
||||||
|
|
||||||
#: terminal/api/session/session.py:345
|
#: terminal/api/session/session.py:345 tickets/api/ticket.py:140
|
||||||
msgid "User does not have permission"
|
msgid "User does not have permission"
|
||||||
msgstr "用户没有权限"
|
msgstr "用户没有权限"
|
||||||
|
|
||||||
@ -8817,9 +8834,9 @@ msgid ""
|
|||||||
"days. <a href=\"https://learn.microsoft.com/en-us/windows-server/remote/"
|
"days. <a href=\"https://learn.microsoft.com/en-us/windows-server/remote/"
|
||||||
"remote-desktop-services/rds-client-access-license\">Detail</a>"
|
"remote-desktop-services/rds-client-access-license\">Detail</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"如果不存在,RDS 将处于试用模式,试用期为 120 天。<a href='https://learn."
|
"如果不存在,RDS 将处于试用模式,试用期为 120 天。<a href='https://"
|
||||||
"microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-client-"
|
"learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-"
|
||||||
"access-license'>详情</a>"
|
"client-access-license'>详情</a>"
|
||||||
|
|
||||||
#: terminal/serializers/applet_host.py:55
|
#: terminal/serializers/applet_host.py:55
|
||||||
msgid "RDS License Server"
|
msgid "RDS License Server"
|
||||||
@ -9033,8 +9050,8 @@ msgid ""
|
|||||||
"If there are multiple hosts, use a comma (,) to separate them. <br>(For "
|
"If there are multiple hosts, use a comma (,) to separate them. <br>(For "
|
||||||
"example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)"
|
"example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"如果有多个主机,请用逗号 (,) 分隔它们。<br>(例如:http://www.jumpserver.a."
|
"如果有多个主机,请用逗号 (,) 分隔它们。<br>(例如:http://"
|
||||||
"com:9100,http://www.jumpserver.b.com:9100)"
|
"www.jumpserver.a.com:9100,http://www.jumpserver.b.com:9100)"
|
||||||
|
|
||||||
#: terminal/serializers/storage.py:199
|
#: terminal/serializers/storage.py:199
|
||||||
msgid "Index by date"
|
msgid "Index by date"
|
||||||
@ -10637,6 +10654,10 @@ msgstr "同步地区"
|
|||||||
msgid "Get instances of region \"%s\" error, error: %s"
|
msgid "Get instances of region \"%s\" error, error: %s"
|
||||||
msgstr "获取区域 \"%s\" 的实例错误,错误:%s"
|
msgstr "获取区域 \"%s\" 的实例错误,错误:%s"
|
||||||
|
|
||||||
|
#: xpack/plugins/cloud/manager.py:161 xpack/plugins/cloud/models.py:289
|
||||||
|
msgid "Instance"
|
||||||
|
msgstr "实例"
|
||||||
|
|
||||||
#: xpack/plugins/cloud/manager.py:187
|
#: xpack/plugins/cloud/manager.py:187
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to synchronize the instance \"%s\""
|
msgid "Failed to synchronize the instance \"%s\""
|
||||||
@ -10779,10 +10800,6 @@ msgstr "同步任务"
|
|||||||
msgid "Sync instance task history"
|
msgid "Sync instance task history"
|
||||||
msgstr "同步实例任务历史"
|
msgstr "同步实例任务历史"
|
||||||
|
|
||||||
#: xpack/plugins/cloud/models.py:289
|
|
||||||
msgid "Instance"
|
|
||||||
msgstr "实例"
|
|
||||||
|
|
||||||
#: xpack/plugins/cloud/models.py:306
|
#: xpack/plugins/cloud/models.py:306
|
||||||
msgid "Sync instance detail"
|
msgid "Sync instance detail"
|
||||||
msgstr "同步实例详情"
|
msgstr "同步实例详情"
|
||||||
@ -11087,6 +11104,12 @@ msgstr "订阅 ID"
|
|||||||
msgid "Auto node classification"
|
msgid "Auto node classification"
|
||||||
msgstr "自动节点分类"
|
msgstr "自动节点分类"
|
||||||
|
|
||||||
|
#: xpack/plugins/cloud/serializers/account_attrs.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Domain name"
|
||||||
|
msgid "domain_name"
|
||||||
|
msgstr "域名称"
|
||||||
|
|
||||||
#: xpack/plugins/cloud/serializers/account_attrs.py:114
|
#: xpack/plugins/cloud/serializers/account_attrs.py:114
|
||||||
#: xpack/plugins/cloud/serializers/account_attrs.py:118
|
#: xpack/plugins/cloud/serializers/account_attrs.py:118
|
||||||
#: xpack/plugins/cloud/serializers/account_attrs.py:150
|
#: xpack/plugins/cloud/serializers/account_attrs.py:150
|
||||||
|
@ -2,7 +2,6 @@ from django.utils.translation import gettext_lazy as _
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from acls.serializers.rules import ip_group_help_text, ip_group_child_validator
|
from acls.serializers.rules import ip_group_help_text, ip_group_child_validator
|
||||||
from apps.jumpserver.settings.auth import AUTHENTICATION_BACKENDS_THIRD_PARTY
|
|
||||||
from users.models.user import SourceMixin
|
from users.models.user import SourceMixin
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
@ -120,9 +119,7 @@ class SecurityLoginLimitSerializer(serializers.Serializer):
|
|||||||
|
|
||||||
|
|
||||||
class SecurityAuthSerializer(serializers.Serializer):
|
class SecurityAuthSerializer(serializers.Serializer):
|
||||||
help_text_third_party_mfa = _('The third-party login modes include ') + ', '.join(
|
help_text_third_party_mfa = _('The third-party login modes include ') + ', '.join(SourceMixin.get_third_sources())
|
||||||
SourceMixin().backends_source_mapper.get(backend) for backend in AUTHENTICATION_BACKENDS_THIRD_PARTY
|
|
||||||
)
|
|
||||||
SECURITY_MFA_AUTH = serializers.ChoiceField(
|
SECURITY_MFA_AUTH = serializers.ChoiceField(
|
||||||
choices=(
|
choices=(
|
||||||
[0, _('Not enabled')],
|
[0, _('Not enabled')],
|
||||||
|
@ -6,6 +6,8 @@ from django.conf import settings
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
from apps.jumpserver.settings.auth import AUTHENTICATION_BACKENDS_THIRD_PARTY
|
||||||
|
|
||||||
|
|
||||||
class Source(models.TextChoices):
|
class Source(models.TextChoices):
|
||||||
local = "local", _("Local")
|
local = "local", _("Local")
|
||||||
@ -71,6 +73,15 @@ class SourceMixin:
|
|||||||
}
|
}
|
||||||
return [str(k) for k, v in mapper.items() if v]
|
return [str(k) for k, v in mapper.items() if v]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_third_sources(cls):
|
||||||
|
sources = []
|
||||||
|
for source, backends in cls.SOURCE_BACKEND_MAPPING.items():
|
||||||
|
for backend in backends:
|
||||||
|
if backend in AUTHENTICATION_BACKENDS_THIRD_PARTY:
|
||||||
|
sources.append(str(source.label))
|
||||||
|
return sources
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def source_display(self):
|
def source_display(self):
|
||||||
return self.get_source_display()
|
return self.get_source_display()
|
||||||
@ -107,7 +118,3 @@ class SourceMixin:
|
|||||||
if not settings.ONLY_ALLOW_AUTH_FROM_SOURCE:
|
if not settings.ONLY_ALLOW_AUTH_FROM_SOURCE:
|
||||||
return None
|
return None
|
||||||
return self.SOURCE_BACKEND_MAPPING.get(self.source, [])
|
return self.SOURCE_BACKEND_MAPPING.get(self.source, [])
|
||||||
|
|
||||||
@property
|
|
||||||
def backends_source_mapper(self):
|
|
||||||
return {backend: source for source, backends in self.SOURCE_BACKEND_MAPPING.items() for backend in backends}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user