diff --git a/apps/assets/const/protocol.py b/apps/assets/const/protocol.py index 9588149ad..6886cbc4d 100644 --- a/apps/assets/const/protocol.py +++ b/apps/assets/const/protocol.py @@ -81,6 +81,26 @@ class Protocol(ChoicesMixin, models.TextChoices): cls.telnet: { 'port': 23, 'secret_types': ['password'], + 'setting': { + 'username_prompt': { + 'type': 'str', + 'default': 'username:|login:', + 'label': _('Username prompt'), + 'help_text': _('We will send username when we see this prompt') + }, + 'password_prompt': { + 'type': 'str', + 'default': 'password:', + 'label': _('Password prompt'), + 'help_text': _('We will send password when we see this prompt') + }, + 'success_prompt': { + 'type': 'str', + 'default': 'success|成功|#|>|\$', + 'label': _('Success prompt'), + 'help_text': _('We will consider login success when we see this prompt') + } + } }, cls.winrm: { 'port': 5985, diff --git a/apps/assets/migrations/0123_auto_20230802_1740.py b/apps/assets/migrations/0123_auto_20230802_1740.py new file mode 100644 index 000000000..904b9f379 --- /dev/null +++ b/apps/assets/migrations/0123_auto_20230802_1740.py @@ -0,0 +1,33 @@ +# Generated by Django 4.1.10 on 2023-08-02 09:40 + +from django.db import migrations +import json + + +def migrate_telnet_regex(apps, schema_editor): + setting_cls = apps.get_model('settings', 'Setting') + setting = setting_cls.objects.filter(name='TERMINAL_TELNET_REGEX').first() + if not setting: + print("Not found telnet regex setting, skip") + return + try: + value = json.loads(setting.value) + except Exception: + print("Invalid telnet regex setting, skip") + return + platform_protocol_cls = apps.get_model('assets', 'PlatformProtocol') + telnets = platform_protocol_cls.objects.filter(name='telnet') + if telnets.count() > 0: + telnets.update(setting={'success_prompt': value}) + print("Migrate telnet regex setting success: ", telnets.count()) + + +class Migration(migrations.Migration): + + dependencies = [ + ('assets', '0122_auto_20230801_1940'), + ] + + operations = [ + migrations.RunPython(migrate_telnet_regex) + ] diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 98a6477d4..eb339f8a1 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -449,7 +449,6 @@ class Config(dict): 'TERMINAL_ASSET_LIST_PAGE_SIZE': 'auto', 'TERMINAL_SESSION_KEEP_DURATION': 200, 'TERMINAL_HOST_KEY': '', - 'TERMINAL_TELNET_REGEX': '', 'TERMINAL_COMMAND_STORAGE': {}, # Luna 页面 # 默认图形化分辨率 @@ -554,6 +553,7 @@ class Config(dict): 'TICKET_AUTHORIZE_DEFAULT_TIME': 7, 'TICKET_AUTHORIZE_DEFAULT_TIME_UNIT': 'day', 'PERIOD_TASK_ENABLED': True, + 'TERMINAL_TELNET_REGEX': '', # 导航栏 帮助 'HELP_DOCUMENT_URL': 'https://docs.jumpserver.org/zh/v3/', diff --git a/apps/jumpserver/settings/custom.py b/apps/jumpserver/settings/custom.py index 16d503f1c..71c90cef3 100644 --- a/apps/jumpserver/settings/custom.py +++ b/apps/jumpserver/settings/custom.py @@ -82,7 +82,7 @@ TERMINAL_ASSET_LIST_PAGE_SIZE = CONFIG.TERMINAL_ASSET_LIST_PAGE_SIZE TERMINAL_SESSION_KEEP_DURATION = CONFIG.TERMINAL_SESSION_KEEP_DURATION TERMINAL_HOST_KEY = CONFIG.TERMINAL_HOST_KEY TERMINAL_HEADER_TITLE = CONFIG.TERMINAL_HEADER_TITLE -TERMINAL_TELNET_REGEX = CONFIG.TERMINAL_TELNET_REGEX +# TERMINAL_TELNET_REGEX = CONFIG.TERMINAL_TELNET_REGEX # 默认图形化分辨率 TERMINAL_GRAPHICAL_RESOLUTION = CONFIG.TERMINAL_GRAPHICAL_RESOLUTION diff --git a/apps/locale/ja/LC_MESSAGES/django.mo b/apps/locale/ja/LC_MESSAGES/django.mo index e2cc899ec..4b1734de2 100644 --- a/apps/locale/ja/LC_MESSAGES/django.mo +++ b/apps/locale/ja/LC_MESSAGES/django.mo @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:538beabe7c224b203bbc0ebaf191509a8f407f6b3e8194038fc203bde10d6d5a -size 150250 +oid sha256:d9e79f70d055fa4d3fda971820bcd0eb186a8806d91346c7038add4ee89d647a +size 151115 diff --git a/apps/locale/ja/LC_MESSAGES/django.po b/apps/locale/ja/LC_MESSAGES/django.po index a51437386..3c45e852b 100644 --- a/apps/locale/ja/LC_MESSAGES/django.po +++ b/apps/locale/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-31 16:39+0800\n" +"POT-Creation-Date: 2023-08-02 16:52+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -45,7 +45,7 @@ msgid "Access key" msgstr "アクセスキー" #: accounts/const/account.py:9 assets/models/_user.py:48 -#: authentication/models/sso_token.py:14 +#: authentication/models/sso_token.py:14 settings/serializers/vault.py:19 msgid "Token" msgstr "トークン" @@ -53,7 +53,7 @@ msgstr "トークン" msgid "API key" msgstr "" -#: accounts/const/account.py:14 common/db/fields.py:244 +#: accounts/const/account.py:14 common/db/fields.py:235 #: settings/serializers/terminal.py:14 msgid "All" msgstr "すべて" @@ -187,10 +187,20 @@ msgstr "作成してプッシュ" msgid "Only create" msgstr "作成のみ" -#: accounts/models/account.py:49 +#: accounts/const/vault.py:8 +#, fuzzy +#| msgid "Local" +msgid "Local Vault" +msgstr "ローカル" + +#: accounts/const/vault.py:9 +msgid "HCP Vault" +msgstr "" + +#: accounts/models/account.py:50 #: accounts/models/automations/gather_account.py:16 #: accounts/serializers/account/account.py:200 -#: accounts/serializers/account/account.py:237 +#: accounts/serializers/account/account.py:245 #: accounts/serializers/account/gathered_account.py:10 #: accounts/serializers/automations/change_secret.py:112 #: accounts/serializers/automations/change_secret.py:132 @@ -207,29 +217,29 @@ msgstr "作成のみ" msgid "Asset" msgstr "資産" -#: accounts/models/account.py:53 accounts/models/account.py:126 -#: accounts/serializers/account/account.py:208 -#: accounts/serializers/account/account.py:247 +#: accounts/models/account.py:54 accounts/models/account.py:127 +#: accounts/serializers/account/account.py:207 +#: accounts/serializers/account/account.py:255 #: accounts/serializers/account/template.py:16 #: authentication/serializers/connect_token_secret.py:49 msgid "Su from" msgstr "から切り替え" -#: accounts/models/account.py:55 settings/serializers/auth/cas.py:20 +#: accounts/models/account.py:56 settings/serializers/auth/cas.py:20 #: settings/serializers/auth/feishu.py:20 terminal/models/applet/applet.py:34 msgid "Version" msgstr "バージョン" -#: accounts/models/account.py:57 accounts/serializers/account/account.py:203 +#: accounts/models/account.py:58 accounts/serializers/account/account.py:202 #: users/models/user.py:804 msgid "Source" msgstr "ソース" -#: accounts/models/account.py:58 +#: accounts/models/account.py:59 msgid "Source ID" msgstr "ソース ID" -#: accounts/models/account.py:61 +#: accounts/models/account.py:62 #: accounts/serializers/automations/change_secret.py:113 #: accounts/serializers/automations/change_secret.py:133 #: acls/serializers/base.py:124 assets/serializers/asset/common.py:125 @@ -242,35 +252,35 @@ msgstr "ソース ID" msgid "Account" msgstr "アカウント" -#: accounts/models/account.py:67 +#: accounts/models/account.py:68 msgid "Can view asset account secret" msgstr "資産アカウントの秘密を表示できます" -#: accounts/models/account.py:68 +#: accounts/models/account.py:69 msgid "Can view asset history account" msgstr "資産履歴アカウントを表示できます" -#: accounts/models/account.py:69 +#: accounts/models/account.py:70 msgid "Can view asset history account secret" msgstr "資産履歴アカウントパスワードを表示できます" -#: accounts/models/account.py:70 +#: accounts/models/account.py:71 msgid "Can verify account" msgstr "アカウントを確認できます" -#: accounts/models/account.py:71 +#: accounts/models/account.py:72 msgid "Can push account" msgstr "アカウントをプッシュできます" -#: accounts/models/account.py:130 +#: accounts/models/account.py:131 msgid "Account template" msgstr "アカウント テンプレート" -#: accounts/models/account.py:135 +#: accounts/models/account.py:136 msgid "Can view asset account template secret" msgstr "アセット アカウント テンプレートのパスワードを表示できます" -#: accounts/models/account.py:136 +#: accounts/models/account.py:137 msgid "Can change asset account template secret" msgstr "アセット アカウント テンプレートのパスワードを変更できます" @@ -323,7 +333,7 @@ msgstr "理由" #: accounts/models/automations/backup_account.py:99 #: accounts/serializers/automations/change_secret.py:111 #: accounts/serializers/automations/change_secret.py:134 -#: ops/serializers/job.py:56 terminal/serializers/session.py:43 +#: ops/serializers/job.py:56 terminal/serializers/session.py:44 msgid "Is success" msgstr "成功は" @@ -368,7 +378,7 @@ msgid "Can add push account execution" msgstr "プッシュ アカウントの作成の実行" #: accounts/models/automations/change_secret.py:18 accounts/models/base.py:36 -#: accounts/serializers/account/account.py:419 +#: accounts/serializers/account/account.py:427 #: accounts/serializers/account/base.py:16 #: accounts/serializers/automations/change_secret.py:46 #: authentication/serializers/connect_token_secret.py:41 @@ -377,8 +387,8 @@ msgid "Secret type" msgstr "鍵の種類" #: accounts/models/automations/change_secret.py:20 -#: accounts/models/automations/change_secret.py:89 accounts/models/base.py:38 -#: accounts/serializers/account/base.py:19 +#: accounts/models/automations/change_secret.py:89 +#: accounts/models/mixins/vault.py:48 accounts/serializers/account/base.py:19 #: authentication/models/temp_token.py:10 #: authentication/templates/authentication/_access_key_modal.html:31 #: settings/serializers/auth/radius.py:19 @@ -418,7 +428,7 @@ msgid "Date finished" msgstr "終了日" #: accounts/models/automations/change_secret.py:93 -#: accounts/serializers/account/account.py:239 assets/const/automation.py:8 +#: accounts/serializers/account/account.py:247 assets/const/automation.py:8 #: authentication/views/base.py:26 authentication/views/base.py:27 #: authentication/views/base.py:28 common/const/choices.py:20 msgid "Error" @@ -497,7 +507,7 @@ msgstr "アカウントの確認" #: assets/serializers/platform.py:223 #: authentication/serializers/connect_token_secret.py:110 ops/mixin.py:21 #: ops/models/adhoc.py:20 ops/models/celery.py:15 ops/models/celery.py:57 -#: ops/models/job.py:94 ops/models/playbook.py:23 ops/serializers/job.py:20 +#: ops/models/job.py:94 ops/models/playbook.py:28 ops/serializers/job.py:20 #: orgs/models.py:80 perms/models/asset_permission.py:56 rbac/models/role.py:29 #: settings/models.py:32 settings/serializers/sms.py:6 #: terminal/models/applet/applet.py:32 terminal/models/component/endpoint.py:12 @@ -509,11 +519,11 @@ msgstr "アカウントの確認" msgid "Name" msgstr "名前" -#: accounts/models/base.py:39 +#: accounts/models/base.py:38 msgid "Privileged" msgstr "特権アカウント" -#: accounts/models/base.py:40 assets/models/asset/common.py:156 +#: accounts/models/base.py:39 assets/models/asset/common.py:156 #: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39 #: assets/models/label.py:22 #: authentication/serializers/connect_token_secret.py:114 @@ -588,8 +598,8 @@ msgstr "カテゴリ" #: assets/serializers/asset/common.py:122 assets/serializers/platform.py:112 #: assets/serializers/platform.py:127 audits/serializers.py:49 #: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:105 -#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:38 -#: terminal/models/component/storage.py:57 +#: perms/serializers/user_permission.py:27 settings/serializers/vault.py:13 +#: terminal/models/applet/applet.py:38 terminal/models/component/storage.py:57 #: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29 #: terminal/serializers/session.py:20 terminal/serializers/storage.py:226 #: terminal/serializers/storage.py:238 tickets/models/comment.py:26 @@ -603,23 +613,22 @@ msgstr "タイプ" msgid "Asset not found" msgstr "資産が存在しません" -#: accounts/serializers/account/account.py:201 -#: accounts/serializers/account/base.py:64 +#: accounts/serializers/account/account.py:236 msgid "Has secret" msgstr "エスクローされたパスワード" -#: accounts/serializers/account/account.py:238 ops/models/celery.py:60 +#: accounts/serializers/account/account.py:246 ops/models/celery.py:60 #: tickets/models/comment.py:13 tickets/models/ticket/general.py:45 #: tickets/models/ticket/general.py:279 tickets/serializers/super_ticket.py:14 #: tickets/serializers/ticket/ticket.py:21 msgid "State" msgstr "状態" -#: accounts/serializers/account/account.py:240 +#: accounts/serializers/account/account.py:248 msgid "Changed" msgstr "編集済み" -#: accounts/serializers/account/account.py:250 +#: accounts/serializers/account/account.py:258 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: assets/models/automations/base.py:19 #: assets/serializers/automations/base.py:20 ops/models/base.py:17 @@ -628,27 +637,27 @@ msgstr "編集済み" msgid "Assets" msgstr "資産" -#: accounts/serializers/account/account.py:305 +#: accounts/serializers/account/account.py:313 msgid "Account already exists" msgstr "アカウントはすでに存在しています" -#: accounts/serializers/account/account.py:355 +#: accounts/serializers/account/account.py:363 #, python-format msgid "Asset does not support this secret type: %s" msgstr "アセットはアカウント タイプをサポートしていません: %s" -#: accounts/serializers/account/account.py:387 +#: accounts/serializers/account/account.py:395 msgid "Account has exist" msgstr "アカウントはすでに存在しています" -#: accounts/serializers/account/account.py:420 +#: accounts/serializers/account/account.py:428 #: authentication/serializers/connect_token_secret.py:156 #: authentication/templates/authentication/_access_key_modal.html:30 #: perms/models/perm_node.py:21 users/serializers/group.py:31 msgid "ID" msgstr "ID" -#: accounts/serializers/account/account.py:427 acls/serializers/base.py:116 +#: accounts/serializers/account/account.py:435 acls/serializers/base.py:116 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:49 #: audits/models.py:85 audits/models.py:163 #: authentication/models/connection_token.py:32 @@ -656,10 +665,10 @@ msgstr "ID" #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58 #: perms/serializers/permission.py:30 rbac/builtin.py:123 -#: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:16 -#: terminal/models/session/session.py:29 terminal/models/session/sharing.py:33 -#: terminal/notifications.py:156 terminal/notifications.py:205 -#: terminal/serializers/command.py:16 +#: rbac/models/rolebinding.py:49 rbac/serializers/rolebinding.py:17 +#: terminal/backends/command/models.py:16 terminal/models/session/session.py:29 +#: terminal/models/session/sharing.py:33 terminal/notifications.py:156 +#: terminal/notifications.py:205 terminal/serializers/command.py:16 #: terminal/templates/terminal/_msg_command_warning.html:6 #: terminal/templates/terminal/_msg_session_sharing.html:6 #: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:947 @@ -667,7 +676,7 @@ msgstr "ID" msgid "User" msgstr "ユーザー" -#: accounts/serializers/account/account.py:428 +#: accounts/serializers/account/account.py:436 #: authentication/templates/authentication/_access_key_modal.html:33 #: terminal/notifications.py:158 terminal/notifications.py:207 msgid "Date" @@ -698,12 +707,12 @@ msgstr "資産タイプ" msgid "Key password" msgstr "キーパスワード" -#: accounts/serializers/account/base.py:80 +#: accounts/serializers/account/base.py:78 #: assets/serializers/asset/common.py:311 msgid "Spec info" msgstr "特別情報" -#: accounts/serializers/account/base.py:82 +#: accounts/serializers/account/base.py:80 msgid "" "Tip: If no username is required for authentication, fill in `null`, If AD " "account, like `username@domain`" @@ -769,6 +778,12 @@ msgstr "資産の口座番号を収集する" msgid "Push accounts to assets" msgstr "アカウントをアセットにプッシュ:" +#: accounts/tasks/vault.py:15 +#, fuzzy +#| msgid "Sync instance detail" +msgid "Sync secret to vault" +msgstr "同期インスタンスの詳細" + #: accounts/tasks/verify_account.py:49 msgid "Verify asset account availability" msgstr "アセット アカウントの可用性を確認する" @@ -777,19 +792,19 @@ msgstr "アセット アカウントの可用性を確認する" msgid "Verify accounts connectivity" msgstr "アカウント接続のテスト" -#: accounts/utils.py:43 +#: accounts/utils.py:41 msgid "Password can not contains `{{` " msgstr "パスワードには '{{' を含まない" -#: accounts/utils.py:46 +#: accounts/utils.py:44 msgid "Password can not contains `'` " msgstr "パスワードには `'` を含まない" -#: accounts/utils.py:48 +#: accounts/utils.py:46 msgid "Password can not contains `\"` " msgstr "パスワードには `\"` を含まない" -#: accounts/utils.py:54 +#: accounts/utils.py:52 msgid "private key invalid or passphrase error" msgstr "秘密鍵が無効またはpassphraseエラー" @@ -1083,14 +1098,15 @@ msgstr "無効" msgid "Basic" msgstr "基本" -#: assets/const/base.py:35 assets/const/protocol.py:201 +#: assets/const/base.py:35 assets/const/protocol.py:221 #: assets/models/asset/web.py:13 msgid "Script" msgstr "脚本" #: assets/const/category.py:10 assets/models/asset/host.py:8 #: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:67 -#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 +#: settings/serializers/vault.py:16 terminal/models/component/endpoint.py:13 +#: terminal/serializers/applet.py:17 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "ホスト" @@ -1183,41 +1199,65 @@ msgstr "接続に使用するセキュリティ レイヤー" msgid "AD domain" msgstr "AD ドメイン" -#: assets/const/protocol.py:92 assets/models/asset/database.py:10 +#: assets/const/protocol.py:88 +msgid "Username prompt" +msgstr "ユーザー名プロンプト" + +#: assets/const/protocol.py:89 +msgid "We will send username when we see this prompt" +msgstr "このプロンプトが表示されたらユーザー名を送信します" + +#: assets/const/protocol.py:94 +msgid "Password prompt" +msgstr "パスワードプロンプト" + +#: assets/const/protocol.py:95 +msgid "We will send password when we see this prompt" +msgstr "このプロンプトが表示されたらパスワードを送信します" + +#: assets/const/protocol.py:100 +msgid "Success prompt" +msgstr "成功プロンプト" + +#: assets/const/protocol.py:101 +msgid "We will consider login success when we see this prompt" +msgstr "このプロンプトが表示されたらログイン成功とみなします" + +#: assets/const/protocol.py:112 assets/models/asset/database.py:10 #: settings/serializers/email.py:37 msgid "Use SSL" msgstr "SSLの使用" -#: assets/const/protocol.py:127 +#: assets/const/protocol.py:147 msgid "SYSDBA" msgstr "SYSDBA" -#: assets/const/protocol.py:128 +#: assets/const/protocol.py:148 msgid "Connect as SYSDBA" msgstr "SYSDBA として接続" -#: assets/const/protocol.py:157 +#: assets/const/protocol.py:177 msgid "Auth username" msgstr "ユーザー名で認証する" -#: assets/const/protocol.py:178 assets/models/asset/web.py:9 +#: assets/const/protocol.py:198 assets/models/asset/web.py:9 #: assets/serializers/asset/info/spec.py:16 msgid "Autofill" msgstr "自動充填" -#: assets/const/protocol.py:186 assets/models/asset/web.py:10 +#: assets/const/protocol.py:206 assets/models/asset/web.py:10 msgid "Username selector" msgstr "ユーザー名ピッカー" -#: assets/const/protocol.py:191 assets/models/asset/web.py:11 +#: assets/const/protocol.py:211 assets/models/asset/web.py:11 msgid "Password selector" msgstr "パスワードセレクター" -#: assets/const/protocol.py:196 assets/models/asset/web.py:12 +#: assets/const/protocol.py:216 assets/models/asset/web.py:12 msgid "Submit selector" msgstr "ボタンセレクターを確認する" -#: assets/const/protocol.py:219 +#: assets/const/protocol.py:239 msgid "API mode" msgstr "APIモード" @@ -1244,7 +1284,7 @@ msgstr "SSHパブリックキー" #: assets/models/_user.py:27 assets/models/cmd_filter.py:40 #: assets/models/cmd_filter.py:88 assets/models/group.py:20 #: common/db/models.py:36 ops/models/adhoc.py:26 ops/models/job.py:113 -#: ops/models/playbook.py:26 rbac/models/role.py:37 settings/models.py:37 +#: ops/models/playbook.py:31 rbac/models/role.py:37 settings/models.py:37 #: terminal/models/applet/applet.py:44 terminal/models/applet/applet.py:250 #: terminal/models/applet/host.py:141 terminal/models/component/endpoint.py:24 #: terminal/models/component/endpoint.py:102 @@ -1296,7 +1336,7 @@ msgstr "ユーザーと同じユーザー名" #: assets/models/_user.py:52 authentication/models/connection_token.py:41 #: authentication/serializers/connect_token_secret.py:111 #: terminal/models/applet/applet.py:41 terminal/serializers/session.py:18 -#: terminal/serializers/session.py:39 terminal/serializers/storage.py:70 +#: terminal/serializers/session.py:40 terminal/serializers/storage.py:70 msgid "Protocol" msgstr "プロトコル" @@ -1729,8 +1769,8 @@ msgstr "プロトコルが必要です: {}" msgid "Default database" msgstr "デフォルト・データベース" -#: assets/serializers/asset/database.py:28 common/db/fields.py:579 -#: common/db/fields.py:584 common/serializers/fields.py:104 +#: assets/serializers/asset/database.py:28 common/db/fields.py:570 +#: common/db/fields.py:575 common/serializers/fields.py:104 #: tickets/serializers/ticket/common.py:58 #: xpack/plugins/cloud/serializers/account_attrs.py:56 #: xpack/plugins/cloud/serializers/account_attrs.py:79 @@ -2031,7 +2071,7 @@ msgstr "パスワードを変更する" #: audits/const.py:35 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:163 -#: terminal/serializers/session.py:46 terminal/serializers/session.py:55 +#: terminal/serializers/session.py:47 terminal/serializers/session.py:56 msgid "Terminal" msgstr "ターミナル" @@ -2674,7 +2714,6 @@ msgid "Connect options" msgstr "接続アイテム" #: authentication/models/connection_token.py:44 -#: rbac/serializers/rolebinding.py:21 msgid "User display" msgstr "ユーザー表示" @@ -2890,7 +2929,7 @@ msgstr "コードエラー" #: authentication/templates/authentication/_msg_reset_password_code.html:9 #: authentication/templates/authentication/_msg_rest_password_success.html:2 #: authentication/templates/authentication/_msg_rest_public_key_success.html:2 -#: jumpserver/conf.py:431 +#: jumpserver/conf.py:437 #: perms/templates/perms/_msg_item_permissions_expire.html:3 #: perms/templates/perms/_msg_permed_items_expire.html:3 #: tickets/templates/tickets/approve_check_password.html:33 @@ -3245,11 +3284,11 @@ msgstr "チャーフィールドへのマーシャルデータ" msgid "Marshal data to text field" msgstr "テキストフィールドへのマーシャルデータ" -#: common/db/fields.py:176 +#: common/db/fields.py:167 msgid "Encrypt field using Secret Key" msgstr "Secret Keyを使用したフィールドの暗号化" -#: common/db/fields.py:567 +#: common/db/fields.py:558 msgid "" "Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or " "{'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " @@ -3259,19 +3298,19 @@ msgstr "" "{'type':'ids','ids':[]}或 #タイプ:属性、属性:[#名前:ip、照合:正確、" "値:1.1.1.1}" -#: common/db/fields.py:574 +#: common/db/fields.py:565 msgid "Invalid type, should be \"all\", \"ids\" or \"attrs\"" msgstr "無効なタイプです。all、ids、またはattrsでなければなりません" -#: common/db/fields.py:577 +#: common/db/fields.py:568 msgid "Invalid ids for ids, should be a list" msgstr "無効なID、リストでなければなりません" -#: common/db/fields.py:582 common/db/fields.py:587 +#: common/db/fields.py:573 common/db/fields.py:578 msgid "Invalid attrs, should be a list of dict" msgstr "無効な属性、dictリストでなければなりません" -#: common/db/fields.py:589 +#: common/db/fields.py:580 msgid "Invalid attrs, should be has name and value" msgstr "名前と値が必要な無効な属性" @@ -3485,11 +3524,11 @@ msgstr "検索のエクスポート: %s" msgid "User %s view/export secret" msgstr "ユーザー %s がパスワードを閲覧/導き出しました" -#: jumpserver/conf.py:430 +#: jumpserver/conf.py:436 msgid "Create account successfully" msgstr "アカウントを正常に作成" -#: jumpserver/conf.py:432 +#: jumpserver/conf.py:438 msgid "Your account has been created successfully" msgstr "アカウントが正常に作成されました" @@ -3696,7 +3735,7 @@ msgid "Args" msgstr "アルグ" #: ops/models/adhoc.py:25 ops/models/base.py:16 ops/models/base.py:53 -#: ops/models/job.py:106 ops/models/job.py:192 ops/models/playbook.py:25 +#: ops/models/job.py:106 ops/models/job.py:192 ops/models/playbook.py:30 #: terminal/models/session/sharing.py:24 msgid "Creator" msgstr "作成者" @@ -3791,11 +3830,11 @@ msgstr "Material を選択してオプションを設定します。" msgid "Job Execution" msgstr "ジョブ実行" -#: ops/models/playbook.py:28 +#: ops/models/playbook.py:33 msgid "CreateMethod" msgstr "创建方式" -#: ops/models/playbook.py:29 +#: ops/models/playbook.py:34 msgid "VCS URL" msgstr "VCS URL" @@ -3835,7 +3874,7 @@ msgstr "保存後に実行" msgid "Job type" msgstr "タスクの種類" -#: ops/serializers/job.py:57 terminal/serializers/session.py:47 +#: ops/serializers/job.py:57 terminal/serializers/session.py:48 msgid "Is finished" msgstr "終了しました" @@ -3932,14 +3971,14 @@ msgstr "アプリ組織" #: orgs/mixins/models.py:57 orgs/mixins/serializers.py:25 orgs/models.py:89 #: rbac/const.py:7 rbac/models/rolebinding.py:56 -#: rbac/serializers/rolebinding.py:40 settings/serializers/auth/ldap.py:63 +#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/ldap.py:63 #: terminal/templates/terminal/_msg_command_warning.html:21 #: terminal/templates/terminal/_msg_session_sharing.html:14 #: tickets/models/ticket/general.py:302 tickets/serializers/ticket/ticket.py:60 msgid "Organization" msgstr "組織" -#: orgs/mixins/serializers.py:26 rbac/serializers/rolebinding.py:23 +#: orgs/mixins/serializers.py:26 rbac/serializers/rolebinding.py:27 msgid "Org name" msgstr "組織名" @@ -4079,7 +4118,7 @@ msgstr "ロールはユーザーにバインドされており、破壊するこ msgid "Internal role, can't be update" msgstr "内部ロール、更新できません" -#: rbac/api/rolebinding.py:52 +#: rbac/api/rolebinding.py:45 msgid "{} at least one system role" msgstr "{} 少なくとも1つのシステムロール" @@ -4192,11 +4231,7 @@ msgstr "ユーザー数" msgid "Display name" msgstr "表示名" -#: rbac/serializers/rolebinding.py:22 -msgid "Role display" -msgstr "ロール表示" - -#: rbac/serializers/rolebinding.py:56 +#: rbac/serializers/rolebinding.py:60 msgid "Has bound this role" msgstr "この役割をバインドしました" @@ -4275,7 +4310,7 @@ msgid "View permission tree" msgstr "権限ツリーの表示" #: settings/api/dingtalk.py:31 settings/api/feishu.py:36 -#: settings/api/sms.py:155 settings/api/wecom.py:37 +#: settings/api/sms.py:155 settings/api/vault.py:39 settings/api/wecom.py:37 msgid "Test success" msgstr "テストの成功" @@ -4328,34 +4363,40 @@ msgid "Can change auth setting" msgstr "資格認定の設定" #: settings/models.py:162 +#, fuzzy +#| msgid "Can change auth setting" +msgid "Can change vault setting" +msgstr "資格認定の設定" + +#: settings/models.py:163 msgid "Can change system msg sub setting" msgstr "システムmsgサブ设定を変更できます" -#: settings/models.py:163 +#: settings/models.py:164 msgid "Can change sms setting" msgstr "Smsの設定を変えることができます" -#: settings/models.py:164 +#: settings/models.py:165 msgid "Can change security setting" msgstr "セキュリティ設定を変更できます" -#: settings/models.py:165 +#: settings/models.py:166 msgid "Can change clean setting" msgstr "きれいな設定を変えることができます" -#: settings/models.py:166 +#: settings/models.py:167 msgid "Can change interface setting" msgstr "インターフェイスの設定を変えることができます" -#: settings/models.py:167 +#: settings/models.py:168 msgid "Can change license setting" msgstr "ライセンス設定を変更できます" -#: settings/models.py:168 +#: settings/models.py:169 msgid "Can change terminal setting" msgstr "ターミナルの設定を変えることができます" -#: settings/models.py:169 +#: settings/models.py:170 msgid "Can change other setting" msgstr "他の設定を変えることができます" @@ -5368,6 +5409,10 @@ msgstr "" "ヒント: Luna ページでグラフィック アセットを接続するときに使用するデフォルト" "の解像度" +#: settings/serializers/vault.py:22 +msgid "Mount Point" +msgstr "" + #: settings/tasks/ldap.py:24 msgid "Periodic import ldap user" msgstr "LDAP ユーザーを定期的にインポートする" @@ -5563,8 +5608,8 @@ msgstr "期限切れです。" #, python-format msgid "" "\n" -" Your password has expired, please click this link update password.\n" +" Your password has expired, please click this link update password.\n" " " msgstr "" "\n" @@ -5585,34 +5630,34 @@ msgid "" " " msgstr "" "\n" -" クリックしてください リンク パスワードの更新\n" +" クリックしてください リンク パスワードの更新\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click this link to complete your information.\n" +" Your information was incomplete. Please click this link to complete your information.\n" " " msgstr "" "\n" -" あなたの情報が不完全なので、クリックしてください。 リンク 補完\n" +" あなたの情報が不完全なので、クリックしてください。 リンク 補完\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click this link to update\n" +" Your ssh public key not set or expired. Please click this link to update\n" " " msgstr "" "\n" -" SSHキーが設定されていないか無効になっている場合は、 リンク 更新\n" +" SSHキーが設定されていないか無効になっている場合は、 リンク 更新\n" " " #: templates/_mfa_login_field.html:28 @@ -5702,7 +5747,7 @@ msgstr "コマンドストア" msgid "Invalid" msgstr "無効" -#: terminal/api/component/storage.py:119 terminal/tasks.py:140 +#: terminal/api/component/storage.py:119 terminal/tasks.py:141 msgid "Test failure: {}" msgstr "テスト失敗: {}" @@ -5711,7 +5756,7 @@ msgid "Test successful" msgstr "テスト成功" #: terminal/api/component/storage.py:124 terminal/notifications.py:240 -#: terminal/tasks.py:144 +#: terminal/tasks.py:145 msgid "Test failure: Account invalid" msgstr "テスト失敗: アカウントが無効" @@ -6040,23 +6085,27 @@ msgstr "リプレイ" msgid "Date end" msgstr "終了日" -#: terminal/models/session/session.py:261 +#: terminal/models/session/session.py:47 terminal/serializers/session.py:55 +msgid "Command amount" +msgstr "コマンド量" + +#: terminal/models/session/session.py:281 msgid "Session record" msgstr "セッション記録" -#: terminal/models/session/session.py:263 +#: terminal/models/session/session.py:283 msgid "Can monitor session" msgstr "セッションを監視できます" -#: terminal/models/session/session.py:264 +#: terminal/models/session/session.py:284 msgid "Can share session" msgstr "セッションを共有できます" -#: terminal/models/session/session.py:265 +#: terminal/models/session/session.py:285 msgid "Can terminate session" msgstr "セッションを終了できます" -#: terminal/models/session/session.py:266 +#: terminal/models/session/session.py:286 msgid "Can validate session action perm" msgstr "セッションアクションのパーマを検証できます" @@ -6311,38 +6360,34 @@ msgstr "" msgid "Asset IP" msgstr "資産 IP" -#: terminal/serializers/session.py:22 terminal/serializers/session.py:44 +#: terminal/serializers/session.py:22 terminal/serializers/session.py:45 msgid "Can replay" msgstr "再生できます" -#: terminal/serializers/session.py:23 terminal/serializers/session.py:45 +#: terminal/serializers/session.py:23 terminal/serializers/session.py:46 msgid "Can join" msgstr "参加できます" -#: terminal/serializers/session.py:24 terminal/serializers/session.py:48 +#: terminal/serializers/session.py:24 terminal/serializers/session.py:49 msgid "Can terminate" msgstr "終了できます" -#: terminal/serializers/session.py:40 +#: terminal/serializers/session.py:41 msgid "User ID" msgstr "ユーザーID" -#: terminal/serializers/session.py:41 +#: terminal/serializers/session.py:42 msgid "Asset ID" msgstr "資産ID" -#: terminal/serializers/session.py:42 +#: terminal/serializers/session.py:43 msgid "Login from display" msgstr "表示からのログイン" -#: terminal/serializers/session.py:49 +#: terminal/serializers/session.py:50 msgid "Terminal display" msgstr "ターミナルディスプレイ" -#: terminal/serializers/session.py:54 -msgid "Command amount" -msgstr "コマンド量" - #: terminal/serializers/storage.py:22 msgid "Endpoint invalid: remove path `{}`" msgstr "エンドポイントが無効: パス '{}' を削除" @@ -6433,11 +6478,11 @@ msgstr "アプリケーション マシンの展開を実行する" msgid "Install applet" msgstr "アプリをインストールする" -#: terminal/tasks.py:110 +#: terminal/tasks.py:111 msgid "Generate applet host accounts" msgstr "リモートアプリケーション上のアカウントを収集する" -#: terminal/tasks.py:122 +#: terminal/tasks.py:123 msgid "Check command replay storage connectivity" msgstr "チェックコマンドと録画ストレージの接続性" @@ -7953,6 +7998,9 @@ msgstr "究極のエディション" msgid "Community edition" msgstr "コミュニティ版" +#~ msgid "Role display" +#~ msgstr "ロール表示" + #~ msgid "SFTP enabled" #~ msgstr "SFTP が有効" diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 00fe60499..da572bc13 100644 --- a/apps/locale/zh/LC_MESSAGES/django.mo +++ b/apps/locale/zh/LC_MESSAGES/django.mo @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2cf5749656bd07818b67191c2f665246e903d74e76c49ebcdec6004322f75314 -size 122767 +oid sha256:f70c68e6f9f5cd621ae5ff04e73bb882d4849d3750a8c34f586dc3cc74adfca4 +size 123431 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 6a599c0a0..2136158ea 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-31 16:39+0800\n" +"POT-Creation-Date: 2023-08-02 16:52+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -44,7 +44,7 @@ msgid "Access key" msgstr "Access key" #: accounts/const/account.py:9 assets/models/_user.py:48 -#: authentication/models/sso_token.py:14 +#: authentication/models/sso_token.py:14 settings/serializers/vault.py:19 msgid "Token" msgstr "Token" @@ -52,7 +52,7 @@ msgstr "Token" msgid "API key" msgstr "" -#: accounts/const/account.py:14 common/db/fields.py:244 +#: accounts/const/account.py:14 common/db/fields.py:235 #: settings/serializers/terminal.py:14 msgid "All" msgstr "全部" @@ -186,10 +186,20 @@ msgstr "创建并推送" msgid "Only create" msgstr "仅创建" -#: accounts/models/account.py:49 +#: accounts/const/vault.py:8 +#, fuzzy +#| msgid "Local" +msgid "Local Vault" +msgstr "数据库" + +#: accounts/const/vault.py:9 +msgid "HCP Vault" +msgstr "" + +#: accounts/models/account.py:50 #: accounts/models/automations/gather_account.py:16 #: accounts/serializers/account/account.py:200 -#: accounts/serializers/account/account.py:237 +#: accounts/serializers/account/account.py:245 #: accounts/serializers/account/gathered_account.py:10 #: accounts/serializers/automations/change_secret.py:112 #: accounts/serializers/automations/change_secret.py:132 @@ -206,29 +216,29 @@ msgstr "仅创建" msgid "Asset" msgstr "资产" -#: accounts/models/account.py:53 accounts/models/account.py:126 -#: accounts/serializers/account/account.py:208 -#: accounts/serializers/account/account.py:247 +#: accounts/models/account.py:54 accounts/models/account.py:127 +#: accounts/serializers/account/account.py:207 +#: accounts/serializers/account/account.py:255 #: accounts/serializers/account/template.py:16 #: authentication/serializers/connect_token_secret.py:49 msgid "Su from" msgstr "切换自" -#: accounts/models/account.py:55 settings/serializers/auth/cas.py:20 +#: accounts/models/account.py:56 settings/serializers/auth/cas.py:20 #: settings/serializers/auth/feishu.py:20 terminal/models/applet/applet.py:34 msgid "Version" msgstr "版本" -#: accounts/models/account.py:57 accounts/serializers/account/account.py:203 +#: accounts/models/account.py:58 accounts/serializers/account/account.py:202 #: users/models/user.py:804 msgid "Source" msgstr "来源" -#: accounts/models/account.py:58 +#: accounts/models/account.py:59 msgid "Source ID" msgstr "来源 ID" -#: accounts/models/account.py:61 +#: accounts/models/account.py:62 #: accounts/serializers/automations/change_secret.py:113 #: accounts/serializers/automations/change_secret.py:133 #: acls/serializers/base.py:124 assets/serializers/asset/common.py:125 @@ -241,35 +251,35 @@ msgstr "来源 ID" msgid "Account" msgstr "账号" -#: accounts/models/account.py:67 +#: accounts/models/account.py:68 msgid "Can view asset account secret" msgstr "可以查看资产账号密码" -#: accounts/models/account.py:68 +#: accounts/models/account.py:69 msgid "Can view asset history account" msgstr "可以查看资产历史账号" -#: accounts/models/account.py:69 +#: accounts/models/account.py:70 msgid "Can view asset history account secret" msgstr "可以查看资产历史账号密码" -#: accounts/models/account.py:70 +#: accounts/models/account.py:71 msgid "Can verify account" msgstr "可以验证账号" -#: accounts/models/account.py:71 +#: accounts/models/account.py:72 msgid "Can push account" msgstr "可以推送账号" -#: accounts/models/account.py:130 +#: accounts/models/account.py:131 msgid "Account template" msgstr "账号模版" -#: accounts/models/account.py:135 +#: accounts/models/account.py:136 msgid "Can view asset account template secret" msgstr "可以查看资产账号模版密码" -#: accounts/models/account.py:136 +#: accounts/models/account.py:137 msgid "Can change asset account template secret" msgstr "可以更改资产账号模版密码" @@ -322,7 +332,7 @@ msgstr "原因" #: accounts/models/automations/backup_account.py:99 #: accounts/serializers/automations/change_secret.py:111 #: accounts/serializers/automations/change_secret.py:134 -#: ops/serializers/job.py:56 terminal/serializers/session.py:43 +#: ops/serializers/job.py:56 terminal/serializers/session.py:44 msgid "Is success" msgstr "是否成功" @@ -367,7 +377,7 @@ msgid "Can add push account execution" msgstr "创建推送账号执行" #: accounts/models/automations/change_secret.py:18 accounts/models/base.py:36 -#: accounts/serializers/account/account.py:419 +#: accounts/serializers/account/account.py:427 #: accounts/serializers/account/base.py:16 #: accounts/serializers/automations/change_secret.py:46 #: authentication/serializers/connect_token_secret.py:41 @@ -376,8 +386,8 @@ msgid "Secret type" msgstr "密文类型" #: accounts/models/automations/change_secret.py:20 -#: accounts/models/automations/change_secret.py:89 accounts/models/base.py:38 -#: accounts/serializers/account/base.py:19 +#: accounts/models/automations/change_secret.py:89 +#: accounts/models/mixins/vault.py:48 accounts/serializers/account/base.py:19 #: authentication/models/temp_token.py:10 #: authentication/templates/authentication/_access_key_modal.html:31 #: settings/serializers/auth/radius.py:19 @@ -417,7 +427,7 @@ msgid "Date finished" msgstr "结束日期" #: accounts/models/automations/change_secret.py:93 -#: accounts/serializers/account/account.py:239 assets/const/automation.py:8 +#: accounts/serializers/account/account.py:247 assets/const/automation.py:8 #: authentication/views/base.py:26 authentication/views/base.py:27 #: authentication/views/base.py:28 common/const/choices.py:20 msgid "Error" @@ -496,7 +506,7 @@ msgstr "账号验证" #: assets/serializers/platform.py:223 #: authentication/serializers/connect_token_secret.py:110 ops/mixin.py:21 #: ops/models/adhoc.py:20 ops/models/celery.py:15 ops/models/celery.py:57 -#: ops/models/job.py:94 ops/models/playbook.py:23 ops/serializers/job.py:20 +#: ops/models/job.py:94 ops/models/playbook.py:28 ops/serializers/job.py:20 #: orgs/models.py:80 perms/models/asset_permission.py:56 rbac/models/role.py:29 #: settings/models.py:32 settings/serializers/sms.py:6 #: terminal/models/applet/applet.py:32 terminal/models/component/endpoint.py:12 @@ -508,11 +518,11 @@ msgstr "账号验证" msgid "Name" msgstr "名称" -#: accounts/models/base.py:39 +#: accounts/models/base.py:38 msgid "Privileged" msgstr "特权账号" -#: accounts/models/base.py:40 assets/models/asset/common.py:156 +#: accounts/models/base.py:39 assets/models/asset/common.py:156 #: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39 #: assets/models/label.py:22 #: authentication/serializers/connect_token_secret.py:114 @@ -584,8 +594,8 @@ msgstr "类别" #: assets/serializers/asset/common.py:122 assets/serializers/platform.py:112 #: assets/serializers/platform.py:127 audits/serializers.py:49 #: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:105 -#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:38 -#: terminal/models/component/storage.py:57 +#: perms/serializers/user_permission.py:27 settings/serializers/vault.py:13 +#: terminal/models/applet/applet.py:38 terminal/models/component/storage.py:57 #: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29 #: terminal/serializers/session.py:20 terminal/serializers/storage.py:226 #: terminal/serializers/storage.py:238 tickets/models/comment.py:26 @@ -599,23 +609,22 @@ msgstr "类型" msgid "Asset not found" msgstr "资产不存在" -#: accounts/serializers/account/account.py:201 -#: accounts/serializers/account/base.py:64 +#: accounts/serializers/account/account.py:236 msgid "Has secret" msgstr "已托管密码" -#: accounts/serializers/account/account.py:238 ops/models/celery.py:60 +#: accounts/serializers/account/account.py:246 ops/models/celery.py:60 #: tickets/models/comment.py:13 tickets/models/ticket/general.py:45 #: tickets/models/ticket/general.py:279 tickets/serializers/super_ticket.py:14 #: tickets/serializers/ticket/ticket.py:21 msgid "State" msgstr "状态" -#: accounts/serializers/account/account.py:240 +#: accounts/serializers/account/account.py:248 msgid "Changed" msgstr "已修改" -#: accounts/serializers/account/account.py:250 +#: accounts/serializers/account/account.py:258 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: assets/models/automations/base.py:19 #: assets/serializers/automations/base.py:20 ops/models/base.py:17 @@ -624,27 +633,27 @@ msgstr "已修改" msgid "Assets" msgstr "资产" -#: accounts/serializers/account/account.py:305 +#: accounts/serializers/account/account.py:313 msgid "Account already exists" msgstr "账号已存在" -#: accounts/serializers/account/account.py:355 +#: accounts/serializers/account/account.py:363 #, python-format msgid "Asset does not support this secret type: %s" msgstr "资产不支持账号类型: %s" -#: accounts/serializers/account/account.py:387 +#: accounts/serializers/account/account.py:395 msgid "Account has exist" msgstr "账号已存在" -#: accounts/serializers/account/account.py:420 +#: accounts/serializers/account/account.py:428 #: authentication/serializers/connect_token_secret.py:156 #: authentication/templates/authentication/_access_key_modal.html:30 #: perms/models/perm_node.py:21 users/serializers/group.py:31 msgid "ID" msgstr "ID" -#: accounts/serializers/account/account.py:427 acls/serializers/base.py:116 +#: accounts/serializers/account/account.py:435 acls/serializers/base.py:116 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:49 #: audits/models.py:85 audits/models.py:163 #: authentication/models/connection_token.py:32 @@ -652,10 +661,10 @@ msgstr "ID" #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58 #: perms/serializers/permission.py:30 rbac/builtin.py:123 -#: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:16 -#: terminal/models/session/session.py:29 terminal/models/session/sharing.py:33 -#: terminal/notifications.py:156 terminal/notifications.py:205 -#: terminal/serializers/command.py:16 +#: rbac/models/rolebinding.py:49 rbac/serializers/rolebinding.py:17 +#: terminal/backends/command/models.py:16 terminal/models/session/session.py:29 +#: terminal/models/session/sharing.py:33 terminal/notifications.py:156 +#: terminal/notifications.py:205 terminal/serializers/command.py:16 #: terminal/templates/terminal/_msg_command_warning.html:6 #: terminal/templates/terminal/_msg_session_sharing.html:6 #: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:947 @@ -663,7 +672,7 @@ msgstr "ID" msgid "User" msgstr "用户" -#: accounts/serializers/account/account.py:428 +#: accounts/serializers/account/account.py:436 #: authentication/templates/authentication/_access_key_modal.html:33 #: terminal/notifications.py:158 terminal/notifications.py:207 msgid "Date" @@ -694,12 +703,12 @@ msgstr "资产类型" msgid "Key password" msgstr "密钥密码" -#: accounts/serializers/account/base.py:80 +#: accounts/serializers/account/base.py:78 #: assets/serializers/asset/common.py:311 msgid "Spec info" msgstr "特殊信息" -#: accounts/serializers/account/base.py:82 +#: accounts/serializers/account/base.py:80 msgid "" "Tip: If no username is required for authentication, fill in `null`, If AD " "account, like `username@domain`" @@ -765,6 +774,12 @@ msgstr "收集资产上的账号" msgid "Push accounts to assets" msgstr "推送账号到资产" +#: accounts/tasks/vault.py:15 +#, fuzzy +#| msgid "Sync instance detail" +msgid "Sync secret to vault" +msgstr "同步实例详情" + #: accounts/tasks/verify_account.py:49 msgid "Verify asset account availability" msgstr "验证资产账号可用性" @@ -773,19 +788,19 @@ msgstr "验证资产账号可用性" msgid "Verify accounts connectivity" msgstr "测试账号可连接性" -#: accounts/utils.py:43 +#: accounts/utils.py:41 msgid "Password can not contains `{{` " msgstr "密码不能包含 `{{` 字符" -#: accounts/utils.py:46 +#: accounts/utils.py:44 msgid "Password can not contains `'` " msgstr "密码不能包含 `'` 字符" -#: accounts/utils.py:48 +#: accounts/utils.py:46 msgid "Password can not contains `\"` " msgstr "密码不能包含 `\"` 字符" -#: accounts/utils.py:54 +#: accounts/utils.py:52 msgid "private key invalid or passphrase error" msgstr "密钥不合法或密钥密码错误" @@ -1076,14 +1091,15 @@ msgstr "禁用" msgid "Basic" msgstr "基本" -#: assets/const/base.py:35 assets/const/protocol.py:201 +#: assets/const/base.py:35 assets/const/protocol.py:221 #: assets/models/asset/web.py:13 msgid "Script" msgstr "脚本" #: assets/const/category.py:10 assets/models/asset/host.py:8 #: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:67 -#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 +#: settings/serializers/vault.py:16 terminal/models/component/endpoint.py:13 +#: terminal/serializers/applet.py:17 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "主机" @@ -1176,41 +1192,65 @@ msgstr "连接 RDP 使用的安全层" msgid "AD domain" msgstr "AD 网域" -#: assets/const/protocol.py:92 assets/models/asset/database.py:10 +#: assets/const/protocol.py:88 +msgid "Username prompt" +msgstr "用户名提示" + +#: assets/const/protocol.py:89 +msgid "We will send username when we see this prompt" +msgstr "当我们看到这个提示时,我们将发送用户名" + +#: assets/const/protocol.py:94 +msgid "Password prompt" +msgstr "密码提示" + +#: assets/const/protocol.py:95 +msgid "We will send password when we see this prompt" +msgstr "当我们看到这个提示时,我们将发送密码" + +#: assets/const/protocol.py:100 +msgid "Success prompt" +msgstr "成功提示" + +#: assets/const/protocol.py:101 +msgid "We will consider login success when we see this prompt" +msgstr "当我们看到这个提示时,我们将认为登录成功" + +#: assets/const/protocol.py:112 assets/models/asset/database.py:10 #: settings/serializers/email.py:37 msgid "Use SSL" msgstr "使用 SSL" -#: assets/const/protocol.py:127 +#: assets/const/protocol.py:147 msgid "SYSDBA" msgstr "SYSDBA" -#: assets/const/protocol.py:128 +#: assets/const/protocol.py:148 msgid "Connect as SYSDBA" msgstr "以 SYSDBA 角色连接" -#: assets/const/protocol.py:157 +#: assets/const/protocol.py:177 msgid "Auth username" msgstr "使用用户名认证" -#: assets/const/protocol.py:178 assets/models/asset/web.py:9 +#: assets/const/protocol.py:198 assets/models/asset/web.py:9 #: assets/serializers/asset/info/spec.py:16 msgid "Autofill" msgstr "自动代填" -#: assets/const/protocol.py:186 assets/models/asset/web.py:10 +#: assets/const/protocol.py:206 assets/models/asset/web.py:10 msgid "Username selector" msgstr "用户名选择器" -#: assets/const/protocol.py:191 assets/models/asset/web.py:11 +#: assets/const/protocol.py:211 assets/models/asset/web.py:11 msgid "Password selector" msgstr "密码选择器" -#: assets/const/protocol.py:196 assets/models/asset/web.py:12 +#: assets/const/protocol.py:216 assets/models/asset/web.py:12 msgid "Submit selector" msgstr "确认按钮选择器" -#: assets/const/protocol.py:219 +#: assets/const/protocol.py:239 msgid "API mode" msgstr "API 模式" @@ -1237,7 +1277,7 @@ msgstr "SSH公钥" #: assets/models/_user.py:27 assets/models/cmd_filter.py:40 #: assets/models/cmd_filter.py:88 assets/models/group.py:20 #: common/db/models.py:36 ops/models/adhoc.py:26 ops/models/job.py:113 -#: ops/models/playbook.py:26 rbac/models/role.py:37 settings/models.py:37 +#: ops/models/playbook.py:31 rbac/models/role.py:37 settings/models.py:37 #: terminal/models/applet/applet.py:44 terminal/models/applet/applet.py:250 #: terminal/models/applet/host.py:141 terminal/models/component/endpoint.py:24 #: terminal/models/component/endpoint.py:102 @@ -1289,7 +1329,7 @@ msgstr "用户名与用户相同" #: assets/models/_user.py:52 authentication/models/connection_token.py:41 #: authentication/serializers/connect_token_secret.py:111 #: terminal/models/applet/applet.py:41 terminal/serializers/session.py:18 -#: terminal/serializers/session.py:39 terminal/serializers/storage.py:70 +#: terminal/serializers/session.py:40 terminal/serializers/storage.py:70 msgid "Protocol" msgstr "协议" @@ -1720,8 +1760,8 @@ msgstr "协议是必填的: {}" msgid "Default database" msgstr "默认数据库" -#: assets/serializers/asset/database.py:28 common/db/fields.py:579 -#: common/db/fields.py:584 common/serializers/fields.py:104 +#: assets/serializers/asset/database.py:28 common/db/fields.py:570 +#: common/db/fields.py:575 common/serializers/fields.py:104 #: tickets/serializers/ticket/common.py:58 #: xpack/plugins/cloud/serializers/account_attrs.py:56 #: xpack/plugins/cloud/serializers/account_attrs.py:79 @@ -2015,7 +2055,7 @@ msgstr "改密" #: audits/const.py:35 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:163 -#: terminal/serializers/session.py:46 terminal/serializers/session.py:55 +#: terminal/serializers/session.py:47 terminal/serializers/session.py:56 msgid "Terminal" msgstr "终端" @@ -2642,7 +2682,6 @@ msgid "Connect options" msgstr "连接项" #: authentication/models/connection_token.py:44 -#: rbac/serializers/rolebinding.py:21 msgid "User display" msgstr "用户名称" @@ -2858,7 +2897,7 @@ msgstr "代码错误" #: authentication/templates/authentication/_msg_reset_password_code.html:9 #: authentication/templates/authentication/_msg_rest_password_success.html:2 #: authentication/templates/authentication/_msg_rest_public_key_success.html:2 -#: jumpserver/conf.py:431 +#: jumpserver/conf.py:437 #: perms/templates/perms/_msg_item_permissions_expire.html:3 #: perms/templates/perms/_msg_permed_items_expire.html:3 #: tickets/templates/tickets/approve_check_password.html:33 @@ -3205,11 +3244,11 @@ msgstr "编码数据为 char" msgid "Marshal data to text field" msgstr "编码数据为 text" -#: common/db/fields.py:176 +#: common/db/fields.py:167 msgid "Encrypt field using Secret Key" msgstr "加密的字段" -#: common/db/fields.py:567 +#: common/db/fields.py:558 msgid "" "Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or " "{'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " @@ -3219,19 +3258,19 @@ msgstr "" "{'type': 'attrs', 'attrs': [{'name': 'ip', 'match': 'exact', 'value': " "'1.1.1.1'}}" -#: common/db/fields.py:574 +#: common/db/fields.py:565 msgid "Invalid type, should be \"all\", \"ids\" or \"attrs\"" msgstr "无效类型,应为 all、ids 或 attrs" -#: common/db/fields.py:577 +#: common/db/fields.py:568 msgid "Invalid ids for ids, should be a list" msgstr "无效的ID,应为列表" -#: common/db/fields.py:582 common/db/fields.py:587 +#: common/db/fields.py:573 common/db/fields.py:578 msgid "Invalid attrs, should be a list of dict" msgstr "无效的属性,应为dict列表" -#: common/db/fields.py:589 +#: common/db/fields.py:580 msgid "Invalid attrs, should be has name and value" msgstr "无效属性,应具有名称和值" @@ -3443,11 +3482,11 @@ msgstr "导出搜素: %s" msgid "User %s view/export secret" msgstr "用户 %s 查看/导出 了密码" -#: jumpserver/conf.py:430 +#: jumpserver/conf.py:436 msgid "Create account successfully" msgstr "创建账号成功" -#: jumpserver/conf.py:432 +#: jumpserver/conf.py:438 msgid "Your account has been created successfully" msgstr "你的账号已创建成功" @@ -3649,7 +3688,7 @@ msgid "Args" msgstr "参数" #: ops/models/adhoc.py:25 ops/models/base.py:16 ops/models/base.py:53 -#: ops/models/job.py:106 ops/models/job.py:192 ops/models/playbook.py:25 +#: ops/models/job.py:106 ops/models/job.py:192 ops/models/playbook.py:30 #: terminal/models/session/sharing.py:24 msgid "Creator" msgstr "创建者" @@ -3744,11 +3783,11 @@ msgstr "Material 类型" msgid "Job Execution" msgstr "作业执行" -#: ops/models/playbook.py:28 +#: ops/models/playbook.py:33 msgid "CreateMethod" msgstr "创建方式" -#: ops/models/playbook.py:29 +#: ops/models/playbook.py:34 msgid "VCS URL" msgstr "VCS URL" @@ -3788,7 +3827,7 @@ msgstr "保存后执行" msgid "Job type" msgstr "任务类型" -#: ops/serializers/job.py:57 terminal/serializers/session.py:47 +#: ops/serializers/job.py:57 terminal/serializers/session.py:48 msgid "Is finished" msgstr "是否完成" @@ -3884,14 +3923,14 @@ msgstr "组织管理" #: orgs/mixins/models.py:57 orgs/mixins/serializers.py:25 orgs/models.py:89 #: rbac/const.py:7 rbac/models/rolebinding.py:56 -#: rbac/serializers/rolebinding.py:40 settings/serializers/auth/ldap.py:63 +#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/ldap.py:63 #: terminal/templates/terminal/_msg_command_warning.html:21 #: terminal/templates/terminal/_msg_session_sharing.html:14 #: tickets/models/ticket/general.py:302 tickets/serializers/ticket/ticket.py:60 msgid "Organization" msgstr "组织" -#: orgs/mixins/serializers.py:26 rbac/serializers/rolebinding.py:23 +#: orgs/mixins/serializers.py:26 rbac/serializers/rolebinding.py:27 msgid "Org name" msgstr "组织名称" @@ -4031,7 +4070,7 @@ msgstr "角色已绑定用户,不能删除" msgid "Internal role, can't be update" msgstr "内部角色,不能更新" -#: rbac/api/rolebinding.py:52 +#: rbac/api/rolebinding.py:45 msgid "{} at least one system role" msgstr "{} 至少有一个系统角色" @@ -4143,11 +4182,7 @@ msgstr "用户数量" msgid "Display name" msgstr "显示名称" -#: rbac/serializers/rolebinding.py:22 -msgid "Role display" -msgstr "角色显示" - -#: rbac/serializers/rolebinding.py:56 +#: rbac/serializers/rolebinding.py:60 msgid "Has bound this role" msgstr "已经绑定" @@ -4226,7 +4261,7 @@ msgid "View permission tree" msgstr "查看授权树" #: settings/api/dingtalk.py:31 settings/api/feishu.py:36 -#: settings/api/sms.py:155 settings/api/wecom.py:37 +#: settings/api/sms.py:155 settings/api/vault.py:39 settings/api/wecom.py:37 msgid "Test success" msgstr "测试成功" @@ -4279,34 +4314,40 @@ msgid "Can change auth setting" msgstr "认证设置" #: settings/models.py:162 +#, fuzzy +#| msgid "Can change auth setting" +msgid "Can change vault setting" +msgstr "认证设置" + +#: settings/models.py:163 msgid "Can change system msg sub setting" msgstr "消息订阅设置" -#: settings/models.py:163 +#: settings/models.py:164 msgid "Can change sms setting" msgstr "短信设置" -#: settings/models.py:164 +#: settings/models.py:165 msgid "Can change security setting" msgstr "安全设置" -#: settings/models.py:165 +#: settings/models.py:166 msgid "Can change clean setting" msgstr "定期清理" -#: settings/models.py:166 +#: settings/models.py:167 msgid "Can change interface setting" msgstr "界面设置" -#: settings/models.py:167 +#: settings/models.py:168 msgid "Can change license setting" msgstr "许可证设置" -#: settings/models.py:168 +#: settings/models.py:169 msgid "Can change terminal setting" msgstr "终端设置" -#: settings/models.py:169 +#: settings/models.py:170 msgid "Can change other setting" msgstr "其它设置" @@ -5291,6 +5332,10 @@ msgid "" "Tip: Default resolution to use when connecting graphical assets in Luna pages" msgstr "提示:在Luna 页面中连接图形化资产时默认使用的分辨率" +#: settings/serializers/vault.py:22 +msgid "Mount Point" +msgstr "" + #: settings/tasks/ldap.py:24 msgid "Periodic import ldap user" msgstr "周期导入 LDAP 用户" @@ -5481,13 +5526,13 @@ msgstr "过期。" #, python-format msgid "" "\n" -" Your password has expired, please click this link update password.\n" +" Your password has expired, please click this link update password.\n" " " msgstr "" "\n" -" 您的密码已经过期,请点击 链接 更新密码\n" +" 您的密码已经过期,请点击 链接 更新密码\n" " " #: templates/_message.html:30 @@ -5511,8 +5556,8 @@ msgstr "" #, python-format msgid "" "\n" -" Your information was incomplete. Please click this link to complete your information.\n" +" Your information was incomplete. Please click this link to complete your information.\n" " " msgstr "" "\n" @@ -5524,13 +5569,13 @@ msgstr "" #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click this link to update\n" +" Your ssh public key not set or expired. Please click this link to update\n" " " msgstr "" "\n" -" 您的SSH密钥没有设置或已失效,请点击 链接 更新\n" +" 您的SSH密钥没有设置或已失效,请点击 链接 更新\n" " " #: templates/_mfa_login_field.html:28 @@ -5615,7 +5660,7 @@ msgstr "命令存储" msgid "Invalid" msgstr "无效" -#: terminal/api/component/storage.py:119 terminal/tasks.py:140 +#: terminal/api/component/storage.py:119 terminal/tasks.py:141 msgid "Test failure: {}" msgstr "测试失败: {}" @@ -5624,7 +5669,7 @@ msgid "Test successful" msgstr "测试成功" #: terminal/api/component/storage.py:124 terminal/notifications.py:240 -#: terminal/tasks.py:144 +#: terminal/tasks.py:145 msgid "Test failure: Account invalid" msgstr "测试失败: 账号无效" @@ -5953,23 +5998,27 @@ msgstr "回放" msgid "Date end" msgstr "结束日期" -#: terminal/models/session/session.py:261 +#: terminal/models/session/session.py:47 terminal/serializers/session.py:55 +msgid "Command amount" +msgstr "命令数量" + +#: terminal/models/session/session.py:281 msgid "Session record" msgstr "会话记录" -#: terminal/models/session/session.py:263 +#: terminal/models/session/session.py:283 msgid "Can monitor session" msgstr "可以监控会话" -#: terminal/models/session/session.py:264 +#: terminal/models/session/session.py:284 msgid "Can share session" msgstr "可以分享会话" -#: terminal/models/session/session.py:265 +#: terminal/models/session/session.py:285 msgid "Can terminate session" msgstr "可以终断会话" -#: terminal/models/session/session.py:266 +#: terminal/models/session/session.py:286 msgid "Can validate session action perm" msgstr "可以验证会话动作权限" @@ -6217,38 +6266,34 @@ msgstr "如果不同端点下的资产 IP 有冲突,使用资产标签实现" msgid "Asset IP" msgstr "资产 IP" -#: terminal/serializers/session.py:22 terminal/serializers/session.py:44 +#: terminal/serializers/session.py:22 terminal/serializers/session.py:45 msgid "Can replay" msgstr "是否可重放" -#: terminal/serializers/session.py:23 terminal/serializers/session.py:45 +#: terminal/serializers/session.py:23 terminal/serializers/session.py:46 msgid "Can join" msgstr "是否可加入" -#: terminal/serializers/session.py:24 terminal/serializers/session.py:48 +#: terminal/serializers/session.py:24 terminal/serializers/session.py:49 msgid "Can terminate" msgstr "是否可中断" -#: terminal/serializers/session.py:40 +#: terminal/serializers/session.py:41 msgid "User ID" msgstr "用户 ID" -#: terminal/serializers/session.py:41 +#: terminal/serializers/session.py:42 msgid "Asset ID" msgstr "资产 ID" -#: terminal/serializers/session.py:42 +#: terminal/serializers/session.py:43 msgid "Login from display" msgstr "登录来源名称" -#: terminal/serializers/session.py:49 +#: terminal/serializers/session.py:50 msgid "Terminal display" msgstr "终端显示" -#: terminal/serializers/session.py:54 -msgid "Command amount" -msgstr "命令数量" - #: terminal/serializers/storage.py:22 msgid "Endpoint invalid: remove path `{}`" msgstr "端点无效: 移除路径 `{}`" @@ -6339,11 +6384,11 @@ msgstr "运行应用机部署" msgid "Install applet" msgstr "安装应用" -#: terminal/tasks.py:110 +#: terminal/tasks.py:111 msgid "Generate applet host accounts" msgstr "收集远程应用上的账号" -#: terminal/tasks.py:122 +#: terminal/tasks.py:123 msgid "Check command replay storage connectivity" msgstr "检查命令及录像存储可连接性 " @@ -7837,6 +7882,9 @@ msgstr "旗舰版" msgid "Community edition" msgstr "社区版" +#~ msgid "Role display" +#~ msgstr "角色显示" + #~ msgid "SFTP enabled" #~ msgstr "SFTP 已启用" diff --git a/apps/settings/serializers/terminal.py b/apps/settings/serializers/terminal.py index 86465009e..ea1412cd1 100644 --- a/apps/settings/serializers/terminal.py +++ b/apps/settings/serializers/terminal.py @@ -30,11 +30,6 @@ class TerminalSettingSerializer(serializers.Serializer): TERMINAL_ASSET_LIST_PAGE_SIZE = serializers.ChoiceField( PAGE_SIZE_CHOICES, required=False, label=_('List page size') ) - TERMINAL_TELNET_REGEX = serializers.CharField( - allow_blank=True, max_length=1024, required=False, label=_('Telnet login regex'), - help_text=_("Tips: The login success message varies with devices. " - "if you cannot log in to the device through Telnet, set this parameter") - ) TERMINAL_MAGNUS_ENABLED = serializers.BooleanField(label=_("Enable database proxy")) TERMINAL_RAZOR_ENABLED = serializers.BooleanField(label=_("Enable Razor")) TERMINAL_KOKO_SSH_ENABLED = serializers.BooleanField(label=_("Enable SSH Client"))