perf: remote app 字段也加密 (#8274)

* perf: remote app 字段也加密

* perf: 修改一些加密字段

Co-authored-by: ibuler <ibuler@qq.com>
pull/8278/head
fit2bot 2022-05-20 10:01:41 +08:00 committed by GitHub
parent 99e1b2cf92
commit 1029556902
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 456 additions and 430 deletions

View File

@ -1,6 +1,7 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
from ..application_category import RemoteAppSerializer
__all__ = ['ChromeSerializer', 'ChromeSecretSerializer']
@ -13,19 +14,21 @@ class ChromeSerializer(RemoteAppSerializer):
max_length=128, label=_('Application path'), default=CHROME_PATH, allow_null=True,
)
chrome_target = serializers.CharField(
max_length=128, allow_blank=True, required=False, label=_('Target URL'), allow_null=True,
max_length=128, allow_blank=True, required=False,
label=_('Target URL'), allow_null=True,
)
chrome_username = serializers.CharField(
max_length=128, allow_blank=True, required=False, label=_('Chrome username'), allow_null=True,
max_length=128, allow_blank=True, required=False,
label=_('Chrome username'), allow_null=True,
)
chrome_password = serializers.CharField(
max_length=128, allow_blank=True, required=False, write_only=True, label=_('Chrome password'),
allow_null=True
chrome_password = EncryptedField(
max_length=128, allow_blank=True, required=False,
label=_('Chrome password'), allow_null=True
)
class ChromeSecretSerializer(ChromeSerializer):
chrome_password = serializers.CharField(
max_length=128, allow_blank=True, required=False, read_only=True, label=_('Chrome password'),
allow_null=True
chrome_password = EncryptedField(
max_length=128, allow_blank=True, required=False,
label=_('Chrome password'), allow_null=True, write_only=False
)

View File

@ -1,6 +1,7 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
from ..application_category import RemoteAppSerializer
__all__ = ['CustomSerializer', 'CustomSecretSerializer']
@ -19,14 +20,14 @@ class CustomSerializer(RemoteAppSerializer):
max_length=128, allow_blank=True, required=False, label=_('Custom Username'),
allow_null=True,
)
custom_password = serializers.CharField(
max_length=128, allow_blank=True, required=False, write_only=True, label=_('Custom password'),
allow_null=True,
custom_password = EncryptedField(
max_length=128, allow_blank=True, required=False,
label=_('Custom password'), allow_null=True,
)
class CustomSecretSerializer(RemoteAppSerializer):
custom_password = serializers.CharField(
max_length=128, allow_blank=True, required=False, read_only=True, label=_('Custom password'),
allow_null=True,
custom_password = EncryptedField(
max_length=128, allow_blank=True, required=False, write_only=False,
label=_('Custom password'), allow_null=True,
)

View File

@ -1,6 +1,7 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
from ..application_category import RemoteAppSerializer
__all__ = ['MySQLWorkbenchSerializer', 'MySQLWorkbenchSecretSerializer']
@ -29,14 +30,14 @@ class MySQLWorkbenchSerializer(RemoteAppSerializer):
max_length=128, allow_blank=True, required=False, label=_('Mysql workbench username'),
allow_null=True,
)
mysql_workbench_password = serializers.CharField(
max_length=128, allow_blank=True, required=False, write_only=True, label=_('Mysql workbench password'),
allow_null=True,
mysql_workbench_password = EncryptedField(
max_length=128, allow_blank=True, required=False,
label=_('Mysql workbench password'), allow_null=True,
)
class MySQLWorkbenchSecretSerializer(RemoteAppSerializer):
mysql_workbench_password = serializers.CharField(
max_length=128, allow_blank=True, required=False, read_only=True, label=_('Mysql workbench password'),
allow_null=True,
mysql_workbench_password = EncryptedField(
max_length=128, allow_blank=True, required=False, write_only=False,
label=_('Mysql workbench password'), allow_null=True,
)

View File

@ -1,6 +1,7 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
from ..application_category import RemoteAppSerializer
__all__ = ['VMwareClientSerializer', 'VMwareClientSecretSerializer']
@ -25,14 +26,14 @@ class VMwareClientSerializer(RemoteAppSerializer):
max_length=128, allow_blank=True, required=False, label=_('Vmware username'),
allow_null=True
)
vmware_password = serializers.CharField(
max_length=128, allow_blank=True, required=False, write_only=True, label=_('Vmware password'),
allow_null=True
vmware_password = EncryptedField(
max_length=128, allow_blank=True, required=False,
label=_('Vmware password'), allow_null=True
)
class VMwareClientSecretSerializer(RemoteAppSerializer):
vmware_password = serializers.CharField(
max_length=128, allow_blank=True, required=False, read_only=True, label=_('Vmware password'),
allow_null=True
vmware_password = EncryptedField(
max_length=128, allow_blank=True, required=False, write_only=False,
label=_('Vmware password'), allow_null=True
)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5effe3cb5eb97d51bf886d21dfbe785bb789722f30774a6595eac7aa79b6315a
size 127478

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-17 18:02+0800\n"
"POT-Creation-Date: 2022-05-19 13:16+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"
@ -129,7 +129,7 @@ msgstr "システムユーザー"
#: assets/models/asset.py:386 assets/models/authbook.py:19
#: assets/models/backup.py:31 assets/models/cmd_filter.py:38
#: assets/models/gathered_user.py:14 assets/serializers/label.py:30
#: assets/serializers/system_user.py:264 audits/models.py:39
#: assets/serializers/system_user.py:269 audits/models.py:39
#: perms/models/asset_permission.py:23 terminal/backends/command/models.py:21
#: terminal/backends/command/serializers.py:13 terminal/models/session.py:46
#: terminal/notifications.py:90
@ -162,7 +162,7 @@ msgstr "コンマ区切り文字列の形式。* はすべて一致すること
#: users/templates/users/_msg_user_created.html:12
#: xpack/plugins/change_auth_plan/models/asset.py:34
#: xpack/plugins/change_auth_plan/models/asset.py:195
#: xpack/plugins/cloud/serializers/account_attrs.py:22
#: xpack/plugins/cloud/serializers/account_attrs.py:24
msgid "Username"
msgstr "ユーザー名"
@ -177,9 +177,9 @@ msgstr ""
"db8:1a:1110:::/64 (ドメイン名サポート)"
#: acls/serializers/login_asset_acl.py:31 acls/serializers/rules/rules.py:33
#: applications/serializers/attrs/application_type/mysql_workbench.py:17
#: applications/serializers/attrs/application_type/mysql_workbench.py:18
#: assets/models/asset.py:210 assets/models/domain.py:60
#: assets/serializers/account.py:13
#: assets/serializers/account.py:14
#: authentication/templates/authentication/_msg_oauth_bind.html:12
#: authentication/templates/authentication/_msg_rest_password_success.html:8
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8
@ -188,7 +188,7 @@ msgid "IP"
msgstr "IP"
#: acls/serializers/login_asset_acl.py:35 assets/models/asset.py:211
#: assets/serializers/account.py:14 assets/serializers/gathered_user.py:23
#: assets/serializers/account.py:15 assets/serializers/gathered_user.py:23
#: settings/serializers/terminal.py:7
msgid "Hostname"
msgstr "ホスト名"
@ -203,7 +203,7 @@ msgstr ""
#: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:213
#: assets/models/domain.py:62 assets/models/user.py:248
#: terminal/serializers/session.py:30 terminal/serializers/storage.py:67
#: terminal/serializers/session.py:30 terminal/serializers/storage.py:68
msgid "Protocol"
msgstr "プロトコル"
@ -245,7 +245,7 @@ msgstr "アプリケーション"
#: applications/const.py:8
#: applications/serializers/attrs/application_category/db.py:14
#: applications/serializers/attrs/application_type/mysql_workbench.py:25
#: applications/serializers/attrs/application_type/mysql_workbench.py:26
#: xpack/plugins/change_auth_plan/models/app.py:32
msgid "Database"
msgstr "データベース"
@ -341,7 +341,7 @@ msgstr "カテゴリ表示"
#: applications/serializers/application.py:71
#: applications/serializers/application.py:102
#: assets/serializers/cmd_filter.py:34 assets/serializers/system_user.py:27
#: assets/serializers/cmd_filter.py:34 assets/serializers/system_user.py:29
#: audits/serializers.py:29 perms/serializers/application/permission.py:19
#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:33
#: tickets/serializers/ticket/ticket.py:21
@ -353,7 +353,7 @@ msgstr "タイプ表示"
#: assets/models/base.py:181 assets/models/cluster.py:26
#: assets/models/domain.py:26 assets/models/gathered_user.py:19
#: assets/models/group.py:22 assets/models/label.py:25
#: assets/serializers/account.py:18 assets/serializers/cmd_filter.py:28
#: assets/serializers/account.py:19 assets/serializers/cmd_filter.py:28
#: assets/serializers/cmd_filter.py:48 common/db/models.py:113
#: common/mixins/models.py:50 ops/models/adhoc.py:39 ops/models/command.py:30
#: orgs/models.py:67 orgs/models.py:217 perms/models/base.py:92
@ -363,7 +363,7 @@ msgid "Date created"
msgstr "作成された日付"
#: applications/serializers/application.py:104 assets/models/base.py:182
#: assets/models/gathered_user.py:20 assets/serializers/account.py:21
#: assets/models/gathered_user.py:20 assets/serializers/account.py:22
#: assets/serializers/cmd_filter.py:29 assets/serializers/cmd_filter.py:49
#: common/db/models.py:114 common/mixins/models.py:51 ops/models/adhoc.py:40
#: orgs/models.py:218
@ -387,88 +387,88 @@ msgstr "クラスター"
#: applications/serializers/attrs/application_category/db.py:11
#: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14
#: terminal/models/endpoint.py:11
#: xpack/plugins/cloud/serializers/account_attrs.py:68
#: xpack/plugins/cloud/serializers/account_attrs.py:70
msgid "Host"
msgstr "ホスト"
#: applications/serializers/attrs/application_category/db.py:12
#: applications/serializers/attrs/application_type/mongodb.py:10
#: applications/serializers/attrs/application_type/mysql.py:10
#: applications/serializers/attrs/application_type/mysql_workbench.py:21
#: applications/serializers/attrs/application_type/mysql_workbench.py:22
#: applications/serializers/attrs/application_type/oracle.py:10
#: applications/serializers/attrs/application_type/pgsql.py:10
#: applications/serializers/attrs/application_type/redis.py:10
#: applications/serializers/attrs/application_type/sqlserver.py:10
#: assets/models/asset.py:214 assets/models/domain.py:61
#: settings/serializers/auth/radius.py:15
#: xpack/plugins/cloud/serializers/account_attrs.py:69
#: xpack/plugins/cloud/serializers/account_attrs.py:71
msgid "Port"
msgstr "ポート"
#: applications/serializers/attrs/application_category/remote_app.py:39
#: applications/serializers/attrs/application_type/chrome.py:13
#: applications/serializers/attrs/application_type/mysql_workbench.py:13
#: applications/serializers/attrs/application_type/vmware_client.py:17
#: applications/serializers/attrs/application_type/chrome.py:14
#: applications/serializers/attrs/application_type/mysql_workbench.py:14
#: applications/serializers/attrs/application_type/vmware_client.py:18
msgid "Application path"
msgstr "アプリケーションパス"
#: applications/serializers/attrs/application_category/remote_app.py:44
#: assets/serializers/system_user.py:163
#: assets/serializers/system_user.py:168
#: xpack/plugins/change_auth_plan/serializers/asset.py:66
#: xpack/plugins/change_auth_plan/serializers/asset.py:69
#: xpack/plugins/change_auth_plan/serializers/asset.py:72
#: xpack/plugins/change_auth_plan/serializers/asset.py:103
#: xpack/plugins/cloud/serializers/account_attrs.py:52
#: xpack/plugins/cloud/serializers/account_attrs.py:54
msgid "This field is required."
msgstr "このフィールドは必須です。"
#: applications/serializers/attrs/application_type/chrome.py:16
#: applications/serializers/attrs/application_type/vmware_client.py:21
#: applications/serializers/attrs/application_type/chrome.py:18
#: applications/serializers/attrs/application_type/vmware_client.py:22
msgid "Target URL"
msgstr "ターゲットURL"
#: applications/serializers/attrs/application_type/chrome.py:19
#: applications/serializers/attrs/application_type/chrome.py:22
msgid "Chrome username"
msgstr "Chromeユーザー名"
#: applications/serializers/attrs/application_type/chrome.py:22
#: applications/serializers/attrs/application_type/chrome.py:29
#: applications/serializers/attrs/application_type/chrome.py:26
#: applications/serializers/attrs/application_type/chrome.py:33
msgid "Chrome password"
msgstr "Chromeパスワード"
#: applications/serializers/attrs/application_type/custom.py:11
#: applications/serializers/attrs/application_type/custom.py:12
msgid "Operating parameter"
msgstr "操作パラメータ"
#: applications/serializers/attrs/application_type/custom.py:15
#: applications/serializers/attrs/application_type/custom.py:16
msgid "Target url"
msgstr "ターゲットURL"
#: applications/serializers/attrs/application_type/custom.py:19
#: applications/serializers/attrs/application_type/custom.py:20
msgid "Custom Username"
msgstr "カスタムユーザー名"
#: applications/serializers/attrs/application_type/custom.py:23
#: applications/serializers/attrs/application_type/custom.py:30
#: applications/serializers/attrs/application_type/custom.py:25
#: applications/serializers/attrs/application_type/custom.py:32
#: xpack/plugins/change_auth_plan/models/base.py:27
msgid "Custom password"
msgstr "カスタムパスワード"
#: applications/serializers/attrs/application_type/mysql_workbench.py:29
#: applications/serializers/attrs/application_type/mysql_workbench.py:30
msgid "Mysql workbench username"
msgstr "Mysql workbench のユーザー名"
#: applications/serializers/attrs/application_type/mysql_workbench.py:33
#: applications/serializers/attrs/application_type/mysql_workbench.py:40
#: applications/serializers/attrs/application_type/mysql_workbench.py:35
#: applications/serializers/attrs/application_type/mysql_workbench.py:42
msgid "Mysql workbench password"
msgstr "Mysql workbench パスワード"
#: applications/serializers/attrs/application_type/vmware_client.py:25
#: applications/serializers/attrs/application_type/vmware_client.py:26
msgid "Vmware username"
msgstr "Vmware ユーザー名"
#: applications/serializers/attrs/application_type/vmware_client.py:29
#: applications/serializers/attrs/application_type/vmware_client.py:36
#: applications/serializers/attrs/application_type/vmware_client.py:31
#: applications/serializers/attrs/application_type/vmware_client.py:38
msgid "Vmware password"
msgstr "Vmware パスワード"
@ -510,7 +510,7 @@ msgid "Internal"
msgstr "内部"
#: assets/models/asset.py:162 assets/models/asset.py:216
#: assets/serializers/account.py:15 assets/serializers/asset.py:63
#: assets/serializers/account.py:16 assets/serializers/asset.py:63
#: perms/serializers/asset/user_permission.py:43
msgid "Platform"
msgstr "プラットフォーム"
@ -571,7 +571,7 @@ msgstr "システムアーキテクチャ"
msgid "Hostname raw"
msgstr "ホスト名生"
#: assets/models/asset.py:215 assets/serializers/account.py:16
#: assets/models/asset.py:215 assets/serializers/account.py:17
#: assets/serializers/asset.py:65 perms/serializers/asset/user_permission.py:41
#: xpack/plugins/cloud/models.py:107 xpack/plugins/cloud/serializers/task.py:42
msgid "Protocols"
@ -750,7 +750,7 @@ msgstr "OK"
msgid "Failed"
msgstr "失敗しました"
#: assets/models/base.py:38 assets/serializers/domain.py:46
#: assets/models/base.py:38 assets/serializers/domain.py:47
msgid "Connectivity"
msgstr "接続性"
@ -769,7 +769,7 @@ msgstr "確認済みの日付"
#: xpack/plugins/change_auth_plan/models/base.py:42
#: xpack/plugins/change_auth_plan/models/base.py:121
#: xpack/plugins/change_auth_plan/models/base.py:196
#: xpack/plugins/cloud/serializers/account_attrs.py:24
#: xpack/plugins/cloud/serializers/account_attrs.py:26
msgid "Password"
msgstr "パスワード"
@ -833,7 +833,7 @@ msgstr "デフォルトクラスター"
msgid "User group"
msgstr "ユーザーグループ"
#: assets/models/cmd_filter.py:60 assets/serializers/system_user.py:54
#: assets/models/cmd_filter.py:60 assets/serializers/system_user.py:59
msgid "Command filter"
msgstr "コマンドフィルター"
@ -958,7 +958,7 @@ msgstr "フルバリュー"
msgid "Parent key"
msgstr "親キー"
#: assets/models/node.py:559 assets/serializers/system_user.py:263
#: assets/models/node.py:559 assets/serializers/system_user.py:268
#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:69
msgid "Node"
msgstr "ノード"
@ -983,7 +983,7 @@ msgstr "共通ユーザー"
msgid "Username same with user"
msgstr "ユーザーと同じユーザー名"
#: assets/models/user.py:240 assets/serializers/domain.py:29
#: assets/models/user.py:240 assets/serializers/domain.py:30
#: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/change_auth_plan/models/asset.py:39
msgid "Assets"
@ -1017,7 +1017,8 @@ msgstr "ログインモード"
msgid "SFTP Root"
msgstr "SFTPルート"
#: assets/models/user.py:254 authentication/models.py:49
#: assets/models/user.py:254 assets/serializers/system_user.py:32
#: authentication/models.py:49
msgid "Token"
msgstr "トークン"
@ -1068,7 +1069,7 @@ msgstr ""
"されていません-個人情報にアクセスしてください-> ファイル暗号化パスワードを設"
"定してください暗号化パスワード"
#: assets/serializers/account.py:40 assets/serializers/account.py:83
#: assets/serializers/account.py:41 assets/serializers/account.py:84
msgid "System user display"
msgstr "システムユーザー表示"
@ -1143,17 +1144,17 @@ msgstr "アクション表示"
msgid "Pattern"
msgstr "パターン"
#: assets/serializers/domain.py:13 assets/serializers/label.py:12
#: assets/serializers/system_user.py:59
#: assets/serializers/domain.py:14 assets/serializers/label.py:12
#: assets/serializers/system_user.py:64
#: perms/serializers/asset/permission.py:49
msgid "Assets amount"
msgstr "資産額"
#: assets/serializers/domain.py:14
#: assets/serializers/domain.py:15
msgid "Applications amount"
msgstr "申し込み金額"
#: assets/serializers/domain.py:15
#: assets/serializers/domain.py:16
msgid "Gateways count"
msgstr "ゲートウェイ数"
@ -1169,78 +1170,78 @@ msgstr "含まれない:/"
msgid "The same level node name cannot be the same"
msgstr "同じレベルのノード名を同じにすることはできません。"
#: assets/serializers/system_user.py:28
#: assets/serializers/system_user.py:30
msgid "SSH key fingerprint"
msgstr "SSHキー指紋"
#: assets/serializers/system_user.py:30
#: assets/serializers/system_user.py:35
#: perms/serializers/application/permission.py:46
msgid "Apps amount"
msgstr "アプリの量"
#: assets/serializers/system_user.py:58
#: assets/serializers/system_user.py:63
#: perms/serializers/asset/permission.py:50
msgid "Nodes amount"
msgstr "ノード量"
#: assets/serializers/system_user.py:60 assets/serializers/system_user.py:265
#: assets/serializers/system_user.py:65 assets/serializers/system_user.py:270
msgid "Login mode display"
msgstr "ログインモード表示"
#: assets/serializers/system_user.py:62
#: assets/serializers/system_user.py:67
msgid "Ad domain"
msgstr "広告ドメイン"
#: assets/serializers/system_user.py:63
#: assets/serializers/system_user.py:68
msgid "Is asset protocol"
msgstr "資産プロトコルです"
#: assets/serializers/system_user.py:64
#: assets/serializers/system_user.py:69
msgid "Only ssh and automatic login system users are supported"
msgstr "sshと自動ログインシステムのユーザーのみがサポートされています"
#: assets/serializers/system_user.py:104
#: assets/serializers/system_user.py:109
msgid "Username same with user with protocol {} only allow 1"
msgstr "プロトコル {} のユーザーと同じユーザー名は1のみ許可します"
#: assets/serializers/system_user.py:117 common/validators.py:14
#: assets/serializers/system_user.py:122 common/validators.py:14
msgid "Special char not allowed"
msgstr "特別なcharは許可されていません"
#: assets/serializers/system_user.py:127
#: assets/serializers/system_user.py:132
msgid "* Automatic login mode must fill in the username."
msgstr "* 自動ログインモードはユーザー名を入力する必要があります。"
#: assets/serializers/system_user.py:142
#: assets/serializers/system_user.py:147
msgid "Path should starts with /"
msgstr "パスは/で始まる必要があります"
#: assets/serializers/system_user.py:154
#: assets/serializers/system_user.py:159
msgid "Password or private key required"
msgstr "パスワードまたは秘密鍵が必要"
#: assets/serializers/system_user.py:168
#: assets/serializers/system_user.py:173
msgid "Only ssh protocol system users are allowed"
msgstr "Sshプロトコルシステムユーザーのみが許可されています"
#: assets/serializers/system_user.py:172
#: assets/serializers/system_user.py:177
msgid "The protocol must be consistent with the current user: {}"
msgstr "プロトコルは現在のユーザーと一致している必要があります: {}"
#: assets/serializers/system_user.py:176
#: assets/serializers/system_user.py:181
msgid "Only system users with automatic login are allowed"
msgstr "自動ログインを持つシステムユーザーのみが許可されます"
#: assets/serializers/system_user.py:281
#: assets/serializers/system_user.py:289
msgid "System user name"
msgstr "システムユーザー名"
#: assets/serializers/system_user.py:282 orgs/mixins/serializers.py:26
#: assets/serializers/system_user.py:290 orgs/mixins/serializers.py:26
#: rbac/serializers/rolebinding.py:23
msgid "Org name"
msgstr "組織名"
#: assets/serializers/system_user.py:291
#: assets/serializers/system_user.py:299
msgid "Asset hostname"
msgstr "資産ホスト名"
@ -1495,7 +1496,7 @@ msgstr "ユーザーエージェント"
#: audits/models.py:126
#: authentication/templates/authentication/_mfa_confirm_modal.html:14
#: users/forms/profile.py:65 users/models/user.py:684
#: users/serializers/profile.py:124
#: users/serializers/profile.py:126
msgid "MFA"
msgstr "MFA"
@ -1542,7 +1543,7 @@ msgstr "ホスト表示"
msgid "Result"
msgstr "結果"
#: audits/serializers.py:98 terminal/serializers/storage.py:156
#: audits/serializers.py:98 terminal/serializers/storage.py:157
msgid "Hosts"
msgstr "ホスト"
@ -2052,7 +2053,7 @@ msgstr "MFAタイプ ({}) が有効になっていない"
msgid "Please change your password"
msgstr "パスワードを変更してください"
#: authentication/models.py:34 terminal/serializers/storage.py:28
#: authentication/models.py:34
msgid "Access key"
msgstr "アクセスキー"
@ -2141,13 +2142,13 @@ msgstr "表示"
#: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/security.py:39 users/models/user.py:556
#: users/serializers/profile.py:114 users/templates/users/mfa_setting.html:61
#: users/serializers/profile.py:116 users/templates/users/mfa_setting.html:61
#: users/templates/users/user_verify_mfa.html:36
msgid "Disable"
msgstr "無効化"
#: authentication/templates/authentication/_access_key_modal.html:67
#: users/models/user.py:557 users/serializers/profile.py:115
#: users/models/user.py:557 users/serializers/profile.py:117
#: users/templates/users/mfa_setting.html:26
#: users/templates/users/mfa_setting.html:68
msgid "Enable"
@ -2377,15 +2378,15 @@ msgstr "DingTalkはすでに別のユーザーにバインドされています"
msgid "Binding DingTalk successfully"
msgstr "DingTalkのバインドに成功"
#: authentication/views/dingtalk.py:239 authentication/views/dingtalk.py:293
#: authentication/views/dingtalk.py:240 authentication/views/dingtalk.py:294
msgid "Failed to get user from DingTalk"
msgstr "DingTalkからユーザーを取得できませんでした"
#: authentication/views/dingtalk.py:245 authentication/views/dingtalk.py:299
#: authentication/views/dingtalk.py:246 authentication/views/dingtalk.py:300
msgid "DingTalk is not bound"
msgstr "DingTalkはバインドされていません"
#: authentication/views/dingtalk.py:246 authentication/views/dingtalk.py:300
#: authentication/views/dingtalk.py:247 authentication/views/dingtalk.py:301
msgid "Please login with a password and then bind the DingTalk"
msgstr "パスワードでログインし、DingTalkをバインドしてください"
@ -2414,15 +2415,15 @@ msgstr "本を飛ばす"
msgid "Binding FeiShu successfully"
msgstr "本を飛ばすのバインドに成功"
#: authentication/views/feishu.py:200
#: authentication/views/feishu.py:201
msgid "Failed to get user from FeiShu"
msgstr "本を飛ばすからユーザーを取得できませんでした"
#: authentication/views/feishu.py:206
#: authentication/views/feishu.py:207
msgid "FeiShu is not bound"
msgstr "本を飛ばすは拘束されていません"
#: authentication/views/feishu.py:207
#: authentication/views/feishu.py:208
msgid "Please login with a password and then bind the FeiShu"
msgstr "パスワードでログインしてから本を飛ばすをバインドしてください"
@ -3249,7 +3250,7 @@ msgstr "組織の役割バインディング"
msgid "System role binding"
msgstr "システムロールバインディング"
#: rbac/serializers/permission.py:26 users/serializers/profile.py:130
#: rbac/serializers/permission.py:26 users/serializers/profile.py:132
msgid "Perms"
msgstr "パーマ"
@ -3475,7 +3476,7 @@ msgstr "ログインリダイレクトの有効化msg"
msgid "Enable CAS Auth"
msgstr "CAS 認証の有効化"
#: settings/serializers/auth/cas.py:11 settings/serializers/auth/oidc.py:40
#: settings/serializers/auth/cas.py:11 settings/serializers/auth/oidc.py:42
msgid "Server url"
msgstr "サービス側アドレス"
@ -3503,11 +3504,11 @@ msgstr "マッピングのプロパティ"
msgid "Create user if not"
msgstr "そうでない場合はユーザーを作成"
#: settings/serializers/auth/dingtalk.py:11
#: settings/serializers/auth/dingtalk.py:13
msgid "Enable DingTalk Auth"
msgstr "ピン認証の有効化"
#: settings/serializers/auth/feishu.py:10
#: settings/serializers/auth/feishu.py:12
msgid "Enable FeiShu Auth"
msgstr "飛本認証の有効化"
@ -3564,96 +3565,96 @@ msgstr "ページサイズを検索"
msgid "Enable LDAP auth"
msgstr "LDAP認証の有効化"
#: settings/serializers/auth/oidc.py:12
#: settings/serializers/auth/oidc.py:14
msgid "Base site url"
msgstr "ベースサイトのアドレス"
#: settings/serializers/auth/oidc.py:15
#: settings/serializers/auth/oidc.py:17
msgid "Client Id"
msgstr "クライアントID"
#: settings/serializers/auth/oidc.py:18
#: xpack/plugins/cloud/serializers/account_attrs.py:34
#: settings/serializers/auth/oidc.py:20
#: xpack/plugins/cloud/serializers/account_attrs.py:36
msgid "Client Secret"
msgstr "クライアント秘密"
#: settings/serializers/auth/oidc.py:26
#: settings/serializers/auth/oidc.py:28
msgid "Client authentication method"
msgstr "クライアント認証方式"
#: settings/serializers/auth/oidc.py:28
#: settings/serializers/auth/oidc.py:30
msgid "Share session"
msgstr "セッションの共有"
#: settings/serializers/auth/oidc.py:30
#: settings/serializers/auth/oidc.py:32
msgid "Ignore ssl verification"
msgstr "Ssl検証を無視する"
#: settings/serializers/auth/oidc.py:37
#: settings/serializers/auth/oidc.py:39
msgid "Use Keycloak"
msgstr "Keycloakを使用する"
#: settings/serializers/auth/oidc.py:43
#: settings/serializers/auth/oidc.py:45
msgid "Realm name"
msgstr "レルム名"
#: settings/serializers/auth/oidc.py:49
#: settings/serializers/auth/oidc.py:51
msgid "Enable OPENID Auth"
msgstr "OIDC認証の有効化"
#: settings/serializers/auth/oidc.py:51
#: settings/serializers/auth/oidc.py:53
msgid "Provider endpoint"
msgstr "プロバイダーエンドポイント"
#: settings/serializers/auth/oidc.py:54
#: settings/serializers/auth/oidc.py:56
msgid "Provider auth endpoint"
msgstr "認証エンドポイントアドレス"
#: settings/serializers/auth/oidc.py:57
#: settings/serializers/auth/oidc.py:59
msgid "Provider token endpoint"
msgstr "プロバイダートークンエンドポイント"
#: settings/serializers/auth/oidc.py:60
#: settings/serializers/auth/oidc.py:62
msgid "Provider jwks endpoint"
msgstr "プロバイダーjwksエンドポイント"
#: settings/serializers/auth/oidc.py:63
#: settings/serializers/auth/oidc.py:65
msgid "Provider userinfo endpoint"
msgstr "プロバイダーuserinfoエンドポイント"
#: settings/serializers/auth/oidc.py:66
#: settings/serializers/auth/oidc.py:68
msgid "Provider end session endpoint"
msgstr "プロバイダーのセッション終了エンドポイント"
#: settings/serializers/auth/oidc.py:69
#: settings/serializers/auth/oidc.py:71
msgid "Provider sign alg"
msgstr "プロビダーサインalg"
#: settings/serializers/auth/oidc.py:72
#: settings/serializers/auth/oidc.py:74
msgid "Provider sign key"
msgstr "プロバイダ署名キー"
#: settings/serializers/auth/oidc.py:74
#: settings/serializers/auth/oidc.py:76
msgid "Scopes"
msgstr "スコープ"
#: settings/serializers/auth/oidc.py:76
#: settings/serializers/auth/oidc.py:78
msgid "Id token max age"
msgstr "IDトークンの最大年齢"
#: settings/serializers/auth/oidc.py:79
#: settings/serializers/auth/oidc.py:81
msgid "Id token include claims"
msgstr "IDトークンにはクレームが含まれます"
#: settings/serializers/auth/oidc.py:81
#: settings/serializers/auth/oidc.py:83
msgid "Use state"
msgstr "使用状態"
#: settings/serializers/auth/oidc.py:82
#: settings/serializers/auth/oidc.py:84
msgid "Use nonce"
msgstr "Nonceを使用"
#: settings/serializers/auth/oidc.py:84 settings/serializers/auth/saml2.py:33
#: settings/serializers/auth/oidc.py:86 settings/serializers/auth/saml2.py:33
msgid "Always update user"
msgstr "常にユーザーを更新"
@ -3689,25 +3690,25 @@ msgstr "SP プライベートキー"
msgid "SP cert"
msgstr "SP 証明書"
#: settings/serializers/auth/sms.py:10
#: settings/serializers/auth/sms.py:11
msgid "Enable SMS"
msgstr "SMSの有効化"
#: settings/serializers/auth/sms.py:12
#: settings/serializers/auth/sms.py:13
msgid "SMS provider"
msgstr "SMSプロバイダ"
#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:35
#: settings/serializers/auth/sms.py:43 settings/serializers/email.py:63
#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36
#: settings/serializers/auth/sms.py:44 settings/serializers/email.py:65
msgid "Signature"
msgstr "署名"
#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36
#: settings/serializers/auth/sms.py:44
#: settings/serializers/auth/sms.py:19 settings/serializers/auth/sms.py:37
#: settings/serializers/auth/sms.py:45
msgid "Template code"
msgstr "テンプレートコード"
#: settings/serializers/auth/sms.py:22
#: settings/serializers/auth/sms.py:23
msgid "Test phone"
msgstr "テスト電話"
@ -3728,7 +3729,7 @@ msgstr "Token有効期間"
msgid "Unit: second"
msgstr "単位: 秒"
#: settings/serializers/auth/wecom.py:11
#: settings/serializers/auth/wecom.py:13
msgid "Enable WeCom Auth"
msgstr "企業微信認証の有効化"
@ -3822,69 +3823,69 @@ msgstr ""
"単位:日。セッション、録画、コマンドレコードがそれを超えると削除されます(デー"
"タベースストレージにのみ影響します。ossなどは影響しません」影響を受ける)"
#: settings/serializers/email.py:18
#: settings/serializers/email.py:20
msgid "SMTP host"
msgstr "SMTPホスト"
#: settings/serializers/email.py:19
#: settings/serializers/email.py:21
msgid "SMTP port"
msgstr "SMTPポート"
#: settings/serializers/email.py:20
#: settings/serializers/email.py:22
msgid "SMTP account"
msgstr "SMTPアカウント"
#: settings/serializers/email.py:22
#: settings/serializers/email.py:24
msgid "SMTP password"
msgstr "SMTPパスワード"
#: settings/serializers/email.py:23
#: settings/serializers/email.py:25
msgid "Tips: Some provider use token except password"
msgstr "ヒント: 一部のプロバイダーはパスワード以外のトークンを使用します"
#: settings/serializers/email.py:26
#: settings/serializers/email.py:28
msgid "Send user"
msgstr "ユーザーを送信"
#: settings/serializers/email.py:27
#: settings/serializers/email.py:29
msgid "Tips: Send mail account, default SMTP account as the send account"
msgstr ""
"ヒント: 送信メールアカウント、送信アカウントとしてのデフォルトのSMTPアカウン"
"ト"
#: settings/serializers/email.py:30
#: settings/serializers/email.py:32
msgid "Test recipient"
msgstr "テスト受信者"
#: settings/serializers/email.py:31
#: settings/serializers/email.py:33
msgid "Tips: Used only as a test mail recipient"
msgstr "ヒント: テストメールの受信者としてのみ使用"
#: settings/serializers/email.py:34
#: settings/serializers/email.py:36
msgid "Use SSL"
msgstr "SSLの使用"
#: settings/serializers/email.py:35
#: settings/serializers/email.py:37
msgid "If SMTP port is 465, may be select"
msgstr "SMTPポートが465の場合は、"
#: settings/serializers/email.py:38
#: settings/serializers/email.py:40
msgid "Use TLS"
msgstr "TLSの使用"
#: settings/serializers/email.py:39
#: settings/serializers/email.py:41
msgid "If SMTP port is 587, may be select"
msgstr "SMTPポートが587の場合は、"
#: settings/serializers/email.py:42
#: settings/serializers/email.py:44
msgid "Subject prefix"
msgstr "件名プレフィックス"
#: settings/serializers/email.py:49
#: settings/serializers/email.py:51
msgid "Create user email subject"
msgstr "ユーザーメール件名の作成"
#: settings/serializers/email.py:50
#: settings/serializers/email.py:52
msgid ""
"Tips: When creating a user, send the subject of the email (eg:Create account "
"successfully)"
@ -3892,20 +3893,20 @@ msgstr ""
"ヒント: ユーザーを作成するときに、メールの件名を送信します (例: アカウントを"
"正常に作成)"
#: settings/serializers/email.py:54
#: settings/serializers/email.py:56
msgid "Create user honorific"
msgstr "ユーザー敬語の作成"
#: settings/serializers/email.py:55
#: settings/serializers/email.py:57
msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)"
msgstr ""
"ヒント: ユーザーを作成するときは、メールの敬語を送信します (例: こんにちは)"
#: settings/serializers/email.py:59
#: settings/serializers/email.py:61
msgid "Create user email content"
msgstr "ユーザーのメールコンテンツを作成する"
#: settings/serializers/email.py:60
#: settings/serializers/email.py:62
#, python-brace-format
msgid ""
"Tips: When creating a user, send the content of the email, support "
@ -3914,7 +3915,7 @@ msgstr ""
"ヒント:ユーザーの作成時にパスワード設定メールの内容を送信し、{username}{name}"
"{email}ラベルをサポートします。"
#: settings/serializers/email.py:64
#: settings/serializers/email.py:66
msgid "Tips: Email signature (eg:jumpserver)"
msgstr "ヒント: メール署名 (例: jumpserver)"
@ -4760,9 +4761,9 @@ msgid "Redis Port"
msgstr "Redis ポート"
#: terminal/models/endpoint.py:26 terminal/models/endpoint.py:67
#: terminal/serializers/endpoint.py:41 terminal/serializers/storage.py:37
#: terminal/serializers/storage.py:49 terminal/serializers/storage.py:79
#: terminal/serializers/storage.py:89 terminal/serializers/storage.py:97
#: terminal/serializers/endpoint.py:41 terminal/serializers/storage.py:38
#: terminal/serializers/storage.py:50 terminal/serializers/storage.py:80
#: terminal/serializers/storage.py:90 terminal/serializers/storage.py:98
msgid "Endpoint"
msgstr "エンドポイント"
@ -4979,67 +4980,73 @@ msgstr "終了できます"
msgid "Command amount"
msgstr "コマンド量"
#: terminal/serializers/storage.py:19
#: terminal/serializers/storage.py:20
msgid "Endpoint invalid: remove path `{}`"
msgstr "エンドポイントが無効: パス '{}' を削除"
#: terminal/serializers/storage.py:25
#: terminal/serializers/storage.py:26
msgid "Bucket"
msgstr "バケット"
#: terminal/serializers/storage.py:32 users/models/user.py:695
msgid "Secret key"
msgstr "秘密キー"
#: terminal/serializers/storage.py:30
#: xpack/plugins/cloud/serializers/account_attrs.py:15
msgid "Access key id"
msgstr "アクセスキー"
#: terminal/serializers/storage.py:64 xpack/plugins/cloud/models.py:220
#: terminal/serializers/storage.py:34
#: xpack/plugins/cloud/serializers/account_attrs.py:18
msgid "Access key secret"
msgstr "アクセスキーシークレット"
#: terminal/serializers/storage.py:65 xpack/plugins/cloud/models.py:220
msgid "Region"
msgstr "リージョン"
#: terminal/serializers/storage.py:108
#: terminal/serializers/storage.py:109
msgid "Container name"
msgstr "コンテナー名"
#: terminal/serializers/storage.py:110
#: terminal/serializers/storage.py:111
msgid "Account name"
msgstr "アカウント名"
#: terminal/serializers/storage.py:111
#: terminal/serializers/storage.py:112
msgid "Account key"
msgstr "アカウントキー"
#: terminal/serializers/storage.py:114
#: terminal/serializers/storage.py:115
msgid "Endpoint suffix"
msgstr "エンドポイントサフィックス"
#: terminal/serializers/storage.py:134
#: terminal/serializers/storage.py:135
msgid "The address format is incorrect"
msgstr "アドレス形式が正しくありません"
#: terminal/serializers/storage.py:141
#: terminal/serializers/storage.py:142
msgid "Host invalid"
msgstr "ホスト無効"
#: terminal/serializers/storage.py:144
#: terminal/serializers/storage.py:145
msgid "Port invalid"
msgstr "ポートが無効"
#: terminal/serializers/storage.py:159
#: terminal/serializers/storage.py:160
msgid "Index by date"
msgstr "日付による索引付け"
#: terminal/serializers/storage.py:160
#: terminal/serializers/storage.py:161
msgid "Whether to create an index by date"
msgstr "現在の日付に基づいてインデックスを動的に作成するかどうか"
#: terminal/serializers/storage.py:163
#: terminal/serializers/storage.py:164
msgid "Index"
msgstr "インデックス"
#: terminal/serializers/storage.py:165
#: terminal/serializers/storage.py:166
msgid "Doc type"
msgstr "Docタイプ"
#: terminal/serializers/storage.py:167
#: terminal/serializers/storage.py:168
msgid "Ignore Certificate Verification"
msgstr "証明書の検証を無視する"
@ -5328,11 +5335,11 @@ msgstr "プロセス"
msgid "TicketFlow"
msgstr "作業指示プロセス"
#: tickets/models/ticket.py:311
#: tickets/models/ticket.py:320
msgid "Please try again"
msgstr "もう一度お試しください"
#: tickets/models/ticket.py:319
#: tickets/models/ticket.py:328
msgid "Super ticket"
msgstr "スーパーチケット"
@ -5638,8 +5645,8 @@ msgstr "ここにid_rsa.pubを貼り付けます。"
msgid "Public key should not be the same as your old one."
msgstr "公開鍵は古いものと同じであってはなりません。"
#: users/forms/profile.py:150 users/serializers/profile.py:98
#: users/serializers/profile.py:181 users/serializers/profile.py:208
#: users/forms/profile.py:150 users/serializers/profile.py:100
#: users/serializers/profile.py:183 users/serializers/profile.py:210
msgid "Not a valid ssh public key"
msgstr "有効なssh公開鍵ではありません"
@ -5667,6 +5674,10 @@ msgstr "アバター"
msgid "Wechat"
msgstr "微信"
#: users/models/user.py:695
msgid "Secret key"
msgstr "秘密キー"
#: users/models/user.py:711
msgid "Source"
msgstr "ソース"
@ -5738,7 +5749,7 @@ msgstr "MFAのリセット"
msgid "The old password is incorrect"
msgstr "古いパスワードが正しくありません"
#: users/serializers/profile.py:37 users/serializers/profile.py:195
#: users/serializers/profile.py:37 users/serializers/profile.py:197
msgid "Password does not match security rules"
msgstr "パスワードがセキュリティルールと一致しない"
@ -5746,11 +5757,11 @@ msgstr "パスワードがセキュリティルールと一致しない"
msgid "The new password cannot be the last {} passwords"
msgstr "新しいパスワードを最後の {} 個のパスワードにすることはできません"
#: users/serializers/profile.py:49 users/serializers/profile.py:69
#: users/serializers/profile.py:49 users/serializers/profile.py:71
msgid "The newly set password is inconsistent"
msgstr "新しく設定されたパスワードが一致しない"
#: users/serializers/profile.py:147 users/serializers/user.py:144
#: users/serializers/profile.py:149 users/serializers/user.py:144
msgid "Is first login"
msgstr "最初のログインです"
@ -6651,48 +6662,40 @@ msgstr "有効表示"
msgid "Provider display"
msgstr "プロバイダ表示"
#: xpack/plugins/cloud/serializers/account_attrs.py:13
msgid "AccessKey ID"
msgstr "アクセスキーID"
#: xpack/plugins/cloud/serializers/account_attrs.py:16
msgid "AccessKey Secret"
msgstr "アクセスキーシークレット"
#: xpack/plugins/cloud/serializers/account_attrs.py:31
#: xpack/plugins/cloud/serializers/account_attrs.py:33
msgid "Client ID"
msgstr "クライアントID"
#: xpack/plugins/cloud/serializers/account_attrs.py:37
#: xpack/plugins/cloud/serializers/account_attrs.py:39
msgid "Tenant ID"
msgstr "テナントID"
#: xpack/plugins/cloud/serializers/account_attrs.py:40
#: xpack/plugins/cloud/serializers/account_attrs.py:42
msgid "Subscription ID"
msgstr "サブスクリプションID"
#: xpack/plugins/cloud/serializers/account_attrs.py:91
#: xpack/plugins/cloud/serializers/account_attrs.py:96
#: xpack/plugins/cloud/serializers/account_attrs.py:93
#: xpack/plugins/cloud/serializers/account_attrs.py:98
msgid "API Endpoint"
msgstr "APIエンドポイント"
#: xpack/plugins/cloud/serializers/account_attrs.py:102
#: xpack/plugins/cloud/serializers/account_attrs.py:104
msgid "Auth url"
msgstr "認証アドレス"
#: xpack/plugins/cloud/serializers/account_attrs.py:103
#: xpack/plugins/cloud/serializers/account_attrs.py:105
msgid "eg: http://openstack.example.com:5000/v3"
msgstr "例えば: http://openstack.example.com:5000/v3"
#: xpack/plugins/cloud/serializers/account_attrs.py:106
#: xpack/plugins/cloud/serializers/account_attrs.py:108
msgid "User domain"
msgstr "ユーザードメイン"
#: xpack/plugins/cloud/serializers/account_attrs.py:113
#: xpack/plugins/cloud/serializers/account_attrs.py:115
msgid "Service account key"
msgstr "サービスアカウントキー"
#: xpack/plugins/cloud/serializers/account_attrs.py:114
#: xpack/plugins/cloud/serializers/account_attrs.py:116
msgid "The file is in JSON format"
msgstr "ファイルはJSON形式です。"
@ -6811,6 +6814,9 @@ msgstr "究極のエディション"
msgid "Community edition"
msgstr "コミュニティ版"
#~ msgid "AccessKey ID"
#~ msgstr "アクセスキーID"
#~ msgid "Unknown ip"
#~ msgstr "不明なip"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d30f8d3abc215c35bb2dd889374eeef896a193f8010ccd5ae8e27aa408f045c7
size 105337

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-17 18:02+0800\n"
"POT-Creation-Date: 2022-05-19 13:16+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"
@ -128,7 +128,7 @@ msgstr "系统用户"
#: assets/models/asset.py:386 assets/models/authbook.py:19
#: assets/models/backup.py:31 assets/models/cmd_filter.py:38
#: assets/models/gathered_user.py:14 assets/serializers/label.py:30
#: assets/serializers/system_user.py:264 audits/models.py:39
#: assets/serializers/system_user.py:269 audits/models.py:39
#: perms/models/asset_permission.py:23 terminal/backends/command/models.py:21
#: terminal/backends/command/serializers.py:13 terminal/models/session.py:46
#: terminal/notifications.py:90
@ -161,7 +161,7 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. "
#: users/templates/users/_msg_user_created.html:12
#: xpack/plugins/change_auth_plan/models/asset.py:34
#: xpack/plugins/change_auth_plan/models/asset.py:195
#: xpack/plugins/cloud/serializers/account_attrs.py:22
#: xpack/plugins/cloud/serializers/account_attrs.py:24
msgid "Username"
msgstr "用户名"
@ -175,9 +175,9 @@ msgstr ""
"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (支持网域)"
#: acls/serializers/login_asset_acl.py:31 acls/serializers/rules/rules.py:33
#: applications/serializers/attrs/application_type/mysql_workbench.py:17
#: applications/serializers/attrs/application_type/mysql_workbench.py:18
#: assets/models/asset.py:210 assets/models/domain.py:60
#: assets/serializers/account.py:13
#: assets/serializers/account.py:14
#: authentication/templates/authentication/_msg_oauth_bind.html:12
#: authentication/templates/authentication/_msg_rest_password_success.html:8
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8
@ -186,7 +186,7 @@ msgid "IP"
msgstr "IP"
#: acls/serializers/login_asset_acl.py:35 assets/models/asset.py:211
#: assets/serializers/account.py:14 assets/serializers/gathered_user.py:23
#: assets/serializers/account.py:15 assets/serializers/gathered_user.py:23
#: settings/serializers/terminal.py:7
msgid "Hostname"
msgstr "主机名"
@ -199,7 +199,7 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. 可选的协议
#: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:213
#: assets/models/domain.py:62 assets/models/user.py:248
#: terminal/serializers/session.py:30 terminal/serializers/storage.py:67
#: terminal/serializers/session.py:30 terminal/serializers/storage.py:68
msgid "Protocol"
msgstr "协议"
@ -240,7 +240,7 @@ msgstr "应用管理"
#: applications/const.py:8
#: applications/serializers/attrs/application_category/db.py:14
#: applications/serializers/attrs/application_type/mysql_workbench.py:25
#: applications/serializers/attrs/application_type/mysql_workbench.py:26
#: xpack/plugins/change_auth_plan/models/app.py:32
msgid "Database"
msgstr "数据库"
@ -336,7 +336,7 @@ msgstr "类别名称"
#: applications/serializers/application.py:71
#: applications/serializers/application.py:102
#: assets/serializers/cmd_filter.py:34 assets/serializers/system_user.py:27
#: assets/serializers/cmd_filter.py:34 assets/serializers/system_user.py:29
#: audits/serializers.py:29 perms/serializers/application/permission.py:19
#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:33
#: tickets/serializers/ticket/ticket.py:21
@ -348,7 +348,7 @@ msgstr "类型名称"
#: assets/models/base.py:181 assets/models/cluster.py:26
#: assets/models/domain.py:26 assets/models/gathered_user.py:19
#: assets/models/group.py:22 assets/models/label.py:25
#: assets/serializers/account.py:18 assets/serializers/cmd_filter.py:28
#: assets/serializers/account.py:19 assets/serializers/cmd_filter.py:28
#: assets/serializers/cmd_filter.py:48 common/db/models.py:113
#: common/mixins/models.py:50 ops/models/adhoc.py:39 ops/models/command.py:30
#: orgs/models.py:67 orgs/models.py:217 perms/models/base.py:92
@ -358,7 +358,7 @@ msgid "Date created"
msgstr "创建日期"
#: applications/serializers/application.py:104 assets/models/base.py:182
#: assets/models/gathered_user.py:20 assets/serializers/account.py:21
#: assets/models/gathered_user.py:20 assets/serializers/account.py:22
#: assets/serializers/cmd_filter.py:29 assets/serializers/cmd_filter.py:49
#: common/db/models.py:114 common/mixins/models.py:51 ops/models/adhoc.py:40
#: orgs/models.py:218
@ -382,88 +382,88 @@ msgstr "集群"
#: applications/serializers/attrs/application_category/db.py:11
#: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14
#: terminal/models/endpoint.py:11
#: xpack/plugins/cloud/serializers/account_attrs.py:68
#: xpack/plugins/cloud/serializers/account_attrs.py:70
msgid "Host"
msgstr "主机"
#: applications/serializers/attrs/application_category/db.py:12
#: applications/serializers/attrs/application_type/mongodb.py:10
#: applications/serializers/attrs/application_type/mysql.py:10
#: applications/serializers/attrs/application_type/mysql_workbench.py:21
#: applications/serializers/attrs/application_type/mysql_workbench.py:22
#: applications/serializers/attrs/application_type/oracle.py:10
#: applications/serializers/attrs/application_type/pgsql.py:10
#: applications/serializers/attrs/application_type/redis.py:10
#: applications/serializers/attrs/application_type/sqlserver.py:10
#: assets/models/asset.py:214 assets/models/domain.py:61
#: settings/serializers/auth/radius.py:15
#: xpack/plugins/cloud/serializers/account_attrs.py:69
#: xpack/plugins/cloud/serializers/account_attrs.py:71
msgid "Port"
msgstr "端口"
#: applications/serializers/attrs/application_category/remote_app.py:39
#: applications/serializers/attrs/application_type/chrome.py:13
#: applications/serializers/attrs/application_type/mysql_workbench.py:13
#: applications/serializers/attrs/application_type/vmware_client.py:17
#: applications/serializers/attrs/application_type/chrome.py:14
#: applications/serializers/attrs/application_type/mysql_workbench.py:14
#: applications/serializers/attrs/application_type/vmware_client.py:18
msgid "Application path"
msgstr "应用路径"
#: applications/serializers/attrs/application_category/remote_app.py:44
#: assets/serializers/system_user.py:163
#: assets/serializers/system_user.py:168
#: xpack/plugins/change_auth_plan/serializers/asset.py:66
#: xpack/plugins/change_auth_plan/serializers/asset.py:69
#: xpack/plugins/change_auth_plan/serializers/asset.py:72
#: xpack/plugins/change_auth_plan/serializers/asset.py:103
#: xpack/plugins/cloud/serializers/account_attrs.py:52
#: xpack/plugins/cloud/serializers/account_attrs.py:54
msgid "This field is required."
msgstr "该字段是必填项。"
#: applications/serializers/attrs/application_type/chrome.py:16
#: applications/serializers/attrs/application_type/vmware_client.py:21
#: applications/serializers/attrs/application_type/chrome.py:18
#: applications/serializers/attrs/application_type/vmware_client.py:22
msgid "Target URL"
msgstr "目标URL"
#: applications/serializers/attrs/application_type/chrome.py:19
#: applications/serializers/attrs/application_type/chrome.py:22
msgid "Chrome username"
msgstr "Chrome 用户名"
#: applications/serializers/attrs/application_type/chrome.py:22
#: applications/serializers/attrs/application_type/chrome.py:29
#: applications/serializers/attrs/application_type/chrome.py:26
#: applications/serializers/attrs/application_type/chrome.py:33
msgid "Chrome password"
msgstr "Chrome 密码"
#: applications/serializers/attrs/application_type/custom.py:11
#: applications/serializers/attrs/application_type/custom.py:12
msgid "Operating parameter"
msgstr "运行参数"
#: applications/serializers/attrs/application_type/custom.py:15
#: applications/serializers/attrs/application_type/custom.py:16
msgid "Target url"
msgstr "目标URL"
#: applications/serializers/attrs/application_type/custom.py:19
#: applications/serializers/attrs/application_type/custom.py:20
msgid "Custom Username"
msgstr "自定义用户名"
#: applications/serializers/attrs/application_type/custom.py:23
#: applications/serializers/attrs/application_type/custom.py:30
#: applications/serializers/attrs/application_type/custom.py:25
#: applications/serializers/attrs/application_type/custom.py:32
#: xpack/plugins/change_auth_plan/models/base.py:27
msgid "Custom password"
msgstr "自定义密码"
#: applications/serializers/attrs/application_type/mysql_workbench.py:29
#: applications/serializers/attrs/application_type/mysql_workbench.py:30
msgid "Mysql workbench username"
msgstr "Mysql 工作台 用户名"
#: applications/serializers/attrs/application_type/mysql_workbench.py:33
#: applications/serializers/attrs/application_type/mysql_workbench.py:40
#: applications/serializers/attrs/application_type/mysql_workbench.py:35
#: applications/serializers/attrs/application_type/mysql_workbench.py:42
msgid "Mysql workbench password"
msgstr "Mysql 工作台 密码"
#: applications/serializers/attrs/application_type/vmware_client.py:25
#: applications/serializers/attrs/application_type/vmware_client.py:26
msgid "Vmware username"
msgstr "Vmware 用户名"
#: applications/serializers/attrs/application_type/vmware_client.py:29
#: applications/serializers/attrs/application_type/vmware_client.py:36
#: applications/serializers/attrs/application_type/vmware_client.py:31
#: applications/serializers/attrs/application_type/vmware_client.py:38
msgid "Vmware password"
msgstr "Vmware 密码"
@ -505,7 +505,7 @@ msgid "Internal"
msgstr "内部的"
#: assets/models/asset.py:162 assets/models/asset.py:216
#: assets/serializers/account.py:15 assets/serializers/asset.py:63
#: assets/serializers/account.py:16 assets/serializers/asset.py:63
#: perms/serializers/asset/user_permission.py:43
msgid "Platform"
msgstr "系统平台"
@ -566,7 +566,7 @@ msgstr "系统架构"
msgid "Hostname raw"
msgstr "主机名原始"
#: assets/models/asset.py:215 assets/serializers/account.py:16
#: assets/models/asset.py:215 assets/serializers/account.py:17
#: assets/serializers/asset.py:65 perms/serializers/asset/user_permission.py:41
#: xpack/plugins/cloud/models.py:107 xpack/plugins/cloud/serializers/task.py:42
msgid "Protocols"
@ -745,7 +745,7 @@ msgstr "成功"
msgid "Failed"
msgstr "失败"
#: assets/models/base.py:38 assets/serializers/domain.py:46
#: assets/models/base.py:38 assets/serializers/domain.py:47
msgid "Connectivity"
msgstr "可连接性"
@ -764,7 +764,7 @@ msgstr "校验日期"
#: xpack/plugins/change_auth_plan/models/base.py:42
#: xpack/plugins/change_auth_plan/models/base.py:121
#: xpack/plugins/change_auth_plan/models/base.py:196
#: xpack/plugins/cloud/serializers/account_attrs.py:24
#: xpack/plugins/cloud/serializers/account_attrs.py:26
msgid "Password"
msgstr "密码"
@ -828,7 +828,7 @@ msgstr "默认Cluster"
msgid "User group"
msgstr "用户组"
#: assets/models/cmd_filter.py:60 assets/serializers/system_user.py:54
#: assets/models/cmd_filter.py:60 assets/serializers/system_user.py:59
msgid "Command filter"
msgstr "命令过滤器"
@ -953,7 +953,7 @@ msgstr "全称"
msgid "Parent key"
msgstr "ssh私钥"
#: assets/models/node.py:559 assets/serializers/system_user.py:263
#: assets/models/node.py:559 assets/serializers/system_user.py:268
#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:69
msgid "Node"
msgstr "节点"
@ -978,7 +978,7 @@ msgstr "普通用户"
msgid "Username same with user"
msgstr "用户名与用户相同"
#: assets/models/user.py:240 assets/serializers/domain.py:29
#: assets/models/user.py:240 assets/serializers/domain.py:30
#: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/change_auth_plan/models/asset.py:39
msgid "Assets"
@ -1012,7 +1012,8 @@ msgstr "认证方式"
msgid "SFTP Root"
msgstr "SFTP根路径"
#: assets/models/user.py:254 authentication/models.py:49
#: assets/models/user.py:254 assets/serializers/system_user.py:32
#: authentication/models.py:49
msgid "Token"
msgstr "Token"
@ -1060,7 +1061,7 @@ msgstr ""
"{} - 账号备份任务已完成: 未设置加密密码 - 请前往个人信息 -> 文件加密密码中设"
"置加密密码"
#: assets/serializers/account.py:40 assets/serializers/account.py:83
#: assets/serializers/account.py:41 assets/serializers/account.py:84
msgid "System user display"
msgstr "系统用户名称"
@ -1135,17 +1136,17 @@ msgstr "动作名称"
msgid "Pattern"
msgstr "模式"
#: assets/serializers/domain.py:13 assets/serializers/label.py:12
#: assets/serializers/system_user.py:59
#: assets/serializers/domain.py:14 assets/serializers/label.py:12
#: assets/serializers/system_user.py:64
#: perms/serializers/asset/permission.py:49
msgid "Assets amount"
msgstr "资产数量"
#: assets/serializers/domain.py:14
#: assets/serializers/domain.py:15
msgid "Applications amount"
msgstr "应用数量"
#: assets/serializers/domain.py:15
#: assets/serializers/domain.py:16
msgid "Gateways count"
msgstr "网关数量"
@ -1161,78 +1162,78 @@ msgstr "不能包含: /"
msgid "The same level node name cannot be the same"
msgstr "同级别节点名字不能重复"
#: assets/serializers/system_user.py:28
#: assets/serializers/system_user.py:30
msgid "SSH key fingerprint"
msgstr "密钥指纹"
#: assets/serializers/system_user.py:30
#: assets/serializers/system_user.py:35
#: perms/serializers/application/permission.py:46
msgid "Apps amount"
msgstr "应用数量"
#: assets/serializers/system_user.py:58
#: assets/serializers/system_user.py:63
#: perms/serializers/asset/permission.py:50
msgid "Nodes amount"
msgstr "节点数量"
#: assets/serializers/system_user.py:60 assets/serializers/system_user.py:265
#: assets/serializers/system_user.py:65 assets/serializers/system_user.py:270
msgid "Login mode display"
msgstr "认证方式名称"
#: assets/serializers/system_user.py:62
#: assets/serializers/system_user.py:67
msgid "Ad domain"
msgstr "Ad 网域"
#: assets/serializers/system_user.py:63
#: assets/serializers/system_user.py:68
msgid "Is asset protocol"
msgstr "资产协议"
#: assets/serializers/system_user.py:64
#: assets/serializers/system_user.py:69
msgid "Only ssh and automatic login system users are supported"
msgstr "仅支持ssh协议和自动登录的系统用户"
#: assets/serializers/system_user.py:104
#: assets/serializers/system_user.py:109
msgid "Username same with user with protocol {} only allow 1"
msgstr "用户名和用户相同的一种协议只允许存在一个"
#: assets/serializers/system_user.py:117 common/validators.py:14
#: assets/serializers/system_user.py:122 common/validators.py:14
msgid "Special char not allowed"
msgstr "不能包含特殊字符"
#: assets/serializers/system_user.py:127
#: assets/serializers/system_user.py:132
msgid "* Automatic login mode must fill in the username."
msgstr "自动登录模式,必须填写用户名"
#: assets/serializers/system_user.py:142
#: assets/serializers/system_user.py:147
msgid "Path should starts with /"
msgstr "路径应该以 / 开头"
#: assets/serializers/system_user.py:154
#: assets/serializers/system_user.py:159
msgid "Password or private key required"
msgstr "密码或密钥密码需要一个"
#: assets/serializers/system_user.py:168
#: assets/serializers/system_user.py:173
msgid "Only ssh protocol system users are allowed"
msgstr "仅允许ssh协议的系统用户"
#: assets/serializers/system_user.py:172
#: assets/serializers/system_user.py:177
msgid "The protocol must be consistent with the current user: {}"
msgstr "协议必须和当前用户保持一致: {}"
#: assets/serializers/system_user.py:176
#: assets/serializers/system_user.py:181
msgid "Only system users with automatic login are allowed"
msgstr "仅允许自动登录的系统用户"
#: assets/serializers/system_user.py:281
#: assets/serializers/system_user.py:289
msgid "System user name"
msgstr "系统用户名称"
#: assets/serializers/system_user.py:282 orgs/mixins/serializers.py:26
#: assets/serializers/system_user.py:290 orgs/mixins/serializers.py:26
#: rbac/serializers/rolebinding.py:23
msgid "Org name"
msgstr "组织名称"
#: assets/serializers/system_user.py:291
#: assets/serializers/system_user.py:299
msgid "Asset hostname"
msgstr "资产主机名"
@ -1483,7 +1484,7 @@ msgstr "用户代理"
#: audits/models.py:126
#: authentication/templates/authentication/_mfa_confirm_modal.html:14
#: users/forms/profile.py:65 users/models/user.py:684
#: users/serializers/profile.py:124
#: users/serializers/profile.py:126
msgid "MFA"
msgstr "MFA"
@ -1530,7 +1531,7 @@ msgstr "主机名称"
msgid "Result"
msgstr "结果"
#: audits/serializers.py:98 terminal/serializers/storage.py:156
#: audits/serializers.py:98 terminal/serializers/storage.py:157
msgid "Hosts"
msgstr "主机"
@ -2031,9 +2032,9 @@ msgstr "该 MFA ({}) 方式没有启用"
msgid "Please change your password"
msgstr "请修改密码"
#: authentication/models.py:34 terminal/serializers/storage.py:28
#: authentication/models.py:34
msgid "Access key"
msgstr "API key"
msgstr "Access key"
#: authentication/models.py:41
msgid "Private Token"
@ -2120,13 +2121,13 @@ msgstr "显示"
#: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/security.py:39 users/models/user.py:556
#: users/serializers/profile.py:114 users/templates/users/mfa_setting.html:61
#: users/serializers/profile.py:116 users/templates/users/mfa_setting.html:61
#: users/templates/users/user_verify_mfa.html:36
msgid "Disable"
msgstr "禁用"
#: authentication/templates/authentication/_access_key_modal.html:67
#: users/models/user.py:557 users/serializers/profile.py:115
#: users/models/user.py:557 users/serializers/profile.py:117
#: users/templates/users/mfa_setting.html:26
#: users/templates/users/mfa_setting.html:68
msgid "Enable"
@ -2347,15 +2348,15 @@ msgstr "该钉钉已经绑定其他用户"
msgid "Binding DingTalk successfully"
msgstr "绑定 钉钉 成功"
#: authentication/views/dingtalk.py:239 authentication/views/dingtalk.py:293
#: authentication/views/dingtalk.py:240 authentication/views/dingtalk.py:294
msgid "Failed to get user from DingTalk"
msgstr "从钉钉获取用户失败"
#: authentication/views/dingtalk.py:245 authentication/views/dingtalk.py:299
#: authentication/views/dingtalk.py:246 authentication/views/dingtalk.py:300
msgid "DingTalk is not bound"
msgstr "钉钉没有绑定"
#: authentication/views/dingtalk.py:246 authentication/views/dingtalk.py:300
#: authentication/views/dingtalk.py:247 authentication/views/dingtalk.py:301
msgid "Please login with a password and then bind the DingTalk"
msgstr "请使用密码登录,然后绑定钉钉"
@ -2384,15 +2385,15 @@ msgstr "飞书"
msgid "Binding FeiShu successfully"
msgstr "绑定 飞书 成功"
#: authentication/views/feishu.py:200
#: authentication/views/feishu.py:201
msgid "Failed to get user from FeiShu"
msgstr "从飞书获取用户失败"
#: authentication/views/feishu.py:206
#: authentication/views/feishu.py:207
msgid "FeiShu is not bound"
msgstr "没有绑定飞书"
#: authentication/views/feishu.py:207
#: authentication/views/feishu.py:208
msgid "Please login with a password and then bind the FeiShu"
msgstr "请使用密码登录,然后绑定飞书"
@ -3210,7 +3211,7 @@ msgstr "组织角色绑定"
msgid "System role binding"
msgstr "系统角色绑定"
#: rbac/serializers/permission.py:26 users/serializers/profile.py:130
#: rbac/serializers/permission.py:26 users/serializers/profile.py:132
msgid "Perms"
msgstr "权限"
@ -3436,7 +3437,7 @@ msgstr "启用登录跳转提示"
msgid "Enable CAS Auth"
msgstr "启用 CAS 认证"
#: settings/serializers/auth/cas.py:11 settings/serializers/auth/oidc.py:40
#: settings/serializers/auth/cas.py:11 settings/serializers/auth/oidc.py:42
msgid "Server url"
msgstr "服务端地址"
@ -3464,11 +3465,11 @@ msgstr "映射属性"
msgid "Create user if not"
msgstr "创建用户(如果不存在)"
#: settings/serializers/auth/dingtalk.py:11
#: settings/serializers/auth/dingtalk.py:13
msgid "Enable DingTalk Auth"
msgstr "启用钉钉认证"
#: settings/serializers/auth/feishu.py:10
#: settings/serializers/auth/feishu.py:12
msgid "Enable FeiShu Auth"
msgstr "启用飞书认证"
@ -3525,96 +3526,96 @@ msgstr "搜索分页数量"
msgid "Enable LDAP auth"
msgstr "启用 LDAP 认证"
#: settings/serializers/auth/oidc.py:12
#: settings/serializers/auth/oidc.py:14
msgid "Base site url"
msgstr "JumpServer 地址"
#: settings/serializers/auth/oidc.py:15
#: settings/serializers/auth/oidc.py:17
msgid "Client Id"
msgstr "客户端 ID"
#: settings/serializers/auth/oidc.py:18
#: xpack/plugins/cloud/serializers/account_attrs.py:34
#: settings/serializers/auth/oidc.py:20
#: xpack/plugins/cloud/serializers/account_attrs.py:36
msgid "Client Secret"
msgstr "客户端密钥"
#: settings/serializers/auth/oidc.py:26
#: settings/serializers/auth/oidc.py:28
msgid "Client authentication method"
msgstr "客户端认证方式"
#: settings/serializers/auth/oidc.py:28
#: settings/serializers/auth/oidc.py:30
msgid "Share session"
msgstr "共享会话"
#: settings/serializers/auth/oidc.py:30
#: settings/serializers/auth/oidc.py:32
msgid "Ignore ssl verification"
msgstr "忽略 SSL 证书验证"
#: settings/serializers/auth/oidc.py:37
#: settings/serializers/auth/oidc.py:39
msgid "Use Keycloak"
msgstr "使用 Keycloak"
#: settings/serializers/auth/oidc.py:43
#: settings/serializers/auth/oidc.py:45
msgid "Realm name"
msgstr "域"
#: settings/serializers/auth/oidc.py:49
#: settings/serializers/auth/oidc.py:51
msgid "Enable OPENID Auth"
msgstr "启用 OIDC 认证"
#: settings/serializers/auth/oidc.py:51
#: settings/serializers/auth/oidc.py:53
msgid "Provider endpoint"
msgstr "端点地址"
#: settings/serializers/auth/oidc.py:54
#: settings/serializers/auth/oidc.py:56
msgid "Provider auth endpoint"
msgstr "授权端点地址"
#: settings/serializers/auth/oidc.py:57
#: settings/serializers/auth/oidc.py:59
msgid "Provider token endpoint"
msgstr "token 端点地址"
#: settings/serializers/auth/oidc.py:60
#: settings/serializers/auth/oidc.py:62
msgid "Provider jwks endpoint"
msgstr "jwks 端点地址"
#: settings/serializers/auth/oidc.py:63
#: settings/serializers/auth/oidc.py:65
msgid "Provider userinfo endpoint"
msgstr "用户信息端点地址"
#: settings/serializers/auth/oidc.py:66
#: settings/serializers/auth/oidc.py:68
msgid "Provider end session endpoint"
msgstr "注销会话端点地址"
#: settings/serializers/auth/oidc.py:69
#: settings/serializers/auth/oidc.py:71
msgid "Provider sign alg"
msgstr "签名算法"
#: settings/serializers/auth/oidc.py:72
#: settings/serializers/auth/oidc.py:74
msgid "Provider sign key"
msgstr "签名 Key"
#: settings/serializers/auth/oidc.py:74
#: settings/serializers/auth/oidc.py:76
msgid "Scopes"
msgstr "连接范围"
#: settings/serializers/auth/oidc.py:76
#: settings/serializers/auth/oidc.py:78
msgid "Id token max age"
msgstr "令牌有效时间"
#: settings/serializers/auth/oidc.py:79
#: settings/serializers/auth/oidc.py:81
msgid "Id token include claims"
msgstr "声明"
#: settings/serializers/auth/oidc.py:81
#: settings/serializers/auth/oidc.py:83
msgid "Use state"
msgstr "使用状态"
#: settings/serializers/auth/oidc.py:82
#: settings/serializers/auth/oidc.py:84
msgid "Use nonce"
msgstr "临时使用"
#: settings/serializers/auth/oidc.py:84 settings/serializers/auth/saml2.py:33
#: settings/serializers/auth/oidc.py:86 settings/serializers/auth/saml2.py:33
msgid "Always update user"
msgstr "总是更新用户信息"
@ -3650,25 +3651,25 @@ msgstr "SP 密钥"
msgid "SP cert"
msgstr "SP 证书"
#: settings/serializers/auth/sms.py:10
#: settings/serializers/auth/sms.py:11
msgid "Enable SMS"
msgstr "启用 SMS"
#: settings/serializers/auth/sms.py:12
#: settings/serializers/auth/sms.py:13
msgid "SMS provider"
msgstr "短信服务商"
#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:35
#: settings/serializers/auth/sms.py:43 settings/serializers/email.py:63
#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36
#: settings/serializers/auth/sms.py:44 settings/serializers/email.py:65
msgid "Signature"
msgstr "签名"
#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36
#: settings/serializers/auth/sms.py:44
#: settings/serializers/auth/sms.py:19 settings/serializers/auth/sms.py:37
#: settings/serializers/auth/sms.py:45
msgid "Template code"
msgstr "模板"
#: settings/serializers/auth/sms.py:22
#: settings/serializers/auth/sms.py:23
msgid "Test phone"
msgstr "测试手机号"
@ -3688,7 +3689,7 @@ msgstr "Token 有效期"
msgid "Unit: second"
msgstr "单位: 秒"
#: settings/serializers/auth/wecom.py:11
#: settings/serializers/auth/wecom.py:13
msgid "Enable WeCom Auth"
msgstr "启用企业微信认证"
@ -3782,85 +3783,85 @@ msgstr ""
"单位:天。 会话、录像、命令记录超过该时长将会被删除(仅影响数据库存储, oss等不"
"受影响)"
#: settings/serializers/email.py:18
#: settings/serializers/email.py:20
msgid "SMTP host"
msgstr "SMTP 主机"
#: settings/serializers/email.py:19
#: settings/serializers/email.py:21
msgid "SMTP port"
msgstr "SMTP 端口"
#: settings/serializers/email.py:20
#: settings/serializers/email.py:22
msgid "SMTP account"
msgstr "SMTP 账号"
#: settings/serializers/email.py:22
#: settings/serializers/email.py:24
msgid "SMTP password"
msgstr "SMTP 密码"
#: settings/serializers/email.py:23
#: settings/serializers/email.py:25
msgid "Tips: Some provider use token except password"
msgstr "提示:一些邮件提供商需要输入的是授权码"
#: settings/serializers/email.py:26
#: settings/serializers/email.py:28
msgid "Send user"
msgstr "发件人"
#: settings/serializers/email.py:27
#: settings/serializers/email.py:29
msgid "Tips: Send mail account, default SMTP account as the send account"
msgstr "提示:发送邮件账号,默认使用 SMTP 账号作为发送账号"
#: settings/serializers/email.py:30
#: settings/serializers/email.py:32
msgid "Test recipient"
msgstr "测试收件人"
#: settings/serializers/email.py:31
#: settings/serializers/email.py:33
msgid "Tips: Used only as a test mail recipient"
msgstr "提示:仅用来作为测试邮件收件人"
#: settings/serializers/email.py:34
#: settings/serializers/email.py:36
msgid "Use SSL"
msgstr "使用 SSL"
#: settings/serializers/email.py:35
#: settings/serializers/email.py:37
msgid "If SMTP port is 465, may be select"
msgstr "如果SMTP端口是465通常需要启用 SSL"
#: settings/serializers/email.py:38
#: settings/serializers/email.py:40
msgid "Use TLS"
msgstr "使用 TLS"
#: settings/serializers/email.py:39
#: settings/serializers/email.py:41
msgid "If SMTP port is 587, may be select"
msgstr "如果SMTP端口是587通常需要启用 TLS"
#: settings/serializers/email.py:42
#: settings/serializers/email.py:44
msgid "Subject prefix"
msgstr "主题前缀"
#: settings/serializers/email.py:49
#: settings/serializers/email.py:51
msgid "Create user email subject"
msgstr "邮件主题"
#: settings/serializers/email.py:50
#: settings/serializers/email.py:52
msgid ""
"Tips: When creating a user, send the subject of the email (eg:Create account "
"successfully)"
msgstr "提示: 创建用户时,发送设置密码邮件的主题 (例如: 创建用户成功)"
#: settings/serializers/email.py:54
#: settings/serializers/email.py:56
msgid "Create user honorific"
msgstr "邮件问候语"
#: settings/serializers/email.py:55
#: settings/serializers/email.py:57
msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)"
msgstr "提示: 创建用户时,发送设置密码邮件的敬语 (例如: 你好)"
#: settings/serializers/email.py:59
#: settings/serializers/email.py:61
msgid "Create user email content"
msgstr "邮件的内容"
#: settings/serializers/email.py:60
#: settings/serializers/email.py:62
#, python-brace-format
msgid ""
"Tips: When creating a user, send the content of the email, support "
@ -3868,7 +3869,7 @@ msgid ""
msgstr ""
"提示: 创建用户时,发送设置密码邮件的内容, 支持 {username} {name} {email} 标签"
#: settings/serializers/email.py:64
#: settings/serializers/email.py:66
msgid "Tips: Email signature (eg:jumpserver)"
msgstr "邮件署名 (如:jumpserver)"
@ -4688,9 +4689,9 @@ msgid "Redis Port"
msgstr "Redis 端口"
#: terminal/models/endpoint.py:26 terminal/models/endpoint.py:67
#: terminal/serializers/endpoint.py:41 terminal/serializers/storage.py:37
#: terminal/serializers/storage.py:49 terminal/serializers/storage.py:79
#: terminal/serializers/storage.py:89 terminal/serializers/storage.py:97
#: terminal/serializers/endpoint.py:41 terminal/serializers/storage.py:38
#: terminal/serializers/storage.py:50 terminal/serializers/storage.py:80
#: terminal/serializers/storage.py:90 terminal/serializers/storage.py:98
msgid "Endpoint"
msgstr "端点"
@ -4907,67 +4908,73 @@ msgstr "是否可中断"
msgid "Command amount"
msgstr "命令数量"
#: terminal/serializers/storage.py:19
#: terminal/serializers/storage.py:20
msgid "Endpoint invalid: remove path `{}`"
msgstr "端点无效: 移除路径 `{}`"
#: terminal/serializers/storage.py:25
#: terminal/serializers/storage.py:26
msgid "Bucket"
msgstr "桶名称"
#: terminal/serializers/storage.py:32 users/models/user.py:695
msgid "Secret key"
msgstr "密钥"
#: terminal/serializers/storage.py:30
#: xpack/plugins/cloud/serializers/account_attrs.py:15
msgid "Access key id"
msgstr "访问密钥 ID(AK)"
#: terminal/serializers/storage.py:64 xpack/plugins/cloud/models.py:220
#: terminal/serializers/storage.py:34
#: xpack/plugins/cloud/serializers/account_attrs.py:18
msgid "Access key secret"
msgstr "访问密钥密文(SK)"
#: terminal/serializers/storage.py:65 xpack/plugins/cloud/models.py:220
msgid "Region"
msgstr "地域"
#: terminal/serializers/storage.py:108
#: terminal/serializers/storage.py:109
msgid "Container name"
msgstr "容器名称"
#: terminal/serializers/storage.py:110
#: terminal/serializers/storage.py:111
msgid "Account name"
msgstr "账号名称"
#: terminal/serializers/storage.py:111
#: terminal/serializers/storage.py:112
msgid "Account key"
msgstr "账号密钥"
#: terminal/serializers/storage.py:114
#: terminal/serializers/storage.py:115
msgid "Endpoint suffix"
msgstr "端点后缀"
#: terminal/serializers/storage.py:134
#: terminal/serializers/storage.py:135
msgid "The address format is incorrect"
msgstr "地址格式不正确"
#: terminal/serializers/storage.py:141
#: terminal/serializers/storage.py:142
msgid "Host invalid"
msgstr "主机无效"
#: terminal/serializers/storage.py:144
#: terminal/serializers/storage.py:145
msgid "Port invalid"
msgstr "端口无效"
#: terminal/serializers/storage.py:159
#: terminal/serializers/storage.py:160
msgid "Index by date"
msgstr "按日期建索引"
#: terminal/serializers/storage.py:160
#: terminal/serializers/storage.py:161
msgid "Whether to create an index by date"
msgstr "是否根据日期动态建立索引"
#: terminal/serializers/storage.py:163
#: terminal/serializers/storage.py:164
msgid "Index"
msgstr "索引"
#: terminal/serializers/storage.py:165
#: terminal/serializers/storage.py:166
msgid "Doc type"
msgstr "文档类型"
#: terminal/serializers/storage.py:167
#: terminal/serializers/storage.py:168
msgid "Ignore Certificate Verification"
msgstr "忽略证书认证"
@ -5254,11 +5261,11 @@ msgstr "流程"
msgid "TicketFlow"
msgstr "工单流程"
#: tickets/models/ticket.py:311
#: tickets/models/ticket.py:320
msgid "Please try again"
msgstr "请再次尝试"
#: tickets/models/ticket.py:319
#: tickets/models/ticket.py:328
msgid "Super ticket"
msgstr "超级工单"
@ -5560,8 +5567,8 @@ msgstr "复制你的公钥到这里"
msgid "Public key should not be the same as your old one."
msgstr "不能和原来的密钥相同"
#: users/forms/profile.py:150 users/serializers/profile.py:98
#: users/serializers/profile.py:181 users/serializers/profile.py:208
#: users/forms/profile.py:150 users/serializers/profile.py:100
#: users/serializers/profile.py:183 users/serializers/profile.py:210
msgid "Not a valid ssh public key"
msgstr "SSH密钥不合法"
@ -5589,6 +5596,10 @@ msgstr "头像"
msgid "Wechat"
msgstr "微信"
#: users/models/user.py:695
msgid "Secret key"
msgstr "Secret key"
#: users/models/user.py:711
msgid "Source"
msgstr "来源"
@ -5660,7 +5671,7 @@ msgstr "重置 MFA"
msgid "The old password is incorrect"
msgstr "旧密码错误"
#: users/serializers/profile.py:37 users/serializers/profile.py:195
#: users/serializers/profile.py:37 users/serializers/profile.py:197
msgid "Password does not match security rules"
msgstr "密码不满足安全规则"
@ -5668,11 +5679,11 @@ msgstr "密码不满足安全规则"
msgid "The new password cannot be the last {} passwords"
msgstr "新密码不能是最近 {} 次的密码"
#: users/serializers/profile.py:49 users/serializers/profile.py:69
#: users/serializers/profile.py:49 users/serializers/profile.py:71
msgid "The newly set password is inconsistent"
msgstr "两次密码不一致"
#: users/serializers/profile.py:147 users/serializers/user.py:144
#: users/serializers/profile.py:149 users/serializers/user.py:144
msgid "Is first login"
msgstr "首次登录"
@ -6560,48 +6571,40 @@ msgstr "有效性显示"
msgid "Provider display"
msgstr "服务商显示"
#: xpack/plugins/cloud/serializers/account_attrs.py:13
msgid "AccessKey ID"
msgstr "Access key ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:16
msgid "AccessKey Secret"
msgstr "Access key secret"
#: xpack/plugins/cloud/serializers/account_attrs.py:31
#: xpack/plugins/cloud/serializers/account_attrs.py:33
msgid "Client ID"
msgstr "客户端 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:37
#: xpack/plugins/cloud/serializers/account_attrs.py:39
msgid "Tenant ID"
msgstr "租户 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:40
#: xpack/plugins/cloud/serializers/account_attrs.py:42
msgid "Subscription ID"
msgstr "订阅 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:91
#: xpack/plugins/cloud/serializers/account_attrs.py:96
#: xpack/plugins/cloud/serializers/account_attrs.py:93
#: xpack/plugins/cloud/serializers/account_attrs.py:98
msgid "API Endpoint"
msgstr "API 端点"
#: xpack/plugins/cloud/serializers/account_attrs.py:102
#: xpack/plugins/cloud/serializers/account_attrs.py:104
msgid "Auth url"
msgstr "认证地址"
#: xpack/plugins/cloud/serializers/account_attrs.py:103
#: xpack/plugins/cloud/serializers/account_attrs.py:105
msgid "eg: http://openstack.example.com:5000/v3"
msgstr "如: http://openstack.example.com:5000/v3"
#: xpack/plugins/cloud/serializers/account_attrs.py:106
#: xpack/plugins/cloud/serializers/account_attrs.py:108
msgid "User domain"
msgstr "用户域"
#: xpack/plugins/cloud/serializers/account_attrs.py:113
#: xpack/plugins/cloud/serializers/account_attrs.py:115
msgid "Service account key"
msgstr "服务账号密钥"
#: xpack/plugins/cloud/serializers/account_attrs.py:114
#: xpack/plugins/cloud/serializers/account_attrs.py:116
msgid "The file is in JSON format"
msgstr "JSON 格式的文件"
@ -6719,6 +6722,9 @@ msgstr "旗舰版"
msgid "Community edition"
msgstr "社区版"
#~ msgid "AccessKey ID"
#~ msgstr "Access key ID"
#~ msgid "Unknown ip"
#~ msgstr "未知ip"

View File

@ -1,11 +1,13 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = ['DingTalkSettingSerializer']
class DingTalkSettingSerializer(serializers.Serializer):
DINGTALK_AGENTID = serializers.CharField(max_length=256, required=True, label='AgentId')
DINGTALK_APPKEY = serializers.CharField(max_length=256, required=True, label='AppKey')
DINGTALK_APPSECRET = serializers.CharField(max_length=256, required=False, label='AppSecret', write_only=True)
DINGTALK_APPSECRET = EncryptedField(max_length=256, required=False, label='AppSecret')
AUTH_DINGTALK = serializers.BooleanField(default=False, label=_('Enable DingTalk Auth'))

View File

@ -1,11 +1,13 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = ['FeiShuSettingSerializer']
class FeiShuSettingSerializer(serializers.Serializer):
FEISHU_APP_ID = serializers.CharField(max_length=256, required=True, label='App ID')
FEISHU_APP_SECRET = serializers.CharField(max_length=256, required=False, label='App Secret', write_only=True)
FEISHU_APP_SECRET = EncryptedField(max_length=256, required=False, label='App Secret')
AUTH_FEISHU = serializers.BooleanField(default=False, label=_('Enable FeiShu Auth'))

View File

@ -12,7 +12,7 @@ __all__ = [
class LDAPTestConfigSerializer(serializers.Serializer):
AUTH_LDAP_SERVER_URI = serializers.CharField(max_length=1024)
AUTH_LDAP_BIND_DN = serializers.CharField(max_length=1024, required=False, allow_blank=True)
AUTH_LDAP_BIND_PASSWORD = serializers.CharField(required=False, allow_blank=True)
AUTH_LDAP_BIND_PASSWORD = EncryptedField(required=False, allow_blank=True)
AUTH_LDAP_SEARCH_OU = serializers.CharField()
AUTH_LDAP_SEARCH_FILTER = serializers.CharField()
AUTH_LDAP_USER_ATTR_MAP = serializers.CharField()
@ -42,8 +42,8 @@ class LDAPSettingSerializer(serializers.Serializer):
help_text=_('eg: ldap://localhost:389')
)
AUTH_LDAP_BIND_DN = serializers.CharField(required=False, max_length=1024, label=_('Bind DN'))
AUTH_LDAP_BIND_PASSWORD = serializers.CharField(
max_length=1024, write_only=True, required=False, label=_('Password')
AUTH_LDAP_BIND_PASSWORD = EncryptedField(
max_length=1024, required=False, label=_('Password')
)
AUTH_LDAP_SEARCH_OU = serializers.CharField(
max_length=1024, allow_blank=True, required=False, label=_('User OU'),

View File

@ -1,6 +1,8 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = [
'OIDCSettingSerializer', 'KeycloakSettingSerializer',
]
@ -14,8 +16,8 @@ class CommonSettingSerializer(serializers.Serializer):
AUTH_OPENID_CLIENT_ID = serializers.CharField(
required=False, max_length=1024, label=_('Client Id')
)
AUTH_OPENID_CLIENT_SECRET = serializers.CharField(
required=False, max_length=1024, write_only=True, label=_('Client Secret')
AUTH_OPENID_CLIENT_SECRET = EncryptedField(
required=False, max_length=1024, label=_('Client Secret')
)
AUTH_OPENID_CLIENT_AUTH_METHOD = serializers.ChoiceField(
default='client_secret_basic',

View File

@ -4,16 +4,16 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
__all__ = [
'RadiusSettingSerializer',
]
from common.drf.fields import EncryptedField
__all__ = ['RadiusSettingSerializer']
class RadiusSettingSerializer(serializers.Serializer):
AUTH_RADIUS = serializers.BooleanField(required=False, label=_('Enable Radius Auth'))
RADIUS_SERVER = serializers.CharField(required=False, allow_blank=True, max_length=1024, label=_('Host'))
RADIUS_PORT = serializers.IntegerField(required=False, label=_('Port'))
RADIUS_SECRET = serializers.CharField(
required=False, max_length=1024, allow_null=True, label=_('Secret'), write_only=True
RADIUS_SECRET = EncryptedField(
required=False, max_length=1024, allow_null=True, label=_('Secret'),
)
OTP_IN_RADIUS = serializers.BooleanField(required=False, label=_('OTP in Radius'))

View File

@ -1,6 +1,7 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
from common.sdk.sms import BACKENDS
__all__ = ['SMSSettingSerializer', 'AlibabaSMSSettingSerializer', 'TencentSMSSettingSerializer']
@ -29,8 +30,8 @@ class BaseSMSSettingSerializer(serializers.Serializer):
class AlibabaSMSSettingSerializer(BaseSMSSettingSerializer):
ALIBABA_ACCESS_KEY_ID = serializers.CharField(max_length=256, required=True, label='AccessKeyId')
ALIBABA_ACCESS_KEY_SECRET = serializers.CharField(
max_length=256, required=False, label='AccessKeySecret', write_only=True
ALIBABA_ACCESS_KEY_SECRET = EncryptedField(
max_length=256, required=False, label='AccessKeySecret',
)
ALIBABA_VERIFY_SIGN_NAME = serializers.CharField(max_length=256, required=True, label=_('Signature'))
ALIBABA_VERIFY_TEMPLATE_CODE = serializers.CharField(max_length=256, required=True, label=_('Template code'))
@ -38,7 +39,7 @@ class AlibabaSMSSettingSerializer(BaseSMSSettingSerializer):
class TencentSMSSettingSerializer(BaseSMSSettingSerializer):
TENCENT_SECRET_ID = serializers.CharField(max_length=256, required=True, label='Secret id')
TENCENT_SECRET_KEY = serializers.CharField(max_length=256, required=False, label='Secret key', write_only=True)
TENCENT_SECRET_KEY = EncryptedField(max_length=256, required=False, label='Secret key')
TENCENT_SDKAPPID = serializers.CharField(max_length=256, required=True, label='SDK app id')
TENCENT_VERIFY_SIGN_NAME = serializers.CharField(max_length=256, required=True, label=_('Signature'))
TENCENT_VERIFY_TEMPLATE_CODE = serializers.CharField(max_length=256, required=True, label=_('Template code'))

View File

@ -1,11 +1,13 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = ['WeComSettingSerializer']
class WeComSettingSerializer(serializers.Serializer):
WECOM_CORPID = serializers.CharField(max_length=256, required=True, label='corpid')
WECOM_AGENTID = serializers.CharField(max_length=256, required=True, label='agentid')
WECOM_SECRET = serializers.CharField(max_length=256, required=False, label='secret', write_only=True)
WECOM_SECRET = EncryptedField(max_length=256, required=False, label='secret')
AUTH_WECOM = serializers.BooleanField(default=False, label=_('Enable WeCom Auth'))

View File

@ -4,6 +4,8 @@
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = ['MailTestSerializer', 'EmailSettingSerializer', 'EmailContentSettingSerializer']
@ -18,8 +20,8 @@ class EmailSettingSerializer(serializers.Serializer):
EMAIL_HOST = serializers.CharField(max_length=1024, required=True, label=_("SMTP host"))
EMAIL_PORT = serializers.CharField(max_length=5, required=True, label=_("SMTP port"))
EMAIL_HOST_USER = serializers.CharField(max_length=128, required=True, label=_("SMTP account"))
EMAIL_HOST_PASSWORD = serializers.CharField(
max_length=1024, write_only=True, required=False, label=_("SMTP password"),
EMAIL_HOST_PASSWORD = EncryptedField(
max_length=1024, required=False, label=_("SMTP password"),
help_text=_("Tips: Some provider use token except password")
)
EMAIL_FROM = serializers.CharField(

View File

@ -1,14 +1,15 @@
# -*- coding: utf-8 -*-
#
from rest_framework import serializers
from rest_framework.validators import UniqueValidator
from urllib.parse import urlparse
from django.utils.translation import ugettext_lazy as _
from django.db.models import TextChoices
from common.drf.serializers import MethodSerializer
from common.drf.fields import ReadableHiddenField
from common.drf.fields import ReadableHiddenField, EncryptedField
from ..models import ReplayStorage, CommandStorage
from .. import const
from rest_framework.validators import UniqueValidator
# Replay storage serializers
@ -25,12 +26,12 @@ class ReplayStorageTypeBaseSerializer(serializers.Serializer):
required=True, max_length=1024, label=_('Bucket'), allow_null=True
)
ACCESS_KEY = serializers.CharField(
max_length=1024, required=False, allow_blank=True, write_only=True, label=_('Access key'),
allow_null=True,
max_length=1024, required=False, allow_blank=True,
label=_('Access key id'), allow_null=True,
)
SECRET_KEY = serializers.CharField(
max_length=1024, required=False, allow_blank=True, write_only=True, label=_('Secret key'),
allow_null=True,
SECRET_KEY = EncryptedField(
max_length=1024, required=False, allow_blank=True,
label=_('Access key secret'), allow_null=True,
)
ENDPOINT = serializers.CharField(
validators=[replay_storage_endpoint_format_validator],
@ -108,7 +109,7 @@ class ReplayStorageTypeAzureSerializer(serializers.Serializer):
max_length=1024, label=_('Container name'), allow_null=True
)
ACCOUNT_NAME = serializers.CharField(max_length=1024, label=_('Account name'), allow_null=True)
ACCOUNT_KEY = serializers.CharField(max_length=1024, label=_('Account key'), allow_null=True)
ACCOUNT_KEY = EncryptedField(max_length=1024, label=_('Account key'), allow_null=True)
ENDPOINT_SUFFIX = serializers.ChoiceField(
choices=EndpointSuffixChoices.choices, default=EndpointSuffixChoices.china.value,
label=_('Endpoint suffix'), allow_null=True,

View File

@ -17,9 +17,9 @@ class UserOrgSerializer(serializers.Serializer):
class UserUpdatePasswordSerializer(serializers.ModelSerializer):
old_password = EncryptedField(required=True, max_length=128, write_only=True)
new_password = EncryptedField(required=True, max_length=128, write_only=True)
new_password_again = EncryptedField(required=True, max_length=128, write_only=True)
old_password = EncryptedField(required=True, max_length=128)
new_password = EncryptedField(required=True, max_length=128)
new_password_again = EncryptedField(required=True, max_length=128)
class Meta:
model = User
@ -57,18 +57,20 @@ class UserUpdatePasswordSerializer(serializers.ModelSerializer):
class UserUpdateSecretKeySerializer(serializers.ModelSerializer):
new_secret_key = serializers.CharField(required=True, max_length=128, write_only=True)
new_secret_key_again = serializers.CharField(required=True, max_length=128, write_only=True)
new_secret_key = EncryptedField(required=True, max_length=128)
new_secret_key_again = EncryptedField(required=True, max_length=128)
class Meta:
model = User
fields = ['new_secret_key', 'new_secret_key_again']
def validate_new_secret_key_again(self, value):
if value != self.initial_data.get('new_secret_key', ''):
def validate(self, values):
new_secret_key = values.get('new_secret_key', '')
new_secret_key_again = values.get('new_secret_key_again', '')
if new_secret_key != new_secret_key_again:
msg = _('The newly set password is inconsistent')
raise serializers.ValidationError(msg)
return value
raise serializers.ValidationError({'new_secret_key_again': msg})
return values
def update(self, instance, validated_data):
new_secret_key = self.validated_data.get('new_secret_key')