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

View File

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

View File

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

View File

@ -1,6 +1,7 @@
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from common.drf.fields import EncryptedField
from ..application_category import RemoteAppSerializer from ..application_category import RemoteAppSerializer
__all__ = ['VMwareClientSerializer', 'VMwareClientSecretSerializer'] __all__ = ['VMwareClientSerializer', 'VMwareClientSecretSerializer']
@ -25,14 +26,14 @@ class VMwareClientSerializer(RemoteAppSerializer):
max_length=128, allow_blank=True, required=False, label=_('Vmware username'), max_length=128, allow_blank=True, required=False, label=_('Vmware username'),
allow_null=True allow_null=True
) )
vmware_password = serializers.CharField( vmware_password = EncryptedField(
max_length=128, allow_blank=True, required=False, write_only=True, label=_('Vmware password'), max_length=128, allow_blank=True, required=False,
allow_null=True label=_('Vmware password'), allow_null=True
) )
class VMwareClientSecretSerializer(RemoteAppSerializer): class VMwareClientSecretSerializer(RemoteAppSerializer):
vmware_password = serializers.CharField( vmware_password = EncryptedField(
max_length=128, allow_blank=True, required=False, read_only=True, label=_('Vmware password'), max_length=128, allow_blank=True, required=False, write_only=False,
allow_null=True 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 "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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/asset.py:386 assets/models/authbook.py:19
#: assets/models/backup.py:31 assets/models/cmd_filter.py:38 #: assets/models/backup.py:31 assets/models/cmd_filter.py:38
#: assets/models/gathered_user.py:14 assets/serializers/label.py:30 #: 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 #: perms/models/asset_permission.py:23 terminal/backends/command/models.py:21
#: terminal/backends/command/serializers.py:13 terminal/models/session.py:46 #: terminal/backends/command/serializers.py:13 terminal/models/session.py:46
#: terminal/notifications.py:90 #: terminal/notifications.py:90
@ -162,7 +162,7 @@ msgstr "コンマ区切り文字列の形式。* はすべて一致すること
#: users/templates/users/_msg_user_created.html:12 #: 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:34
#: xpack/plugins/change_auth_plan/models/asset.py:195 #: 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" msgid "Username"
msgstr "ユーザー名" msgstr "ユーザー名"
@ -177,9 +177,9 @@ msgstr ""
"db8:1a:1110:::/64 (ドメイン名サポート)" "db8:1a:1110:::/64 (ドメイン名サポート)"
#: acls/serializers/login_asset_acl.py:31 acls/serializers/rules/rules.py:33 #: 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/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_oauth_bind.html:12
#: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_password_success.html:8
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8
@ -188,7 +188,7 @@ msgid "IP"
msgstr "IP" msgstr "IP"
#: acls/serializers/login_asset_acl.py:35 assets/models/asset.py:211 #: 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 #: settings/serializers/terminal.py:7
msgid "Hostname" msgid "Hostname"
msgstr "ホスト名" msgstr "ホスト名"
@ -203,7 +203,7 @@ msgstr ""
#: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:213 #: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:213
#: assets/models/domain.py:62 assets/models/user.py:248 #: 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" msgid "Protocol"
msgstr "プロトコル" msgstr "プロトコル"
@ -245,7 +245,7 @@ msgstr "アプリケーション"
#: applications/const.py:8 #: applications/const.py:8
#: applications/serializers/attrs/application_category/db.py:14 #: 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 #: xpack/plugins/change_auth_plan/models/app.py:32
msgid "Database" msgid "Database"
msgstr "データベース" msgstr "データベース"
@ -341,7 +341,7 @@ msgstr "カテゴリ表示"
#: applications/serializers/application.py:71 #: applications/serializers/application.py:71
#: applications/serializers/application.py:102 #: 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 #: audits/serializers.py:29 perms/serializers/application/permission.py:19
#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:33 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:33
#: tickets/serializers/ticket/ticket.py:21 #: tickets/serializers/ticket/ticket.py:21
@ -353,7 +353,7 @@ msgstr "タイプ表示"
#: assets/models/base.py:181 assets/models/cluster.py:26 #: assets/models/base.py:181 assets/models/cluster.py:26
#: assets/models/domain.py:26 assets/models/gathered_user.py:19 #: assets/models/domain.py:26 assets/models/gathered_user.py:19
#: assets/models/group.py:22 assets/models/label.py:25 #: 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 #: 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 #: 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 #: orgs/models.py:67 orgs/models.py:217 perms/models/base.py:92
@ -363,7 +363,7 @@ msgid "Date created"
msgstr "作成された日付" msgstr "作成された日付"
#: applications/serializers/application.py:104 assets/models/base.py:182 #: 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 #: 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 #: common/db/models.py:114 common/mixins/models.py:51 ops/models/adhoc.py:40
#: orgs/models.py:218 #: orgs/models.py:218
@ -387,88 +387,88 @@ msgstr "クラスター"
#: applications/serializers/attrs/application_category/db.py:11 #: applications/serializers/attrs/application_category/db.py:11
#: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14 #: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14
#: terminal/models/endpoint.py:11 #: terminal/models/endpoint.py:11
#: xpack/plugins/cloud/serializers/account_attrs.py:68 #: xpack/plugins/cloud/serializers/account_attrs.py:70
msgid "Host" msgid "Host"
msgstr "ホスト" msgstr "ホスト"
#: applications/serializers/attrs/application_category/db.py:12 #: applications/serializers/attrs/application_category/db.py:12
#: applications/serializers/attrs/application_type/mongodb.py:10 #: applications/serializers/attrs/application_type/mongodb.py:10
#: applications/serializers/attrs/application_type/mysql.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/oracle.py:10
#: applications/serializers/attrs/application_type/pgsql.py:10 #: applications/serializers/attrs/application_type/pgsql.py:10
#: applications/serializers/attrs/application_type/redis.py:10 #: applications/serializers/attrs/application_type/redis.py:10
#: applications/serializers/attrs/application_type/sqlserver.py:10 #: applications/serializers/attrs/application_type/sqlserver.py:10
#: assets/models/asset.py:214 assets/models/domain.py:61 #: assets/models/asset.py:214 assets/models/domain.py:61
#: settings/serializers/auth/radius.py:15 #: settings/serializers/auth/radius.py:15
#: xpack/plugins/cloud/serializers/account_attrs.py:69 #: xpack/plugins/cloud/serializers/account_attrs.py:71
msgid "Port" msgid "Port"
msgstr "ポート" msgstr "ポート"
#: applications/serializers/attrs/application_category/remote_app.py:39 #: applications/serializers/attrs/application_category/remote_app.py:39
#: applications/serializers/attrs/application_type/chrome.py:13 #: applications/serializers/attrs/application_type/chrome.py:14
#: applications/serializers/attrs/application_type/mysql_workbench.py:13 #: applications/serializers/attrs/application_type/mysql_workbench.py:14
#: applications/serializers/attrs/application_type/vmware_client.py:17 #: applications/serializers/attrs/application_type/vmware_client.py:18
msgid "Application path" msgid "Application path"
msgstr "アプリケーションパス" msgstr "アプリケーションパス"
#: applications/serializers/attrs/application_category/remote_app.py:44 #: 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:66
#: xpack/plugins/change_auth_plan/serializers/asset.py:69 #: 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:72
#: xpack/plugins/change_auth_plan/serializers/asset.py:103 #: 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." msgid "This field is required."
msgstr "このフィールドは必須です。" msgstr "このフィールドは必須です。"
#: applications/serializers/attrs/application_type/chrome.py:16 #: applications/serializers/attrs/application_type/chrome.py:18
#: applications/serializers/attrs/application_type/vmware_client.py:21 #: applications/serializers/attrs/application_type/vmware_client.py:22
msgid "Target URL" msgid "Target URL"
msgstr "ターゲットURL" msgstr "ターゲットURL"
#: applications/serializers/attrs/application_type/chrome.py:19 #: applications/serializers/attrs/application_type/chrome.py:22
msgid "Chrome username" msgid "Chrome username"
msgstr "Chromeユーザー名" msgstr "Chromeユーザー名"
#: applications/serializers/attrs/application_type/chrome.py:22 #: applications/serializers/attrs/application_type/chrome.py:26
#: applications/serializers/attrs/application_type/chrome.py:29 #: applications/serializers/attrs/application_type/chrome.py:33
msgid "Chrome password" msgid "Chrome password"
msgstr "Chromeパスワード" msgstr "Chromeパスワード"
#: applications/serializers/attrs/application_type/custom.py:11 #: applications/serializers/attrs/application_type/custom.py:12
msgid "Operating parameter" msgid "Operating parameter"
msgstr "操作パラメータ" msgstr "操作パラメータ"
#: applications/serializers/attrs/application_type/custom.py:15 #: applications/serializers/attrs/application_type/custom.py:16
msgid "Target url" msgid "Target url"
msgstr "ターゲットURL" msgstr "ターゲットURL"
#: applications/serializers/attrs/application_type/custom.py:19 #: applications/serializers/attrs/application_type/custom.py:20
msgid "Custom Username" msgid "Custom Username"
msgstr "カスタムユーザー名" msgstr "カスタムユーザー名"
#: applications/serializers/attrs/application_type/custom.py:23 #: applications/serializers/attrs/application_type/custom.py:25
#: applications/serializers/attrs/application_type/custom.py:30 #: applications/serializers/attrs/application_type/custom.py:32
#: xpack/plugins/change_auth_plan/models/base.py:27 #: xpack/plugins/change_auth_plan/models/base.py:27
msgid "Custom password" msgid "Custom password"
msgstr "カスタムパスワード" msgstr "カスタムパスワード"
#: applications/serializers/attrs/application_type/mysql_workbench.py:29 #: applications/serializers/attrs/application_type/mysql_workbench.py:30
msgid "Mysql workbench username" msgid "Mysql workbench username"
msgstr "Mysql workbench のユーザー名" msgstr "Mysql workbench のユーザー名"
#: applications/serializers/attrs/application_type/mysql_workbench.py:33 #: applications/serializers/attrs/application_type/mysql_workbench.py:35
#: applications/serializers/attrs/application_type/mysql_workbench.py:40 #: applications/serializers/attrs/application_type/mysql_workbench.py:42
msgid "Mysql workbench password" msgid "Mysql workbench password"
msgstr "Mysql workbench パスワード" msgstr "Mysql workbench パスワード"
#: applications/serializers/attrs/application_type/vmware_client.py:25 #: applications/serializers/attrs/application_type/vmware_client.py:26
msgid "Vmware username" msgid "Vmware username"
msgstr "Vmware ユーザー名" msgstr "Vmware ユーザー名"
#: applications/serializers/attrs/application_type/vmware_client.py:29 #: applications/serializers/attrs/application_type/vmware_client.py:31
#: applications/serializers/attrs/application_type/vmware_client.py:36 #: applications/serializers/attrs/application_type/vmware_client.py:38
msgid "Vmware password" msgid "Vmware password"
msgstr "Vmware パスワード" msgstr "Vmware パスワード"
@ -510,7 +510,7 @@ msgid "Internal"
msgstr "内部" msgstr "内部"
#: assets/models/asset.py:162 assets/models/asset.py:216 #: 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 #: perms/serializers/asset/user_permission.py:43
msgid "Platform" msgid "Platform"
msgstr "プラットフォーム" msgstr "プラットフォーム"
@ -571,7 +571,7 @@ msgstr "システムアーキテクチャ"
msgid "Hostname raw" msgid "Hostname raw"
msgstr "ホスト名生" 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 #: 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 #: xpack/plugins/cloud/models.py:107 xpack/plugins/cloud/serializers/task.py:42
msgid "Protocols" msgid "Protocols"
@ -750,7 +750,7 @@ msgstr "OK"
msgid "Failed" msgid "Failed"
msgstr "失敗しました" msgstr "失敗しました"
#: assets/models/base.py:38 assets/serializers/domain.py:46 #: assets/models/base.py:38 assets/serializers/domain.py:47
msgid "Connectivity" msgid "Connectivity"
msgstr "接続性" msgstr "接続性"
@ -769,7 +769,7 @@ msgstr "確認済みの日付"
#: xpack/plugins/change_auth_plan/models/base.py:42 #: 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:121
#: xpack/plugins/change_auth_plan/models/base.py:196 #: 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" msgid "Password"
msgstr "パスワード" msgstr "パスワード"
@ -833,7 +833,7 @@ msgstr "デフォルトクラスター"
msgid "User group" msgid "User group"
msgstr "ユーザーグループ" 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" msgid "Command filter"
msgstr "コマンドフィルター" msgstr "コマンドフィルター"
@ -958,7 +958,7 @@ msgstr "フルバリュー"
msgid "Parent key" msgid "Parent key"
msgstr "親キー" 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 #: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:69
msgid "Node" msgid "Node"
msgstr "ノード" msgstr "ノード"
@ -983,7 +983,7 @@ msgstr "共通ユーザー"
msgid "Username same with user" msgid "Username same with user"
msgstr "ユーザーと同じユーザー名" 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 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/change_auth_plan/models/asset.py:39 #: xpack/plugins/change_auth_plan/models/asset.py:39
msgid "Assets" msgid "Assets"
@ -1017,7 +1017,8 @@ msgstr "ログインモード"
msgid "SFTP Root" msgid "SFTP Root"
msgstr "SFTPルート" 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" msgid "Token"
msgstr "トークン" 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" msgid "System user display"
msgstr "システムユーザー表示" msgstr "システムユーザー表示"
@ -1143,17 +1144,17 @@ msgstr "アクション表示"
msgid "Pattern" msgid "Pattern"
msgstr "パターン" msgstr "パターン"
#: assets/serializers/domain.py:13 assets/serializers/label.py:12 #: assets/serializers/domain.py:14 assets/serializers/label.py:12
#: assets/serializers/system_user.py:59 #: assets/serializers/system_user.py:64
#: perms/serializers/asset/permission.py:49 #: perms/serializers/asset/permission.py:49
msgid "Assets amount" msgid "Assets amount"
msgstr "資産額" msgstr "資産額"
#: assets/serializers/domain.py:14 #: assets/serializers/domain.py:15
msgid "Applications amount" msgid "Applications amount"
msgstr "申し込み金額" msgstr "申し込み金額"
#: assets/serializers/domain.py:15 #: assets/serializers/domain.py:16
msgid "Gateways count" msgid "Gateways count"
msgstr "ゲートウェイ数" msgstr "ゲートウェイ数"
@ -1169,78 +1170,78 @@ msgstr "含まれない:/"
msgid "The same level node name cannot be the same" msgid "The same level node name cannot be the same"
msgstr "同じレベルのノード名を同じにすることはできません。" msgstr "同じレベルのノード名を同じにすることはできません。"
#: assets/serializers/system_user.py:28 #: assets/serializers/system_user.py:30
msgid "SSH key fingerprint" msgid "SSH key fingerprint"
msgstr "SSHキー指紋" msgstr "SSHキー指紋"
#: assets/serializers/system_user.py:30 #: assets/serializers/system_user.py:35
#: perms/serializers/application/permission.py:46 #: perms/serializers/application/permission.py:46
msgid "Apps amount" msgid "Apps amount"
msgstr "アプリの量" msgstr "アプリの量"
#: assets/serializers/system_user.py:58 #: assets/serializers/system_user.py:63
#: perms/serializers/asset/permission.py:50 #: perms/serializers/asset/permission.py:50
msgid "Nodes amount" msgid "Nodes amount"
msgstr "ノード量" 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" msgid "Login mode display"
msgstr "ログインモード表示" msgstr "ログインモード表示"
#: assets/serializers/system_user.py:62 #: assets/serializers/system_user.py:67
msgid "Ad domain" msgid "Ad domain"
msgstr "広告ドメイン" msgstr "広告ドメイン"
#: assets/serializers/system_user.py:63 #: assets/serializers/system_user.py:68
msgid "Is asset protocol" msgid "Is asset protocol"
msgstr "資産プロトコルです" msgstr "資産プロトコルです"
#: assets/serializers/system_user.py:64 #: assets/serializers/system_user.py:69
msgid "Only ssh and automatic login system users are supported" msgid "Only ssh and automatic login system users are supported"
msgstr "sshと自動ログインシステムのユーザーのみがサポートされています" msgstr "sshと自動ログインシステムのユーザーのみがサポートされています"
#: assets/serializers/system_user.py:104 #: assets/serializers/system_user.py:109
msgid "Username same with user with protocol {} only allow 1" msgid "Username same with user with protocol {} only allow 1"
msgstr "プロトコル {} のユーザーと同じユーザー名は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" msgid "Special char not allowed"
msgstr "特別なcharは許可されていません" msgstr "特別なcharは許可されていません"
#: assets/serializers/system_user.py:127 #: assets/serializers/system_user.py:132
msgid "* Automatic login mode must fill in the username." msgid "* Automatic login mode must fill in the username."
msgstr "* 自動ログインモードはユーザー名を入力する必要があります。" msgstr "* 自動ログインモードはユーザー名を入力する必要があります。"
#: assets/serializers/system_user.py:142 #: assets/serializers/system_user.py:147
msgid "Path should starts with /" msgid "Path should starts with /"
msgstr "パスは/で始まる必要があります" msgstr "パスは/で始まる必要があります"
#: assets/serializers/system_user.py:154 #: assets/serializers/system_user.py:159
msgid "Password or private key required" msgid "Password or private key required"
msgstr "パスワードまたは秘密鍵が必要" msgstr "パスワードまたは秘密鍵が必要"
#: assets/serializers/system_user.py:168 #: assets/serializers/system_user.py:173
msgid "Only ssh protocol system users are allowed" msgid "Only ssh protocol system users are allowed"
msgstr "Sshプロトコルシステムユーザーのみが許可されています" msgstr "Sshプロトコルシステムユーザーのみが許可されています"
#: assets/serializers/system_user.py:172 #: assets/serializers/system_user.py:177
msgid "The protocol must be consistent with the current user: {}" msgid "The protocol must be consistent with the current user: {}"
msgstr "プロトコルは現在のユーザーと一致している必要があります: {}" msgstr "プロトコルは現在のユーザーと一致している必要があります: {}"
#: assets/serializers/system_user.py:176 #: assets/serializers/system_user.py:181
msgid "Only system users with automatic login are allowed" msgid "Only system users with automatic login are allowed"
msgstr "自動ログインを持つシステムユーザーのみが許可されます" msgstr "自動ログインを持つシステムユーザーのみが許可されます"
#: assets/serializers/system_user.py:281 #: assets/serializers/system_user.py:289
msgid "System user name" msgid "System user name"
msgstr "システムユーザー名" 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 #: rbac/serializers/rolebinding.py:23
msgid "Org name" msgid "Org name"
msgstr "組織名" msgstr "組織名"
#: assets/serializers/system_user.py:291 #: assets/serializers/system_user.py:299
msgid "Asset hostname" msgid "Asset hostname"
msgstr "資産ホスト名" msgstr "資産ホスト名"
@ -1495,7 +1496,7 @@ msgstr "ユーザーエージェント"
#: audits/models.py:126 #: audits/models.py:126
#: authentication/templates/authentication/_mfa_confirm_modal.html:14 #: authentication/templates/authentication/_mfa_confirm_modal.html:14
#: users/forms/profile.py:65 users/models/user.py:684 #: users/forms/profile.py:65 users/models/user.py:684
#: users/serializers/profile.py:124 #: users/serializers/profile.py:126
msgid "MFA" msgid "MFA"
msgstr "MFA" msgstr "MFA"
@ -1542,7 +1543,7 @@ msgstr "ホスト表示"
msgid "Result" msgid "Result"
msgstr "結果" msgstr "結果"
#: audits/serializers.py:98 terminal/serializers/storage.py:156 #: audits/serializers.py:98 terminal/serializers/storage.py:157
msgid "Hosts" msgid "Hosts"
msgstr "ホスト" msgstr "ホスト"
@ -2052,7 +2053,7 @@ msgstr "MFAタイプ ({}) が有効になっていない"
msgid "Please change your password" msgid "Please change your password"
msgstr "パスワードを変更してください" msgstr "パスワードを変更してください"
#: authentication/models.py:34 terminal/serializers/storage.py:28 #: authentication/models.py:34
msgid "Access key" msgid "Access key"
msgstr "アクセスキー" msgstr "アクセスキー"
@ -2141,13 +2142,13 @@ msgstr "表示"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/security.py:39 users/models/user.py:556 #: 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 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "無効化" msgstr "無効化"
#: authentication/templates/authentication/_access_key_modal.html:67 #: 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:26
#: users/templates/users/mfa_setting.html:68 #: users/templates/users/mfa_setting.html:68
msgid "Enable" msgid "Enable"
@ -2377,15 +2378,15 @@ msgstr "DingTalkはすでに別のユーザーにバインドされています"
msgid "Binding DingTalk successfully" msgid "Binding DingTalk successfully"
msgstr "DingTalkのバインドに成功" 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" msgid "Failed to get user from DingTalk"
msgstr "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" msgid "DingTalk is not bound"
msgstr "DingTalkはバインドされていません" 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" msgid "Please login with a password and then bind the DingTalk"
msgstr "パスワードでログインし、DingTalkをバインドしてください" msgstr "パスワードでログインし、DingTalkをバインドしてください"
@ -2414,15 +2415,15 @@ msgstr "本を飛ばす"
msgid "Binding FeiShu successfully" msgid "Binding FeiShu successfully"
msgstr "本を飛ばすのバインドに成功" msgstr "本を飛ばすのバインドに成功"
#: authentication/views/feishu.py:200 #: authentication/views/feishu.py:201
msgid "Failed to get user from FeiShu" msgid "Failed to get user from FeiShu"
msgstr "本を飛ばすからユーザーを取得できませんでした" msgstr "本を飛ばすからユーザーを取得できませんでした"
#: authentication/views/feishu.py:206 #: authentication/views/feishu.py:207
msgid "FeiShu is not bound" msgid "FeiShu is not bound"
msgstr "本を飛ばすは拘束されていません" msgstr "本を飛ばすは拘束されていません"
#: authentication/views/feishu.py:207 #: authentication/views/feishu.py:208
msgid "Please login with a password and then bind the FeiShu" msgid "Please login with a password and then bind the FeiShu"
msgstr "パスワードでログインしてから本を飛ばすをバインドしてください" msgstr "パスワードでログインしてから本を飛ばすをバインドしてください"
@ -3249,7 +3250,7 @@ msgstr "組織の役割バインディング"
msgid "System role binding" msgid "System role binding"
msgstr "システムロールバインディング" msgstr "システムロールバインディング"
#: rbac/serializers/permission.py:26 users/serializers/profile.py:130 #: rbac/serializers/permission.py:26 users/serializers/profile.py:132
msgid "Perms" msgid "Perms"
msgstr "パーマ" msgstr "パーマ"
@ -3475,7 +3476,7 @@ msgstr "ログインリダイレクトの有効化msg"
msgid "Enable CAS Auth" msgid "Enable CAS Auth"
msgstr "CAS 認証の有効化" 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" msgid "Server url"
msgstr "サービス側アドレス" msgstr "サービス側アドレス"
@ -3503,11 +3504,11 @@ msgstr "マッピングのプロパティ"
msgid "Create user if not" msgid "Create user if not"
msgstr "そうでない場合はユーザーを作成" msgstr "そうでない場合はユーザーを作成"
#: settings/serializers/auth/dingtalk.py:11 #: settings/serializers/auth/dingtalk.py:13
msgid "Enable DingTalk Auth" msgid "Enable DingTalk Auth"
msgstr "ピン認証の有効化" msgstr "ピン認証の有効化"
#: settings/serializers/auth/feishu.py:10 #: settings/serializers/auth/feishu.py:12
msgid "Enable FeiShu Auth" msgid "Enable FeiShu Auth"
msgstr "飛本認証の有効化" msgstr "飛本認証の有効化"
@ -3564,96 +3565,96 @@ msgstr "ページサイズを検索"
msgid "Enable LDAP auth" msgid "Enable LDAP auth"
msgstr "LDAP認証の有効化" msgstr "LDAP認証の有効化"
#: settings/serializers/auth/oidc.py:12 #: settings/serializers/auth/oidc.py:14
msgid "Base site url" msgid "Base site url"
msgstr "ベースサイトのアドレス" msgstr "ベースサイトのアドレス"
#: settings/serializers/auth/oidc.py:15 #: settings/serializers/auth/oidc.py:17
msgid "Client Id" msgid "Client Id"
msgstr "クライアントID" msgstr "クライアントID"
#: settings/serializers/auth/oidc.py:18 #: settings/serializers/auth/oidc.py:20
#: xpack/plugins/cloud/serializers/account_attrs.py:34 #: xpack/plugins/cloud/serializers/account_attrs.py:36
msgid "Client Secret" msgid "Client Secret"
msgstr "クライアント秘密" msgstr "クライアント秘密"
#: settings/serializers/auth/oidc.py:26 #: settings/serializers/auth/oidc.py:28
msgid "Client authentication method" msgid "Client authentication method"
msgstr "クライアント認証方式" msgstr "クライアント認証方式"
#: settings/serializers/auth/oidc.py:28 #: settings/serializers/auth/oidc.py:30
msgid "Share session" msgid "Share session"
msgstr "セッションの共有" msgstr "セッションの共有"
#: settings/serializers/auth/oidc.py:30 #: settings/serializers/auth/oidc.py:32
msgid "Ignore ssl verification" msgid "Ignore ssl verification"
msgstr "Ssl検証を無視する" msgstr "Ssl検証を無視する"
#: settings/serializers/auth/oidc.py:37 #: settings/serializers/auth/oidc.py:39
msgid "Use Keycloak" msgid "Use Keycloak"
msgstr "Keycloakを使用する" msgstr "Keycloakを使用する"
#: settings/serializers/auth/oidc.py:43 #: settings/serializers/auth/oidc.py:45
msgid "Realm name" msgid "Realm name"
msgstr "レルム名" msgstr "レルム名"
#: settings/serializers/auth/oidc.py:49 #: settings/serializers/auth/oidc.py:51
msgid "Enable OPENID Auth" msgid "Enable OPENID Auth"
msgstr "OIDC認証の有効化" msgstr "OIDC認証の有効化"
#: settings/serializers/auth/oidc.py:51 #: settings/serializers/auth/oidc.py:53
msgid "Provider endpoint" msgid "Provider endpoint"
msgstr "プロバイダーエンドポイント" msgstr "プロバイダーエンドポイント"
#: settings/serializers/auth/oidc.py:54 #: settings/serializers/auth/oidc.py:56
msgid "Provider auth endpoint" msgid "Provider auth endpoint"
msgstr "認証エンドポイントアドレス" msgstr "認証エンドポイントアドレス"
#: settings/serializers/auth/oidc.py:57 #: settings/serializers/auth/oidc.py:59
msgid "Provider token endpoint" msgid "Provider token endpoint"
msgstr "プロバイダートークンエンドポイント" msgstr "プロバイダートークンエンドポイント"
#: settings/serializers/auth/oidc.py:60 #: settings/serializers/auth/oidc.py:62
msgid "Provider jwks endpoint" msgid "Provider jwks endpoint"
msgstr "プロバイダーjwksエンドポイント" msgstr "プロバイダーjwksエンドポイント"
#: settings/serializers/auth/oidc.py:63 #: settings/serializers/auth/oidc.py:65
msgid "Provider userinfo endpoint" msgid "Provider userinfo endpoint"
msgstr "プロバイダーuserinfoエンドポイント" msgstr "プロバイダーuserinfoエンドポイント"
#: settings/serializers/auth/oidc.py:66 #: settings/serializers/auth/oidc.py:68
msgid "Provider end session endpoint" msgid "Provider end session endpoint"
msgstr "プロバイダーのセッション終了エンドポイント" msgstr "プロバイダーのセッション終了エンドポイント"
#: settings/serializers/auth/oidc.py:69 #: settings/serializers/auth/oidc.py:71
msgid "Provider sign alg" msgid "Provider sign alg"
msgstr "プロビダーサインalg" msgstr "プロビダーサインalg"
#: settings/serializers/auth/oidc.py:72 #: settings/serializers/auth/oidc.py:74
msgid "Provider sign key" msgid "Provider sign key"
msgstr "プロバイダ署名キー" msgstr "プロバイダ署名キー"
#: settings/serializers/auth/oidc.py:74 #: settings/serializers/auth/oidc.py:76
msgid "Scopes" msgid "Scopes"
msgstr "スコープ" msgstr "スコープ"
#: settings/serializers/auth/oidc.py:76 #: settings/serializers/auth/oidc.py:78
msgid "Id token max age" msgid "Id token max age"
msgstr "IDトークンの最大年齢" msgstr "IDトークンの最大年齢"
#: settings/serializers/auth/oidc.py:79 #: settings/serializers/auth/oidc.py:81
msgid "Id token include claims" msgid "Id token include claims"
msgstr "IDトークンにはクレームが含まれます" msgstr "IDトークンにはクレームが含まれます"
#: settings/serializers/auth/oidc.py:81 #: settings/serializers/auth/oidc.py:83
msgid "Use state" msgid "Use state"
msgstr "使用状態" msgstr "使用状態"
#: settings/serializers/auth/oidc.py:82 #: settings/serializers/auth/oidc.py:84
msgid "Use nonce" msgid "Use nonce"
msgstr "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" msgid "Always update user"
msgstr "常にユーザーを更新" msgstr "常にユーザーを更新"
@ -3689,25 +3690,25 @@ msgstr "SP プライベートキー"
msgid "SP cert" msgid "SP cert"
msgstr "SP 証明書" msgstr "SP 証明書"
#: settings/serializers/auth/sms.py:10 #: settings/serializers/auth/sms.py:11
msgid "Enable SMS" msgid "Enable SMS"
msgstr "SMSの有効化" msgstr "SMSの有効化"
#: settings/serializers/auth/sms.py:12 #: settings/serializers/auth/sms.py:13
msgid "SMS provider" msgid "SMS provider"
msgstr "SMSプロバイダ" msgstr "SMSプロバイダ"
#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:35 #: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36
#: settings/serializers/auth/sms.py:43 settings/serializers/email.py:63 #: settings/serializers/auth/sms.py:44 settings/serializers/email.py:65
msgid "Signature" msgid "Signature"
msgstr "署名" msgstr "署名"
#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36 #: settings/serializers/auth/sms.py:19 settings/serializers/auth/sms.py:37
#: settings/serializers/auth/sms.py:44 #: settings/serializers/auth/sms.py:45
msgid "Template code" msgid "Template code"
msgstr "テンプレートコード" msgstr "テンプレートコード"
#: settings/serializers/auth/sms.py:22 #: settings/serializers/auth/sms.py:23
msgid "Test phone" msgid "Test phone"
msgstr "テスト電話" msgstr "テスト電話"
@ -3728,7 +3729,7 @@ msgstr "Token有効期間"
msgid "Unit: second" msgid "Unit: second"
msgstr "単位: 秒" msgstr "単位: 秒"
#: settings/serializers/auth/wecom.py:11 #: settings/serializers/auth/wecom.py:13
msgid "Enable WeCom Auth" msgid "Enable WeCom Auth"
msgstr "企業微信認証の有効化" msgstr "企業微信認証の有効化"
@ -3822,69 +3823,69 @@ msgstr ""
"単位:日。セッション、録画、コマンドレコードがそれを超えると削除されます(デー" "単位:日。セッション、録画、コマンドレコードがそれを超えると削除されます(デー"
"タベースストレージにのみ影響します。ossなどは影響しません」影響を受ける)" "タベースストレージにのみ影響します。ossなどは影響しません」影響を受ける)"
#: settings/serializers/email.py:18 #: settings/serializers/email.py:20
msgid "SMTP host" msgid "SMTP host"
msgstr "SMTPホスト" msgstr "SMTPホスト"
#: settings/serializers/email.py:19 #: settings/serializers/email.py:21
msgid "SMTP port" msgid "SMTP port"
msgstr "SMTPポート" msgstr "SMTPポート"
#: settings/serializers/email.py:20 #: settings/serializers/email.py:22
msgid "SMTP account" msgid "SMTP account"
msgstr "SMTPアカウント" msgstr "SMTPアカウント"
#: settings/serializers/email.py:22 #: settings/serializers/email.py:24
msgid "SMTP password" msgid "SMTP password"
msgstr "SMTPパスワード" msgstr "SMTPパスワード"
#: settings/serializers/email.py:23 #: settings/serializers/email.py:25
msgid "Tips: Some provider use token except password" msgid "Tips: Some provider use token except password"
msgstr "ヒント: 一部のプロバイダーはパスワード以外のトークンを使用します" msgstr "ヒント: 一部のプロバイダーはパスワード以外のトークンを使用します"
#: settings/serializers/email.py:26 #: settings/serializers/email.py:28
msgid "Send user" msgid "Send user"
msgstr "ユーザーを送信" msgstr "ユーザーを送信"
#: settings/serializers/email.py:27 #: settings/serializers/email.py:29
msgid "Tips: Send mail account, default SMTP account as the send account" msgid "Tips: Send mail account, default SMTP account as the send account"
msgstr "" msgstr ""
"ヒント: 送信メールアカウント、送信アカウントとしてのデフォルトのSMTPアカウン" "ヒント: 送信メールアカウント、送信アカウントとしてのデフォルトのSMTPアカウン"
"ト" "ト"
#: settings/serializers/email.py:30 #: settings/serializers/email.py:32
msgid "Test recipient" msgid "Test recipient"
msgstr "テスト受信者" msgstr "テスト受信者"
#: settings/serializers/email.py:31 #: settings/serializers/email.py:33
msgid "Tips: Used only as a test mail recipient" msgid "Tips: Used only as a test mail recipient"
msgstr "ヒント: テストメールの受信者としてのみ使用" msgstr "ヒント: テストメールの受信者としてのみ使用"
#: settings/serializers/email.py:34 #: settings/serializers/email.py:36
msgid "Use SSL" msgid "Use SSL"
msgstr "SSLの使用" msgstr "SSLの使用"
#: settings/serializers/email.py:35 #: settings/serializers/email.py:37
msgid "If SMTP port is 465, may be select" msgid "If SMTP port is 465, may be select"
msgstr "SMTPポートが465の場合は、" msgstr "SMTPポートが465の場合は、"
#: settings/serializers/email.py:38 #: settings/serializers/email.py:40
msgid "Use TLS" msgid "Use TLS"
msgstr "TLSの使用" msgstr "TLSの使用"
#: settings/serializers/email.py:39 #: settings/serializers/email.py:41
msgid "If SMTP port is 587, may be select" msgid "If SMTP port is 587, may be select"
msgstr "SMTPポートが587の場合は、" msgstr "SMTPポートが587の場合は、"
#: settings/serializers/email.py:42 #: settings/serializers/email.py:44
msgid "Subject prefix" msgid "Subject prefix"
msgstr "件名プレフィックス" msgstr "件名プレフィックス"
#: settings/serializers/email.py:49 #: settings/serializers/email.py:51
msgid "Create user email subject" msgid "Create user email subject"
msgstr "ユーザーメール件名の作成" msgstr "ユーザーメール件名の作成"
#: settings/serializers/email.py:50 #: settings/serializers/email.py:52
msgid "" msgid ""
"Tips: When creating a user, send the subject of the email (eg:Create account " "Tips: When creating a user, send the subject of the email (eg:Create account "
"successfully)" "successfully)"
@ -3892,20 +3893,20 @@ msgstr ""
"ヒント: ユーザーを作成するときに、メールの件名を送信します (例: アカウントを" "ヒント: ユーザーを作成するときに、メールの件名を送信します (例: アカウントを"
"正常に作成)" "正常に作成)"
#: settings/serializers/email.py:54 #: settings/serializers/email.py:56
msgid "Create user honorific" msgid "Create user honorific"
msgstr "ユーザー敬語の作成" 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)" msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)"
msgstr "" msgstr ""
"ヒント: ユーザーを作成するときは、メールの敬語を送信します (例: こんにちは)" "ヒント: ユーザーを作成するときは、メールの敬語を送信します (例: こんにちは)"
#: settings/serializers/email.py:59 #: settings/serializers/email.py:61
msgid "Create user email content" msgid "Create user email content"
msgstr "ユーザーのメールコンテンツを作成する" msgstr "ユーザーのメールコンテンツを作成する"
#: settings/serializers/email.py:60 #: settings/serializers/email.py:62
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Tips: When creating a user, send the content of the email, support " "Tips: When creating a user, send the content of the email, support "
@ -3914,7 +3915,7 @@ msgstr ""
"ヒント:ユーザーの作成時にパスワード設定メールの内容を送信し、{username}{name}" "ヒント:ユーザーの作成時にパスワード設定メールの内容を送信し、{username}{name}"
"{email}ラベルをサポートします。" "{email}ラベルをサポートします。"
#: settings/serializers/email.py:64 #: settings/serializers/email.py:66
msgid "Tips: Email signature (eg:jumpserver)" msgid "Tips: Email signature (eg:jumpserver)"
msgstr "ヒント: メール署名 (例: jumpserver)" msgstr "ヒント: メール署名 (例: jumpserver)"
@ -4760,9 +4761,9 @@ msgid "Redis Port"
msgstr "Redis ポート" msgstr "Redis ポート"
#: terminal/models/endpoint.py:26 terminal/models/endpoint.py:67 #: terminal/models/endpoint.py:26 terminal/models/endpoint.py:67
#: terminal/serializers/endpoint.py:41 terminal/serializers/storage.py:37 #: terminal/serializers/endpoint.py:41 terminal/serializers/storage.py:38
#: terminal/serializers/storage.py:49 terminal/serializers/storage.py:79 #: terminal/serializers/storage.py:50 terminal/serializers/storage.py:80
#: terminal/serializers/storage.py:89 terminal/serializers/storage.py:97 #: terminal/serializers/storage.py:90 terminal/serializers/storage.py:98
msgid "Endpoint" msgid "Endpoint"
msgstr "エンドポイント" msgstr "エンドポイント"
@ -4979,67 +4980,73 @@ msgstr "終了できます"
msgid "Command amount" msgid "Command amount"
msgstr "コマンド量" msgstr "コマンド量"
#: terminal/serializers/storage.py:19 #: terminal/serializers/storage.py:20
msgid "Endpoint invalid: remove path `{}`" msgid "Endpoint invalid: remove path `{}`"
msgstr "エンドポイントが無効: パス '{}' を削除" msgstr "エンドポイントが無効: パス '{}' を削除"
#: terminal/serializers/storage.py:25 #: terminal/serializers/storage.py:26
msgid "Bucket" msgid "Bucket"
msgstr "バケット" msgstr "バケット"
#: terminal/serializers/storage.py:32 users/models/user.py:695 #: terminal/serializers/storage.py:30
msgid "Secret key" #: xpack/plugins/cloud/serializers/account_attrs.py:15
msgstr "秘密キー" 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" msgid "Region"
msgstr "リージョン" msgstr "リージョン"
#: terminal/serializers/storage.py:108 #: terminal/serializers/storage.py:109
msgid "Container name" msgid "Container name"
msgstr "コンテナー名" msgstr "コンテナー名"
#: terminal/serializers/storage.py:110 #: terminal/serializers/storage.py:111
msgid "Account name" msgid "Account name"
msgstr "アカウント名" msgstr "アカウント名"
#: terminal/serializers/storage.py:111 #: terminal/serializers/storage.py:112
msgid "Account key" msgid "Account key"
msgstr "アカウントキー" msgstr "アカウントキー"
#: terminal/serializers/storage.py:114 #: terminal/serializers/storage.py:115
msgid "Endpoint suffix" msgid "Endpoint suffix"
msgstr "エンドポイントサフィックス" msgstr "エンドポイントサフィックス"
#: terminal/serializers/storage.py:134 #: terminal/serializers/storage.py:135
msgid "The address format is incorrect" msgid "The address format is incorrect"
msgstr "アドレス形式が正しくありません" msgstr "アドレス形式が正しくありません"
#: terminal/serializers/storage.py:141 #: terminal/serializers/storage.py:142
msgid "Host invalid" msgid "Host invalid"
msgstr "ホスト無効" msgstr "ホスト無効"
#: terminal/serializers/storage.py:144 #: terminal/serializers/storage.py:145
msgid "Port invalid" msgid "Port invalid"
msgstr "ポートが無効" msgstr "ポートが無効"
#: terminal/serializers/storage.py:159 #: terminal/serializers/storage.py:160
msgid "Index by date" msgid "Index by date"
msgstr "日付による索引付け" msgstr "日付による索引付け"
#: terminal/serializers/storage.py:160 #: terminal/serializers/storage.py:161
msgid "Whether to create an index by date" msgid "Whether to create an index by date"
msgstr "現在の日付に基づいてインデックスを動的に作成するかどうか" msgstr "現在の日付に基づいてインデックスを動的に作成するかどうか"
#: terminal/serializers/storage.py:163 #: terminal/serializers/storage.py:164
msgid "Index" msgid "Index"
msgstr "インデックス" msgstr "インデックス"
#: terminal/serializers/storage.py:165 #: terminal/serializers/storage.py:166
msgid "Doc type" msgid "Doc type"
msgstr "Docタイプ" msgstr "Docタイプ"
#: terminal/serializers/storage.py:167 #: terminal/serializers/storage.py:168
msgid "Ignore Certificate Verification" msgid "Ignore Certificate Verification"
msgstr "証明書の検証を無視する" msgstr "証明書の検証を無視する"
@ -5328,11 +5335,11 @@ msgstr "プロセス"
msgid "TicketFlow" msgid "TicketFlow"
msgstr "作業指示プロセス" msgstr "作業指示プロセス"
#: tickets/models/ticket.py:311 #: tickets/models/ticket.py:320
msgid "Please try again" msgid "Please try again"
msgstr "もう一度お試しください" msgstr "もう一度お試しください"
#: tickets/models/ticket.py:319 #: tickets/models/ticket.py:328
msgid "Super ticket" msgid "Super ticket"
msgstr "スーパーチケット" msgstr "スーパーチケット"
@ -5638,8 +5645,8 @@ msgstr "ここにid_rsa.pubを貼り付けます。"
msgid "Public key should not be the same as your old one." msgid "Public key should not be the same as your old one."
msgstr "公開鍵は古いものと同じであってはなりません。" msgstr "公開鍵は古いものと同じであってはなりません。"
#: users/forms/profile.py:150 users/serializers/profile.py:98 #: users/forms/profile.py:150 users/serializers/profile.py:100
#: users/serializers/profile.py:181 users/serializers/profile.py:208 #: users/serializers/profile.py:183 users/serializers/profile.py:210
msgid "Not a valid ssh public key" msgid "Not a valid ssh public key"
msgstr "有効なssh公開鍵ではありません" msgstr "有効なssh公開鍵ではありません"
@ -5667,6 +5674,10 @@ msgstr "アバター"
msgid "Wechat" msgid "Wechat"
msgstr "微信" msgstr "微信"
#: users/models/user.py:695
msgid "Secret key"
msgstr "秘密キー"
#: users/models/user.py:711 #: users/models/user.py:711
msgid "Source" msgid "Source"
msgstr "ソース" msgstr "ソース"
@ -5738,7 +5749,7 @@ msgstr "MFAのリセット"
msgid "The old password is incorrect" msgid "The old password is incorrect"
msgstr "古いパスワードが正しくありません" 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" msgid "Password does not match security rules"
msgstr "パスワードがセキュリティルールと一致しない" msgstr "パスワードがセキュリティルールと一致しない"
@ -5746,11 +5757,11 @@ msgstr "パスワードがセキュリティルールと一致しない"
msgid "The new password cannot be the last {} passwords" msgid "The new password cannot be the last {} passwords"
msgstr "新しいパスワードを最後の {} 個のパスワードにすることはできません" 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" msgid "The newly set password is inconsistent"
msgstr "新しく設定されたパスワードが一致しない" 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" msgid "Is first login"
msgstr "最初のログインです" msgstr "最初のログインです"
@ -6651,48 +6662,40 @@ msgstr "有効表示"
msgid "Provider display" msgid "Provider display"
msgstr "プロバイダ表示" msgstr "プロバイダ表示"
#: xpack/plugins/cloud/serializers/account_attrs.py:13 #: xpack/plugins/cloud/serializers/account_attrs.py:33
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
msgid "Client ID" msgid "Client ID"
msgstr "クライアントID" msgstr "クライアントID"
#: xpack/plugins/cloud/serializers/account_attrs.py:37 #: xpack/plugins/cloud/serializers/account_attrs.py:39
msgid "Tenant ID" msgid "Tenant ID"
msgstr "テナントID" msgstr "テナントID"
#: xpack/plugins/cloud/serializers/account_attrs.py:40 #: xpack/plugins/cloud/serializers/account_attrs.py:42
msgid "Subscription ID" msgid "Subscription ID"
msgstr "サブスクリプションID" msgstr "サブスクリプションID"
#: xpack/plugins/cloud/serializers/account_attrs.py:91 #: xpack/plugins/cloud/serializers/account_attrs.py:93
#: xpack/plugins/cloud/serializers/account_attrs.py:96 #: xpack/plugins/cloud/serializers/account_attrs.py:98
msgid "API Endpoint" msgid "API Endpoint"
msgstr "APIエンドポイント" msgstr "APIエンドポイント"
#: xpack/plugins/cloud/serializers/account_attrs.py:102 #: xpack/plugins/cloud/serializers/account_attrs.py:104
msgid "Auth url" msgid "Auth url"
msgstr "認証アドレス" 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" msgid "eg: http://openstack.example.com:5000/v3"
msgstr "例えば: 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" msgid "User domain"
msgstr "ユーザードメイン" msgstr "ユーザードメイン"
#: xpack/plugins/cloud/serializers/account_attrs.py:113 #: xpack/plugins/cloud/serializers/account_attrs.py:115
msgid "Service account key" msgid "Service account key"
msgstr "サービスアカウントキー" msgstr "サービスアカウントキー"
#: xpack/plugins/cloud/serializers/account_attrs.py:114 #: xpack/plugins/cloud/serializers/account_attrs.py:116
msgid "The file is in JSON format" msgid "The file is in JSON format"
msgstr "ファイルはJSON形式です。" msgstr "ファイルはJSON形式です。"
@ -6811,6 +6814,9 @@ msgstr "究極のエディション"
msgid "Community edition" msgid "Community edition"
msgstr "コミュニティ版" msgstr "コミュニティ版"
#~ msgid "AccessKey ID"
#~ msgstr "アクセスキーID"
#~ msgid "Unknown ip" #~ msgid "Unknown ip"
#~ msgstr "不明な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 "" 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: 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" "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"
@ -128,7 +128,7 @@ msgstr "系统用户"
#: assets/models/asset.py:386 assets/models/authbook.py:19 #: assets/models/asset.py:386 assets/models/authbook.py:19
#: assets/models/backup.py:31 assets/models/cmd_filter.py:38 #: assets/models/backup.py:31 assets/models/cmd_filter.py:38
#: assets/models/gathered_user.py:14 assets/serializers/label.py:30 #: 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 #: perms/models/asset_permission.py:23 terminal/backends/command/models.py:21
#: terminal/backends/command/serializers.py:13 terminal/models/session.py:46 #: terminal/backends/command/serializers.py:13 terminal/models/session.py:46
#: terminal/notifications.py:90 #: terminal/notifications.py:90
@ -161,7 +161,7 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. "
#: users/templates/users/_msg_user_created.html:12 #: 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:34
#: xpack/plugins/change_auth_plan/models/asset.py:195 #: 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" msgid "Username"
msgstr "用户名" msgstr "用户名"
@ -175,9 +175,9 @@ msgstr ""
"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 (支持网域)"
#: acls/serializers/login_asset_acl.py:31 acls/serializers/rules/rules.py:33 #: 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/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_oauth_bind.html:12
#: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_password_success.html:8
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8
@ -186,7 +186,7 @@ msgid "IP"
msgstr "IP" msgstr "IP"
#: acls/serializers/login_asset_acl.py:35 assets/models/asset.py:211 #: 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 #: settings/serializers/terminal.py:7
msgid "Hostname" msgid "Hostname"
msgstr "主机名" msgstr "主机名"
@ -199,7 +199,7 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. 可选的协议
#: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:213 #: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:213
#: assets/models/domain.py:62 assets/models/user.py:248 #: 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" msgid "Protocol"
msgstr "协议" msgstr "协议"
@ -240,7 +240,7 @@ msgstr "应用管理"
#: applications/const.py:8 #: applications/const.py:8
#: applications/serializers/attrs/application_category/db.py:14 #: 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 #: xpack/plugins/change_auth_plan/models/app.py:32
msgid "Database" msgid "Database"
msgstr "数据库" msgstr "数据库"
@ -336,7 +336,7 @@ msgstr "类别名称"
#: applications/serializers/application.py:71 #: applications/serializers/application.py:71
#: applications/serializers/application.py:102 #: 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 #: audits/serializers.py:29 perms/serializers/application/permission.py:19
#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:33 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:33
#: tickets/serializers/ticket/ticket.py:21 #: tickets/serializers/ticket/ticket.py:21
@ -348,7 +348,7 @@ msgstr "类型名称"
#: assets/models/base.py:181 assets/models/cluster.py:26 #: assets/models/base.py:181 assets/models/cluster.py:26
#: assets/models/domain.py:26 assets/models/gathered_user.py:19 #: assets/models/domain.py:26 assets/models/gathered_user.py:19
#: assets/models/group.py:22 assets/models/label.py:25 #: 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 #: 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 #: 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 #: orgs/models.py:67 orgs/models.py:217 perms/models/base.py:92
@ -358,7 +358,7 @@ msgid "Date created"
msgstr "创建日期" msgstr "创建日期"
#: applications/serializers/application.py:104 assets/models/base.py:182 #: 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 #: 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 #: common/db/models.py:114 common/mixins/models.py:51 ops/models/adhoc.py:40
#: orgs/models.py:218 #: orgs/models.py:218
@ -382,88 +382,88 @@ msgstr "集群"
#: applications/serializers/attrs/application_category/db.py:11 #: applications/serializers/attrs/application_category/db.py:11
#: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14 #: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14
#: terminal/models/endpoint.py:11 #: terminal/models/endpoint.py:11
#: xpack/plugins/cloud/serializers/account_attrs.py:68 #: xpack/plugins/cloud/serializers/account_attrs.py:70
msgid "Host" msgid "Host"
msgstr "主机" msgstr "主机"
#: applications/serializers/attrs/application_category/db.py:12 #: applications/serializers/attrs/application_category/db.py:12
#: applications/serializers/attrs/application_type/mongodb.py:10 #: applications/serializers/attrs/application_type/mongodb.py:10
#: applications/serializers/attrs/application_type/mysql.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/oracle.py:10
#: applications/serializers/attrs/application_type/pgsql.py:10 #: applications/serializers/attrs/application_type/pgsql.py:10
#: applications/serializers/attrs/application_type/redis.py:10 #: applications/serializers/attrs/application_type/redis.py:10
#: applications/serializers/attrs/application_type/sqlserver.py:10 #: applications/serializers/attrs/application_type/sqlserver.py:10
#: assets/models/asset.py:214 assets/models/domain.py:61 #: assets/models/asset.py:214 assets/models/domain.py:61
#: settings/serializers/auth/radius.py:15 #: settings/serializers/auth/radius.py:15
#: xpack/plugins/cloud/serializers/account_attrs.py:69 #: xpack/plugins/cloud/serializers/account_attrs.py:71
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
#: applications/serializers/attrs/application_category/remote_app.py:39 #: applications/serializers/attrs/application_category/remote_app.py:39
#: applications/serializers/attrs/application_type/chrome.py:13 #: applications/serializers/attrs/application_type/chrome.py:14
#: applications/serializers/attrs/application_type/mysql_workbench.py:13 #: applications/serializers/attrs/application_type/mysql_workbench.py:14
#: applications/serializers/attrs/application_type/vmware_client.py:17 #: applications/serializers/attrs/application_type/vmware_client.py:18
msgid "Application path" msgid "Application path"
msgstr "应用路径" msgstr "应用路径"
#: applications/serializers/attrs/application_category/remote_app.py:44 #: 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:66
#: xpack/plugins/change_auth_plan/serializers/asset.py:69 #: 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:72
#: xpack/plugins/change_auth_plan/serializers/asset.py:103 #: 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." msgid "This field is required."
msgstr "该字段是必填项。" msgstr "该字段是必填项。"
#: applications/serializers/attrs/application_type/chrome.py:16 #: applications/serializers/attrs/application_type/chrome.py:18
#: applications/serializers/attrs/application_type/vmware_client.py:21 #: applications/serializers/attrs/application_type/vmware_client.py:22
msgid "Target URL" msgid "Target URL"
msgstr "目标URL" msgstr "目标URL"
#: applications/serializers/attrs/application_type/chrome.py:19 #: applications/serializers/attrs/application_type/chrome.py:22
msgid "Chrome username" msgid "Chrome username"
msgstr "Chrome 用户名" msgstr "Chrome 用户名"
#: applications/serializers/attrs/application_type/chrome.py:22 #: applications/serializers/attrs/application_type/chrome.py:26
#: applications/serializers/attrs/application_type/chrome.py:29 #: applications/serializers/attrs/application_type/chrome.py:33
msgid "Chrome password" msgid "Chrome password"
msgstr "Chrome 密码" msgstr "Chrome 密码"
#: applications/serializers/attrs/application_type/custom.py:11 #: applications/serializers/attrs/application_type/custom.py:12
msgid "Operating parameter" msgid "Operating parameter"
msgstr "运行参数" msgstr "运行参数"
#: applications/serializers/attrs/application_type/custom.py:15 #: applications/serializers/attrs/application_type/custom.py:16
msgid "Target url" msgid "Target url"
msgstr "目标URL" msgstr "目标URL"
#: applications/serializers/attrs/application_type/custom.py:19 #: applications/serializers/attrs/application_type/custom.py:20
msgid "Custom Username" msgid "Custom Username"
msgstr "自定义用户名" msgstr "自定义用户名"
#: applications/serializers/attrs/application_type/custom.py:23 #: applications/serializers/attrs/application_type/custom.py:25
#: applications/serializers/attrs/application_type/custom.py:30 #: applications/serializers/attrs/application_type/custom.py:32
#: xpack/plugins/change_auth_plan/models/base.py:27 #: xpack/plugins/change_auth_plan/models/base.py:27
msgid "Custom password" msgid "Custom password"
msgstr "自定义密码" msgstr "自定义密码"
#: applications/serializers/attrs/application_type/mysql_workbench.py:29 #: applications/serializers/attrs/application_type/mysql_workbench.py:30
msgid "Mysql workbench username" msgid "Mysql workbench username"
msgstr "Mysql 工作台 用户名" msgstr "Mysql 工作台 用户名"
#: applications/serializers/attrs/application_type/mysql_workbench.py:33 #: applications/serializers/attrs/application_type/mysql_workbench.py:35
#: applications/serializers/attrs/application_type/mysql_workbench.py:40 #: applications/serializers/attrs/application_type/mysql_workbench.py:42
msgid "Mysql workbench password" msgid "Mysql workbench password"
msgstr "Mysql 工作台 密码" msgstr "Mysql 工作台 密码"
#: applications/serializers/attrs/application_type/vmware_client.py:25 #: applications/serializers/attrs/application_type/vmware_client.py:26
msgid "Vmware username" msgid "Vmware username"
msgstr "Vmware 用户名" msgstr "Vmware 用户名"
#: applications/serializers/attrs/application_type/vmware_client.py:29 #: applications/serializers/attrs/application_type/vmware_client.py:31
#: applications/serializers/attrs/application_type/vmware_client.py:36 #: applications/serializers/attrs/application_type/vmware_client.py:38
msgid "Vmware password" msgid "Vmware password"
msgstr "Vmware 密码" msgstr "Vmware 密码"
@ -505,7 +505,7 @@ msgid "Internal"
msgstr "内部的" msgstr "内部的"
#: assets/models/asset.py:162 assets/models/asset.py:216 #: 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 #: perms/serializers/asset/user_permission.py:43
msgid "Platform" msgid "Platform"
msgstr "系统平台" msgstr "系统平台"
@ -566,7 +566,7 @@ msgstr "系统架构"
msgid "Hostname raw" msgid "Hostname raw"
msgstr "主机名原始" 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 #: 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 #: xpack/plugins/cloud/models.py:107 xpack/plugins/cloud/serializers/task.py:42
msgid "Protocols" msgid "Protocols"
@ -745,7 +745,7 @@ msgstr "成功"
msgid "Failed" msgid "Failed"
msgstr "失败" msgstr "失败"
#: assets/models/base.py:38 assets/serializers/domain.py:46 #: assets/models/base.py:38 assets/serializers/domain.py:47
msgid "Connectivity" msgid "Connectivity"
msgstr "可连接性" msgstr "可连接性"
@ -764,7 +764,7 @@ msgstr "校验日期"
#: xpack/plugins/change_auth_plan/models/base.py:42 #: 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:121
#: xpack/plugins/change_auth_plan/models/base.py:196 #: 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" msgid "Password"
msgstr "密码" msgstr "密码"
@ -828,7 +828,7 @@ msgstr "默认Cluster"
msgid "User group" msgid "User group"
msgstr "用户组" 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" msgid "Command filter"
msgstr "命令过滤器" msgstr "命令过滤器"
@ -953,7 +953,7 @@ msgstr "全称"
msgid "Parent key" msgid "Parent key"
msgstr "ssh私钥" 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 #: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:69
msgid "Node" msgid "Node"
msgstr "节点" msgstr "节点"
@ -978,7 +978,7 @@ msgstr "普通用户"
msgid "Username same with user" msgid "Username same with user"
msgstr "用户名与用户相同" 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 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/change_auth_plan/models/asset.py:39 #: xpack/plugins/change_auth_plan/models/asset.py:39
msgid "Assets" msgid "Assets"
@ -1012,7 +1012,8 @@ msgstr "认证方式"
msgid "SFTP Root" msgid "SFTP Root"
msgstr "SFTP根路径" 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" msgid "Token"
msgstr "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" msgid "System user display"
msgstr "系统用户名称" msgstr "系统用户名称"
@ -1135,17 +1136,17 @@ msgstr "动作名称"
msgid "Pattern" msgid "Pattern"
msgstr "模式" msgstr "模式"
#: assets/serializers/domain.py:13 assets/serializers/label.py:12 #: assets/serializers/domain.py:14 assets/serializers/label.py:12
#: assets/serializers/system_user.py:59 #: assets/serializers/system_user.py:64
#: perms/serializers/asset/permission.py:49 #: perms/serializers/asset/permission.py:49
msgid "Assets amount" msgid "Assets amount"
msgstr "资产数量" msgstr "资产数量"
#: assets/serializers/domain.py:14 #: assets/serializers/domain.py:15
msgid "Applications amount" msgid "Applications amount"
msgstr "应用数量" msgstr "应用数量"
#: assets/serializers/domain.py:15 #: assets/serializers/domain.py:16
msgid "Gateways count" msgid "Gateways count"
msgstr "网关数量" msgstr "网关数量"
@ -1161,78 +1162,78 @@ msgstr "不能包含: /"
msgid "The same level node name cannot be the same" msgid "The same level node name cannot be the same"
msgstr "同级别节点名字不能重复" msgstr "同级别节点名字不能重复"
#: assets/serializers/system_user.py:28 #: assets/serializers/system_user.py:30
msgid "SSH key fingerprint" msgid "SSH key fingerprint"
msgstr "密钥指纹" msgstr "密钥指纹"
#: assets/serializers/system_user.py:30 #: assets/serializers/system_user.py:35
#: perms/serializers/application/permission.py:46 #: perms/serializers/application/permission.py:46
msgid "Apps amount" msgid "Apps amount"
msgstr "应用数量" msgstr "应用数量"
#: assets/serializers/system_user.py:58 #: assets/serializers/system_user.py:63
#: perms/serializers/asset/permission.py:50 #: perms/serializers/asset/permission.py:50
msgid "Nodes amount" msgid "Nodes amount"
msgstr "节点数量" 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" msgid "Login mode display"
msgstr "认证方式名称" msgstr "认证方式名称"
#: assets/serializers/system_user.py:62 #: assets/serializers/system_user.py:67
msgid "Ad domain" msgid "Ad domain"
msgstr "Ad 网域" msgstr "Ad 网域"
#: assets/serializers/system_user.py:63 #: assets/serializers/system_user.py:68
msgid "Is asset protocol" msgid "Is asset protocol"
msgstr "资产协议" msgstr "资产协议"
#: assets/serializers/system_user.py:64 #: assets/serializers/system_user.py:69
msgid "Only ssh and automatic login system users are supported" msgid "Only ssh and automatic login system users are supported"
msgstr "仅支持ssh协议和自动登录的系统用户" msgstr "仅支持ssh协议和自动登录的系统用户"
#: assets/serializers/system_user.py:104 #: assets/serializers/system_user.py:109
msgid "Username same with user with protocol {} only allow 1" msgid "Username same with user with protocol {} only allow 1"
msgstr "用户名和用户相同的一种协议只允许存在一个" 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" msgid "Special char not allowed"
msgstr "不能包含特殊字符" msgstr "不能包含特殊字符"
#: assets/serializers/system_user.py:127 #: assets/serializers/system_user.py:132
msgid "* Automatic login mode must fill in the username." msgid "* Automatic login mode must fill in the username."
msgstr "自动登录模式,必须填写用户名" msgstr "自动登录模式,必须填写用户名"
#: assets/serializers/system_user.py:142 #: assets/serializers/system_user.py:147
msgid "Path should starts with /" msgid "Path should starts with /"
msgstr "路径应该以 / 开头" msgstr "路径应该以 / 开头"
#: assets/serializers/system_user.py:154 #: assets/serializers/system_user.py:159
msgid "Password or private key required" msgid "Password or private key required"
msgstr "密码或密钥密码需要一个" msgstr "密码或密钥密码需要一个"
#: assets/serializers/system_user.py:168 #: assets/serializers/system_user.py:173
msgid "Only ssh protocol system users are allowed" msgid "Only ssh protocol system users are allowed"
msgstr "仅允许ssh协议的系统用户" msgstr "仅允许ssh协议的系统用户"
#: assets/serializers/system_user.py:172 #: assets/serializers/system_user.py:177
msgid "The protocol must be consistent with the current user: {}" msgid "The protocol must be consistent with the current user: {}"
msgstr "协议必须和当前用户保持一致: {}" msgstr "协议必须和当前用户保持一致: {}"
#: assets/serializers/system_user.py:176 #: assets/serializers/system_user.py:181
msgid "Only system users with automatic login are allowed" msgid "Only system users with automatic login are allowed"
msgstr "仅允许自动登录的系统用户" msgstr "仅允许自动登录的系统用户"
#: assets/serializers/system_user.py:281 #: assets/serializers/system_user.py:289
msgid "System user name" msgid "System user name"
msgstr "系统用户名称" 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 #: rbac/serializers/rolebinding.py:23
msgid "Org name" msgid "Org name"
msgstr "组织名称" msgstr "组织名称"
#: assets/serializers/system_user.py:291 #: assets/serializers/system_user.py:299
msgid "Asset hostname" msgid "Asset hostname"
msgstr "资产主机名" msgstr "资产主机名"
@ -1483,7 +1484,7 @@ msgstr "用户代理"
#: audits/models.py:126 #: audits/models.py:126
#: authentication/templates/authentication/_mfa_confirm_modal.html:14 #: authentication/templates/authentication/_mfa_confirm_modal.html:14
#: users/forms/profile.py:65 users/models/user.py:684 #: users/forms/profile.py:65 users/models/user.py:684
#: users/serializers/profile.py:124 #: users/serializers/profile.py:126
msgid "MFA" msgid "MFA"
msgstr "MFA" msgstr "MFA"
@ -1530,7 +1531,7 @@ msgstr "主机名称"
msgid "Result" msgid "Result"
msgstr "结果" msgstr "结果"
#: audits/serializers.py:98 terminal/serializers/storage.py:156 #: audits/serializers.py:98 terminal/serializers/storage.py:157
msgid "Hosts" msgid "Hosts"
msgstr "主机" msgstr "主机"
@ -2031,9 +2032,9 @@ msgstr "该 MFA ({}) 方式没有启用"
msgid "Please change your password" msgid "Please change your password"
msgstr "请修改密码" msgstr "请修改密码"
#: authentication/models.py:34 terminal/serializers/storage.py:28 #: authentication/models.py:34
msgid "Access key" msgid "Access key"
msgstr "API key" msgstr "Access key"
#: authentication/models.py:41 #: authentication/models.py:41
msgid "Private Token" msgid "Private Token"
@ -2120,13 +2121,13 @@ msgstr "显示"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/security.py:39 users/models/user.py:556 #: 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 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "禁用" msgstr "禁用"
#: authentication/templates/authentication/_access_key_modal.html:67 #: 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:26
#: users/templates/users/mfa_setting.html:68 #: users/templates/users/mfa_setting.html:68
msgid "Enable" msgid "Enable"
@ -2347,15 +2348,15 @@ msgstr "该钉钉已经绑定其他用户"
msgid "Binding DingTalk successfully" msgid "Binding DingTalk successfully"
msgstr "绑定 钉钉 成功" 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" msgid "Failed to get user from DingTalk"
msgstr "从钉钉获取用户失败" 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" msgid "DingTalk is not bound"
msgstr "钉钉没有绑定" 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" msgid "Please login with a password and then bind the DingTalk"
msgstr "请使用密码登录,然后绑定钉钉" msgstr "请使用密码登录,然后绑定钉钉"
@ -2384,15 +2385,15 @@ msgstr "飞书"
msgid "Binding FeiShu successfully" msgid "Binding FeiShu successfully"
msgstr "绑定 飞书 成功" msgstr "绑定 飞书 成功"
#: authentication/views/feishu.py:200 #: authentication/views/feishu.py:201
msgid "Failed to get user from FeiShu" msgid "Failed to get user from FeiShu"
msgstr "从飞书获取用户失败" msgstr "从飞书获取用户失败"
#: authentication/views/feishu.py:206 #: authentication/views/feishu.py:207
msgid "FeiShu is not bound" msgid "FeiShu is not bound"
msgstr "没有绑定飞书" msgstr "没有绑定飞书"
#: authentication/views/feishu.py:207 #: authentication/views/feishu.py:208
msgid "Please login with a password and then bind the FeiShu" msgid "Please login with a password and then bind the FeiShu"
msgstr "请使用密码登录,然后绑定飞书" msgstr "请使用密码登录,然后绑定飞书"
@ -3210,7 +3211,7 @@ msgstr "组织角色绑定"
msgid "System role binding" msgid "System role binding"
msgstr "系统角色绑定" msgstr "系统角色绑定"
#: rbac/serializers/permission.py:26 users/serializers/profile.py:130 #: rbac/serializers/permission.py:26 users/serializers/profile.py:132
msgid "Perms" msgid "Perms"
msgstr "权限" msgstr "权限"
@ -3436,7 +3437,7 @@ msgstr "启用登录跳转提示"
msgid "Enable CAS Auth" msgid "Enable CAS Auth"
msgstr "启用 CAS 认证" 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" msgid "Server url"
msgstr "服务端地址" msgstr "服务端地址"
@ -3464,11 +3465,11 @@ msgstr "映射属性"
msgid "Create user if not" msgid "Create user if not"
msgstr "创建用户(如果不存在)" msgstr "创建用户(如果不存在)"
#: settings/serializers/auth/dingtalk.py:11 #: settings/serializers/auth/dingtalk.py:13
msgid "Enable DingTalk Auth" msgid "Enable DingTalk Auth"
msgstr "启用钉钉认证" msgstr "启用钉钉认证"
#: settings/serializers/auth/feishu.py:10 #: settings/serializers/auth/feishu.py:12
msgid "Enable FeiShu Auth" msgid "Enable FeiShu Auth"
msgstr "启用飞书认证" msgstr "启用飞书认证"
@ -3525,96 +3526,96 @@ msgstr "搜索分页数量"
msgid "Enable LDAP auth" msgid "Enable LDAP auth"
msgstr "启用 LDAP 认证" msgstr "启用 LDAP 认证"
#: settings/serializers/auth/oidc.py:12 #: settings/serializers/auth/oidc.py:14
msgid "Base site url" msgid "Base site url"
msgstr "JumpServer 地址" msgstr "JumpServer 地址"
#: settings/serializers/auth/oidc.py:15 #: settings/serializers/auth/oidc.py:17
msgid "Client Id" msgid "Client Id"
msgstr "客户端 ID" msgstr "客户端 ID"
#: settings/serializers/auth/oidc.py:18 #: settings/serializers/auth/oidc.py:20
#: xpack/plugins/cloud/serializers/account_attrs.py:34 #: xpack/plugins/cloud/serializers/account_attrs.py:36
msgid "Client Secret" msgid "Client Secret"
msgstr "客户端密钥" msgstr "客户端密钥"
#: settings/serializers/auth/oidc.py:26 #: settings/serializers/auth/oidc.py:28
msgid "Client authentication method" msgid "Client authentication method"
msgstr "客户端认证方式" msgstr "客户端认证方式"
#: settings/serializers/auth/oidc.py:28 #: settings/serializers/auth/oidc.py:30
msgid "Share session" msgid "Share session"
msgstr "共享会话" msgstr "共享会话"
#: settings/serializers/auth/oidc.py:30 #: settings/serializers/auth/oidc.py:32
msgid "Ignore ssl verification" msgid "Ignore ssl verification"
msgstr "忽略 SSL 证书验证" msgstr "忽略 SSL 证书验证"
#: settings/serializers/auth/oidc.py:37 #: settings/serializers/auth/oidc.py:39
msgid "Use Keycloak" msgid "Use Keycloak"
msgstr "使用 Keycloak" msgstr "使用 Keycloak"
#: settings/serializers/auth/oidc.py:43 #: settings/serializers/auth/oidc.py:45
msgid "Realm name" msgid "Realm name"
msgstr "域" msgstr "域"
#: settings/serializers/auth/oidc.py:49 #: settings/serializers/auth/oidc.py:51
msgid "Enable OPENID Auth" msgid "Enable OPENID Auth"
msgstr "启用 OIDC 认证" msgstr "启用 OIDC 认证"
#: settings/serializers/auth/oidc.py:51 #: settings/serializers/auth/oidc.py:53
msgid "Provider endpoint" msgid "Provider endpoint"
msgstr "端点地址" msgstr "端点地址"
#: settings/serializers/auth/oidc.py:54 #: settings/serializers/auth/oidc.py:56
msgid "Provider auth endpoint" msgid "Provider auth endpoint"
msgstr "授权端点地址" msgstr "授权端点地址"
#: settings/serializers/auth/oidc.py:57 #: settings/serializers/auth/oidc.py:59
msgid "Provider token endpoint" msgid "Provider token endpoint"
msgstr "token 端点地址" msgstr "token 端点地址"
#: settings/serializers/auth/oidc.py:60 #: settings/serializers/auth/oidc.py:62
msgid "Provider jwks endpoint" msgid "Provider jwks endpoint"
msgstr "jwks 端点地址" msgstr "jwks 端点地址"
#: settings/serializers/auth/oidc.py:63 #: settings/serializers/auth/oidc.py:65
msgid "Provider userinfo endpoint" msgid "Provider userinfo endpoint"
msgstr "用户信息端点地址" msgstr "用户信息端点地址"
#: settings/serializers/auth/oidc.py:66 #: settings/serializers/auth/oidc.py:68
msgid "Provider end session endpoint" msgid "Provider end session endpoint"
msgstr "注销会话端点地址" msgstr "注销会话端点地址"
#: settings/serializers/auth/oidc.py:69 #: settings/serializers/auth/oidc.py:71
msgid "Provider sign alg" msgid "Provider sign alg"
msgstr "签名算法" msgstr "签名算法"
#: settings/serializers/auth/oidc.py:72 #: settings/serializers/auth/oidc.py:74
msgid "Provider sign key" msgid "Provider sign key"
msgstr "签名 Key" msgstr "签名 Key"
#: settings/serializers/auth/oidc.py:74 #: settings/serializers/auth/oidc.py:76
msgid "Scopes" msgid "Scopes"
msgstr "连接范围" msgstr "连接范围"
#: settings/serializers/auth/oidc.py:76 #: settings/serializers/auth/oidc.py:78
msgid "Id token max age" msgid "Id token max age"
msgstr "令牌有效时间" msgstr "令牌有效时间"
#: settings/serializers/auth/oidc.py:79 #: settings/serializers/auth/oidc.py:81
msgid "Id token include claims" msgid "Id token include claims"
msgstr "声明" msgstr "声明"
#: settings/serializers/auth/oidc.py:81 #: settings/serializers/auth/oidc.py:83
msgid "Use state" msgid "Use state"
msgstr "使用状态" msgstr "使用状态"
#: settings/serializers/auth/oidc.py:82 #: settings/serializers/auth/oidc.py:84
msgid "Use nonce" msgid "Use nonce"
msgstr "临时使用" 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" msgid "Always update user"
msgstr "总是更新用户信息" msgstr "总是更新用户信息"
@ -3650,25 +3651,25 @@ msgstr "SP 密钥"
msgid "SP cert" msgid "SP cert"
msgstr "SP 证书" msgstr "SP 证书"
#: settings/serializers/auth/sms.py:10 #: settings/serializers/auth/sms.py:11
msgid "Enable SMS" msgid "Enable SMS"
msgstr "启用 SMS" msgstr "启用 SMS"
#: settings/serializers/auth/sms.py:12 #: settings/serializers/auth/sms.py:13
msgid "SMS provider" msgid "SMS provider"
msgstr "短信服务商" msgstr "短信服务商"
#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:35 #: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36
#: settings/serializers/auth/sms.py:43 settings/serializers/email.py:63 #: settings/serializers/auth/sms.py:44 settings/serializers/email.py:65
msgid "Signature" msgid "Signature"
msgstr "签名" msgstr "签名"
#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36 #: settings/serializers/auth/sms.py:19 settings/serializers/auth/sms.py:37
#: settings/serializers/auth/sms.py:44 #: settings/serializers/auth/sms.py:45
msgid "Template code" msgid "Template code"
msgstr "模板" msgstr "模板"
#: settings/serializers/auth/sms.py:22 #: settings/serializers/auth/sms.py:23
msgid "Test phone" msgid "Test phone"
msgstr "测试手机号" msgstr "测试手机号"
@ -3688,7 +3689,7 @@ msgstr "Token 有效期"
msgid "Unit: second" msgid "Unit: second"
msgstr "单位: 秒" msgstr "单位: 秒"
#: settings/serializers/auth/wecom.py:11 #: settings/serializers/auth/wecom.py:13
msgid "Enable WeCom Auth" msgid "Enable WeCom Auth"
msgstr "启用企业微信认证" msgstr "启用企业微信认证"
@ -3782,85 +3783,85 @@ msgstr ""
"单位:天。 会话、录像、命令记录超过该时长将会被删除(仅影响数据库存储, oss等不" "单位:天。 会话、录像、命令记录超过该时长将会被删除(仅影响数据库存储, oss等不"
"受影响)" "受影响)"
#: settings/serializers/email.py:18 #: settings/serializers/email.py:20
msgid "SMTP host" msgid "SMTP host"
msgstr "SMTP 主机" msgstr "SMTP 主机"
#: settings/serializers/email.py:19 #: settings/serializers/email.py:21
msgid "SMTP port" msgid "SMTP port"
msgstr "SMTP 端口" msgstr "SMTP 端口"
#: settings/serializers/email.py:20 #: settings/serializers/email.py:22
msgid "SMTP account" msgid "SMTP account"
msgstr "SMTP 账号" msgstr "SMTP 账号"
#: settings/serializers/email.py:22 #: settings/serializers/email.py:24
msgid "SMTP password" msgid "SMTP password"
msgstr "SMTP 密码" msgstr "SMTP 密码"
#: settings/serializers/email.py:23 #: settings/serializers/email.py:25
msgid "Tips: Some provider use token except password" msgid "Tips: Some provider use token except password"
msgstr "提示:一些邮件提供商需要输入的是授权码" msgstr "提示:一些邮件提供商需要输入的是授权码"
#: settings/serializers/email.py:26 #: settings/serializers/email.py:28
msgid "Send user" msgid "Send user"
msgstr "发件人" msgstr "发件人"
#: settings/serializers/email.py:27 #: settings/serializers/email.py:29
msgid "Tips: Send mail account, default SMTP account as the send account" msgid "Tips: Send mail account, default SMTP account as the send account"
msgstr "提示:发送邮件账号,默认使用 SMTP 账号作为发送账号" msgstr "提示:发送邮件账号,默认使用 SMTP 账号作为发送账号"
#: settings/serializers/email.py:30 #: settings/serializers/email.py:32
msgid "Test recipient" msgid "Test recipient"
msgstr "测试收件人" msgstr "测试收件人"
#: settings/serializers/email.py:31 #: settings/serializers/email.py:33
msgid "Tips: Used only as a test mail recipient" msgid "Tips: Used only as a test mail recipient"
msgstr "提示:仅用来作为测试邮件收件人" msgstr "提示:仅用来作为测试邮件收件人"
#: settings/serializers/email.py:34 #: settings/serializers/email.py:36
msgid "Use SSL" msgid "Use SSL"
msgstr "使用 SSL" msgstr "使用 SSL"
#: settings/serializers/email.py:35 #: settings/serializers/email.py:37
msgid "If SMTP port is 465, may be select" msgid "If SMTP port is 465, may be select"
msgstr "如果SMTP端口是465通常需要启用 SSL" msgstr "如果SMTP端口是465通常需要启用 SSL"
#: settings/serializers/email.py:38 #: settings/serializers/email.py:40
msgid "Use TLS" msgid "Use TLS"
msgstr "使用 TLS" msgstr "使用 TLS"
#: settings/serializers/email.py:39 #: settings/serializers/email.py:41
msgid "If SMTP port is 587, may be select" msgid "If SMTP port is 587, may be select"
msgstr "如果SMTP端口是587通常需要启用 TLS" msgstr "如果SMTP端口是587通常需要启用 TLS"
#: settings/serializers/email.py:42 #: settings/serializers/email.py:44
msgid "Subject prefix" msgid "Subject prefix"
msgstr "主题前缀" msgstr "主题前缀"
#: settings/serializers/email.py:49 #: settings/serializers/email.py:51
msgid "Create user email subject" msgid "Create user email subject"
msgstr "邮件主题" msgstr "邮件主题"
#: settings/serializers/email.py:50 #: settings/serializers/email.py:52
msgid "" msgid ""
"Tips: When creating a user, send the subject of the email (eg:Create account " "Tips: When creating a user, send the subject of the email (eg:Create account "
"successfully)" "successfully)"
msgstr "提示: 创建用户时,发送设置密码邮件的主题 (例如: 创建用户成功)" msgstr "提示: 创建用户时,发送设置密码邮件的主题 (例如: 创建用户成功)"
#: settings/serializers/email.py:54 #: settings/serializers/email.py:56
msgid "Create user honorific" msgid "Create user honorific"
msgstr "邮件问候语" 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)" msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)"
msgstr "提示: 创建用户时,发送设置密码邮件的敬语 (例如: 你好)" msgstr "提示: 创建用户时,发送设置密码邮件的敬语 (例如: 你好)"
#: settings/serializers/email.py:59 #: settings/serializers/email.py:61
msgid "Create user email content" msgid "Create user email content"
msgstr "邮件的内容" msgstr "邮件的内容"
#: settings/serializers/email.py:60 #: settings/serializers/email.py:62
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Tips: When creating a user, send the content of the email, support " "Tips: When creating a user, send the content of the email, support "
@ -3868,7 +3869,7 @@ msgid ""
msgstr "" msgstr ""
"提示: 创建用户时,发送设置密码邮件的内容, 支持 {username} {name} {email} 标签" "提示: 创建用户时,发送设置密码邮件的内容, 支持 {username} {name} {email} 标签"
#: settings/serializers/email.py:64 #: settings/serializers/email.py:66
msgid "Tips: Email signature (eg:jumpserver)" msgid "Tips: Email signature (eg:jumpserver)"
msgstr "邮件署名 (如:jumpserver)" msgstr "邮件署名 (如:jumpserver)"
@ -4688,9 +4689,9 @@ msgid "Redis Port"
msgstr "Redis 端口" msgstr "Redis 端口"
#: terminal/models/endpoint.py:26 terminal/models/endpoint.py:67 #: terminal/models/endpoint.py:26 terminal/models/endpoint.py:67
#: terminal/serializers/endpoint.py:41 terminal/serializers/storage.py:37 #: terminal/serializers/endpoint.py:41 terminal/serializers/storage.py:38
#: terminal/serializers/storage.py:49 terminal/serializers/storage.py:79 #: terminal/serializers/storage.py:50 terminal/serializers/storage.py:80
#: terminal/serializers/storage.py:89 terminal/serializers/storage.py:97 #: terminal/serializers/storage.py:90 terminal/serializers/storage.py:98
msgid "Endpoint" msgid "Endpoint"
msgstr "端点" msgstr "端点"
@ -4907,67 +4908,73 @@ msgstr "是否可中断"
msgid "Command amount" msgid "Command amount"
msgstr "命令数量" msgstr "命令数量"
#: terminal/serializers/storage.py:19 #: terminal/serializers/storage.py:20
msgid "Endpoint invalid: remove path `{}`" msgid "Endpoint invalid: remove path `{}`"
msgstr "端点无效: 移除路径 `{}`" msgstr "端点无效: 移除路径 `{}`"
#: terminal/serializers/storage.py:25 #: terminal/serializers/storage.py:26
msgid "Bucket" msgid "Bucket"
msgstr "桶名称" msgstr "桶名称"
#: terminal/serializers/storage.py:32 users/models/user.py:695 #: terminal/serializers/storage.py:30
msgid "Secret key" #: xpack/plugins/cloud/serializers/account_attrs.py:15
msgstr "密钥" 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" msgid "Region"
msgstr "地域" msgstr "地域"
#: terminal/serializers/storage.py:108 #: terminal/serializers/storage.py:109
msgid "Container name" msgid "Container name"
msgstr "容器名称" msgstr "容器名称"
#: terminal/serializers/storage.py:110 #: terminal/serializers/storage.py:111
msgid "Account name" msgid "Account name"
msgstr "账号名称" msgstr "账号名称"
#: terminal/serializers/storage.py:111 #: terminal/serializers/storage.py:112
msgid "Account key" msgid "Account key"
msgstr "账号密钥" msgstr "账号密钥"
#: terminal/serializers/storage.py:114 #: terminal/serializers/storage.py:115
msgid "Endpoint suffix" msgid "Endpoint suffix"
msgstr "端点后缀" msgstr "端点后缀"
#: terminal/serializers/storage.py:134 #: terminal/serializers/storage.py:135
msgid "The address format is incorrect" msgid "The address format is incorrect"
msgstr "地址格式不正确" msgstr "地址格式不正确"
#: terminal/serializers/storage.py:141 #: terminal/serializers/storage.py:142
msgid "Host invalid" msgid "Host invalid"
msgstr "主机无效" msgstr "主机无效"
#: terminal/serializers/storage.py:144 #: terminal/serializers/storage.py:145
msgid "Port invalid" msgid "Port invalid"
msgstr "端口无效" msgstr "端口无效"
#: terminal/serializers/storage.py:159 #: terminal/serializers/storage.py:160
msgid "Index by date" msgid "Index by date"
msgstr "按日期建索引" msgstr "按日期建索引"
#: terminal/serializers/storage.py:160 #: terminal/serializers/storage.py:161
msgid "Whether to create an index by date" msgid "Whether to create an index by date"
msgstr "是否根据日期动态建立索引" msgstr "是否根据日期动态建立索引"
#: terminal/serializers/storage.py:163 #: terminal/serializers/storage.py:164
msgid "Index" msgid "Index"
msgstr "索引" msgstr "索引"
#: terminal/serializers/storage.py:165 #: terminal/serializers/storage.py:166
msgid "Doc type" msgid "Doc type"
msgstr "文档类型" msgstr "文档类型"
#: terminal/serializers/storage.py:167 #: terminal/serializers/storage.py:168
msgid "Ignore Certificate Verification" msgid "Ignore Certificate Verification"
msgstr "忽略证书认证" msgstr "忽略证书认证"
@ -5254,11 +5261,11 @@ msgstr "流程"
msgid "TicketFlow" msgid "TicketFlow"
msgstr "工单流程" msgstr "工单流程"
#: tickets/models/ticket.py:311 #: tickets/models/ticket.py:320
msgid "Please try again" msgid "Please try again"
msgstr "请再次尝试" msgstr "请再次尝试"
#: tickets/models/ticket.py:319 #: tickets/models/ticket.py:328
msgid "Super ticket" msgid "Super ticket"
msgstr "超级工单" msgstr "超级工单"
@ -5560,8 +5567,8 @@ msgstr "复制你的公钥到这里"
msgid "Public key should not be the same as your old one." msgid "Public key should not be the same as your old one."
msgstr "不能和原来的密钥相同" msgstr "不能和原来的密钥相同"
#: users/forms/profile.py:150 users/serializers/profile.py:98 #: users/forms/profile.py:150 users/serializers/profile.py:100
#: users/serializers/profile.py:181 users/serializers/profile.py:208 #: users/serializers/profile.py:183 users/serializers/profile.py:210
msgid "Not a valid ssh public key" msgid "Not a valid ssh public key"
msgstr "SSH密钥不合法" msgstr "SSH密钥不合法"
@ -5589,6 +5596,10 @@ msgstr "头像"
msgid "Wechat" msgid "Wechat"
msgstr "微信" msgstr "微信"
#: users/models/user.py:695
msgid "Secret key"
msgstr "Secret key"
#: users/models/user.py:711 #: users/models/user.py:711
msgid "Source" msgid "Source"
msgstr "来源" msgstr "来源"
@ -5660,7 +5671,7 @@ msgstr "重置 MFA"
msgid "The old password is incorrect" msgid "The old password is incorrect"
msgstr "旧密码错误" 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" msgid "Password does not match security rules"
msgstr "密码不满足安全规则" msgstr "密码不满足安全规则"
@ -5668,11 +5679,11 @@ msgstr "密码不满足安全规则"
msgid "The new password cannot be the last {} passwords" msgid "The new password cannot be the last {} passwords"
msgstr "新密码不能是最近 {} 次的密码" 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" msgid "The newly set password is inconsistent"
msgstr "两次密码不一致" 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" msgid "Is first login"
msgstr "首次登录" msgstr "首次登录"
@ -6560,48 +6571,40 @@ msgstr "有效性显示"
msgid "Provider display" msgid "Provider display"
msgstr "服务商显示" msgstr "服务商显示"
#: xpack/plugins/cloud/serializers/account_attrs.py:13 #: xpack/plugins/cloud/serializers/account_attrs.py:33
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
msgid "Client ID" msgid "Client ID"
msgstr "客户端 ID" msgstr "客户端 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:37 #: xpack/plugins/cloud/serializers/account_attrs.py:39
msgid "Tenant ID" msgid "Tenant ID"
msgstr "租户 ID" msgstr "租户 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:40 #: xpack/plugins/cloud/serializers/account_attrs.py:42
msgid "Subscription ID" msgid "Subscription ID"
msgstr "订阅 ID" msgstr "订阅 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:91 #: xpack/plugins/cloud/serializers/account_attrs.py:93
#: xpack/plugins/cloud/serializers/account_attrs.py:96 #: xpack/plugins/cloud/serializers/account_attrs.py:98
msgid "API Endpoint" msgid "API Endpoint"
msgstr "API 端点" msgstr "API 端点"
#: xpack/plugins/cloud/serializers/account_attrs.py:102 #: xpack/plugins/cloud/serializers/account_attrs.py:104
msgid "Auth url" msgid "Auth url"
msgstr "认证地址" 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" msgid "eg: http://openstack.example.com:5000/v3"
msgstr "如: 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" msgid "User domain"
msgstr "用户域" msgstr "用户域"
#: xpack/plugins/cloud/serializers/account_attrs.py:113 #: xpack/plugins/cloud/serializers/account_attrs.py:115
msgid "Service account key" msgid "Service account key"
msgstr "服务账号密钥" msgstr "服务账号密钥"
#: xpack/plugins/cloud/serializers/account_attrs.py:114 #: xpack/plugins/cloud/serializers/account_attrs.py:116
msgid "The file is in JSON format" msgid "The file is in JSON format"
msgstr "JSON 格式的文件" msgstr "JSON 格式的文件"
@ -6719,6 +6722,9 @@ msgstr "旗舰版"
msgid "Community edition" msgid "Community edition"
msgstr "社区版" msgstr "社区版"
#~ msgid "AccessKey ID"
#~ msgstr "Access key ID"
#~ msgid "Unknown ip" #~ msgid "Unknown ip"
#~ msgstr "未知ip" #~ msgstr "未知ip"

View File

@ -1,11 +1,13 @@
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = ['DingTalkSettingSerializer'] __all__ = ['DingTalkSettingSerializer']
class DingTalkSettingSerializer(serializers.Serializer): class DingTalkSettingSerializer(serializers.Serializer):
DINGTALK_AGENTID = serializers.CharField(max_length=256, required=True, label='AgentId') DINGTALK_AGENTID = serializers.CharField(max_length=256, required=True, label='AgentId')
DINGTALK_APPKEY = serializers.CharField(max_length=256, required=True, label='AppKey') 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')) 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 django.utils.translation import ugettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = ['FeiShuSettingSerializer'] __all__ = ['FeiShuSettingSerializer']
class FeiShuSettingSerializer(serializers.Serializer): class FeiShuSettingSerializer(serializers.Serializer):
FEISHU_APP_ID = serializers.CharField(max_length=256, required=True, label='App ID') 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')) AUTH_FEISHU = serializers.BooleanField(default=False, label=_('Enable FeiShu Auth'))

View File

@ -12,7 +12,7 @@ __all__ = [
class LDAPTestConfigSerializer(serializers.Serializer): class LDAPTestConfigSerializer(serializers.Serializer):
AUTH_LDAP_SERVER_URI = serializers.CharField(max_length=1024) 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_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_OU = serializers.CharField()
AUTH_LDAP_SEARCH_FILTER = serializers.CharField() AUTH_LDAP_SEARCH_FILTER = serializers.CharField()
AUTH_LDAP_USER_ATTR_MAP = serializers.CharField() AUTH_LDAP_USER_ATTR_MAP = serializers.CharField()
@ -42,8 +42,8 @@ class LDAPSettingSerializer(serializers.Serializer):
help_text=_('eg: ldap://localhost:389') help_text=_('eg: ldap://localhost:389')
) )
AUTH_LDAP_BIND_DN = serializers.CharField(required=False, max_length=1024, label=_('Bind DN')) AUTH_LDAP_BIND_DN = serializers.CharField(required=False, max_length=1024, label=_('Bind DN'))
AUTH_LDAP_BIND_PASSWORD = serializers.CharField( AUTH_LDAP_BIND_PASSWORD = EncryptedField(
max_length=1024, write_only=True, required=False, label=_('Password') max_length=1024, required=False, label=_('Password')
) )
AUTH_LDAP_SEARCH_OU = serializers.CharField( AUTH_LDAP_SEARCH_OU = serializers.CharField(
max_length=1024, allow_blank=True, required=False, label=_('User OU'), 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 django.utils.translation import ugettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = [ __all__ = [
'OIDCSettingSerializer', 'KeycloakSettingSerializer', 'OIDCSettingSerializer', 'KeycloakSettingSerializer',
] ]
@ -14,8 +16,8 @@ class CommonSettingSerializer(serializers.Serializer):
AUTH_OPENID_CLIENT_ID = serializers.CharField( AUTH_OPENID_CLIENT_ID = serializers.CharField(
required=False, max_length=1024, label=_('Client Id') required=False, max_length=1024, label=_('Client Id')
) )
AUTH_OPENID_CLIENT_SECRET = serializers.CharField( AUTH_OPENID_CLIENT_SECRET = EncryptedField(
required=False, max_length=1024, write_only=True, label=_('Client Secret') required=False, max_length=1024, label=_('Client Secret')
) )
AUTH_OPENID_CLIENT_AUTH_METHOD = serializers.ChoiceField( AUTH_OPENID_CLIENT_AUTH_METHOD = serializers.ChoiceField(
default='client_secret_basic', default='client_secret_basic',

View File

@ -4,16 +4,16 @@
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
__all__ = [ from common.drf.fields import EncryptedField
'RadiusSettingSerializer',
] __all__ = ['RadiusSettingSerializer']
class RadiusSettingSerializer(serializers.Serializer): class RadiusSettingSerializer(serializers.Serializer):
AUTH_RADIUS = serializers.BooleanField(required=False, label=_('Enable Radius Auth')) 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_SERVER = serializers.CharField(required=False, allow_blank=True, max_length=1024, label=_('Host'))
RADIUS_PORT = serializers.IntegerField(required=False, label=_('Port')) RADIUS_PORT = serializers.IntegerField(required=False, label=_('Port'))
RADIUS_SECRET = serializers.CharField( RADIUS_SECRET = EncryptedField(
required=False, max_length=1024, allow_null=True, label=_('Secret'), write_only=True required=False, max_length=1024, allow_null=True, label=_('Secret'),
) )
OTP_IN_RADIUS = serializers.BooleanField(required=False, label=_('OTP in Radius')) 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 django.utils.translation import ugettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from common.drf.fields import EncryptedField
from common.sdk.sms import BACKENDS from common.sdk.sms import BACKENDS
__all__ = ['SMSSettingSerializer', 'AlibabaSMSSettingSerializer', 'TencentSMSSettingSerializer'] __all__ = ['SMSSettingSerializer', 'AlibabaSMSSettingSerializer', 'TencentSMSSettingSerializer']
@ -29,8 +30,8 @@ class BaseSMSSettingSerializer(serializers.Serializer):
class AlibabaSMSSettingSerializer(BaseSMSSettingSerializer): class AlibabaSMSSettingSerializer(BaseSMSSettingSerializer):
ALIBABA_ACCESS_KEY_ID = serializers.CharField(max_length=256, required=True, label='AccessKeyId') ALIBABA_ACCESS_KEY_ID = serializers.CharField(max_length=256, required=True, label='AccessKeyId')
ALIBABA_ACCESS_KEY_SECRET = serializers.CharField( ALIBABA_ACCESS_KEY_SECRET = EncryptedField(
max_length=256, required=False, label='AccessKeySecret', write_only=True max_length=256, required=False, label='AccessKeySecret',
) )
ALIBABA_VERIFY_SIGN_NAME = serializers.CharField(max_length=256, required=True, label=_('Signature')) 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')) ALIBABA_VERIFY_TEMPLATE_CODE = serializers.CharField(max_length=256, required=True, label=_('Template code'))
@ -38,7 +39,7 @@ class AlibabaSMSSettingSerializer(BaseSMSSettingSerializer):
class TencentSMSSettingSerializer(BaseSMSSettingSerializer): class TencentSMSSettingSerializer(BaseSMSSettingSerializer):
TENCENT_SECRET_ID = serializers.CharField(max_length=256, required=True, label='Secret id') 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_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_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')) 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 django.utils.translation import ugettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = ['WeComSettingSerializer'] __all__ = ['WeComSettingSerializer']
class WeComSettingSerializer(serializers.Serializer): class WeComSettingSerializer(serializers.Serializer):
WECOM_CORPID = serializers.CharField(max_length=256, required=True, label='corpid') WECOM_CORPID = serializers.CharField(max_length=256, required=True, label='corpid')
WECOM_AGENTID = serializers.CharField(max_length=256, required=True, label='agentid') 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')) 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 django.utils.translation import ugettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from common.drf.fields import EncryptedField
__all__ = ['MailTestSerializer', 'EmailSettingSerializer', 'EmailContentSettingSerializer'] __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_HOST = serializers.CharField(max_length=1024, required=True, label=_("SMTP host"))
EMAIL_PORT = serializers.CharField(max_length=5, required=True, label=_("SMTP port")) 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_USER = serializers.CharField(max_length=128, required=True, label=_("SMTP account"))
EMAIL_HOST_PASSWORD = serializers.CharField( EMAIL_HOST_PASSWORD = EncryptedField(
max_length=1024, write_only=True, required=False, label=_("SMTP password"), max_length=1024, required=False, label=_("SMTP password"),
help_text=_("Tips: Some provider use token except password") help_text=_("Tips: Some provider use token except password")
) )
EMAIL_FROM = serializers.CharField( EMAIL_FROM = serializers.CharField(

View File

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

View File

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