feat: 发布机支持使用同名账号连接

pull/11998/head
ibuler 2023-10-30 11:37:37 +08:00 committed by 老广
parent e56a37afd2
commit ee586954f8
9 changed files with 217 additions and 133 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:67b3061a082605d0862007d0deb03dba0477b3eac85d99faf5755ee44e7453eb oid sha256:cde05981ba0517af982f7ef197aed433c52510098589e4a6ce5101e48c26556e
size 163187 size 163803

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: 2023-10-20 14:50+0800\n" "POT-Creation-Date: 2023-10-30 11:28+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"
@ -227,7 +227,7 @@ msgstr "ユーザー %s がパスワードを閲覧/導き出しました"
#: assets/models/asset/common.py:334 assets/models/cmd_filter.py:36 #: assets/models/asset/common.py:334 assets/models/cmd_filter.py:36
#: assets/serializers/domain.py:19 assets/serializers/label.py:27 #: assets/serializers/domain.py:19 assets/serializers/label.py:27
#: audits/models.py:57 authentication/models/connection_token.py:36 #: audits/models.py:57 authentication/models/connection_token.py:36
#: perms/models/asset_permission.py:64 perms/serializers/permission.py:34 #: perms/models/asset_permission.py:68 perms/serializers/permission.py:34
#: terminal/backends/command/models.py:17 terminal/models/session/session.py:31 #: terminal/backends/command/models.py:17 terminal/models/session/session.py:31
#: terminal/notifications.py:155 terminal/serializers/command.py:17 #: terminal/notifications.py:155 terminal/serializers/command.py:17
#: terminal/serializers/session.py:26 #: terminal/serializers/session.py:26
@ -265,8 +265,8 @@ msgstr "ソース ID"
#: accounts/serializers/automations/change_secret.py:127 #: accounts/serializers/automations/change_secret.py:127
#: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7 #: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7
#: assets/serializers/asset/common.py:125 assets/serializers/gateway.py:28 #: assets/serializers/asset/common.py:125 assets/serializers/gateway.py:28
#: audits/models.py:58 authentication/api/connection_token.py:406 #: audits/models.py:58 authentication/api/connection_token.py:407
#: ops/models/base.py:18 perms/models/asset_permission.py:70 #: ops/models/base.py:18 perms/models/asset_permission.py:74
#: perms/serializers/permission.py:39 terminal/backends/command/models.py:18 #: perms/serializers/permission.py:39 terminal/backends/command/models.py:18
#: terminal/models/session/session.py:33 #: terminal/models/session/session.py:33
#: terminal/templates/terminal/_msg_command_warning.html:8 #: terminal/templates/terminal/_msg_command_warning.html:8
@ -312,7 +312,7 @@ msgstr "アカウントバックアップ計画"
#: assets/models/automations/base.py:115 audits/models.py:64 #: assets/models/automations/base.py:115 audits/models.py:64
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:228 #: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:228
#: ops/templates/ops/celery_task_log.html:75 #: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:72 terminal/models/applet/host.py:140 #: perms/models/asset_permission.py:77 terminal/models/applet/host.py:141
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
#: tickets/models/ticket/apply_application.py:30 #: tickets/models/ticket/apply_application.py:30
#: tickets/models/ticket/apply_asset.py:19 #: tickets/models/ticket/apply_asset.py:19
@ -418,7 +418,7 @@ msgstr "開始日"
#: accounts/models/automations/change_secret.py:42 #: accounts/models/automations/change_secret.py:42
#: assets/models/automations/base.py:116 ops/models/base.py:56 #: assets/models/automations/base.py:116 ops/models/base.py:56
#: ops/models/celery.py:64 ops/models/job.py:229 #: ops/models/celery.py:64 ops/models/job.py:229
#: terminal/models/applet/host.py:141 #: terminal/models/applet/host.py:142
msgid "Date finished" msgid "Date finished"
msgstr "終了日" msgstr "終了日"
@ -534,7 +534,7 @@ msgstr "パスワードルール"
#: authentication/serializers/connect_token_secret.py:110 ops/mixin.py:21 #: 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/adhoc.py:20 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:126 ops/models/playbook.py:28 ops/serializers/job.py:20 #: ops/models/job.py:126 ops/models/playbook.py:28 ops/serializers/job.py:20
#: orgs/models.py:82 perms/models/asset_permission.py:56 rbac/models/role.py:29 #: orgs/models.py:82 perms/models/asset_permission.py:60 rbac/models/role.py:29
#: settings/models.py:32 settings/serializers/msg.py:82 #: settings/models.py:32 settings/serializers/msg.py:82
#: terminal/models/applet/applet.py:33 terminal/models/component/endpoint.py:12 #: terminal/models/applet/applet.py:33 terminal/models/component/endpoint.py:12
#: terminal/models/component/endpoint.py:94 #: terminal/models/component/endpoint.py:94
@ -664,9 +664,9 @@ msgstr "アカウントの存在ポリシー"
#: accounts/serializers/account/account.py:190 applications/models.py:11 #: accounts/serializers/account/account.py:190 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:89 #: assets/models/label.py:21 assets/models/platform.py:89
#: assets/serializers/asset/common.py:121 assets/serializers/cagegory.py:8 #: assets/serializers/asset/common.py:121 assets/serializers/cagegory.py:12
#: assets/serializers/platform.py:133 assets/serializers/platform.py:229 #: assets/serializers/platform.py:133 assets/serializers/platform.py:229
#: perms/serializers/user_permission.py:26 settings/models.py:34 #: perms/serializers/user_permission.py:25 settings/models.py:34
#: tickets/models/ticket/apply_application.py:13 users/models/preference.py:12 #: tickets/models/ticket/apply_application.py:13 users/models/preference.py:12
msgid "Category" msgid "Category"
msgstr "カテゴリ" msgstr "カテゴリ"
@ -680,7 +680,7 @@ msgstr "カテゴリ"
#: assets/serializers/platform.py:132 audits/serializers.py:50 #: assets/serializers/platform.py:132 audits/serializers.py:50
#: audits/serializers.py:170 #: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:137 #: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:137
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:39 #: perms/serializers/user_permission.py:26 terminal/models/applet/applet.py:39
#: terminal/models/component/storage.py:57 #: terminal/models/component/storage.py:57
#: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29 #: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29
#: terminal/serializers/session.py:21 terminal/serializers/storage.py:228 #: terminal/serializers/session.py:21 terminal/serializers/storage.py:228
@ -715,7 +715,7 @@ msgstr "編集済み"
#: acls/templates/acls/asset_login_reminder.html:6 #: acls/templates/acls/asset_login_reminder.html:6
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 #: assets/serializers/automations/base.py:20
#: authentication/api/connection_token.py:405 ops/models/base.py:17 #: authentication/api/connection_token.py:406 ops/models/base.py:17
#: ops/models/job.py:139 ops/serializers/job.py:21 #: ops/models/job.py:139 ops/serializers/job.py:21
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
msgid "Assets" msgid "Assets"
@ -747,7 +747,7 @@ msgstr "ID"
#: audits/serializers.py:171 authentication/models/connection_token.py:32 #: audits/serializers.py:171 authentication/models/connection_token.py:32
#: authentication/models/sso_token.py:16 #: authentication/models/sso_token.py:16
#: notifications/models/notification.py:12 #: notifications/models/notification.py:12
#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:62
#: perms/serializers/permission.py:30 rbac/builtin.py:124 #: perms/serializers/permission.py:30 rbac/builtin.py:124
#: rbac/models/rolebinding.py:49 rbac/serializers/rolebinding.py:17 #: rbac/models/rolebinding.py:49 rbac/serializers/rolebinding.py:17
#: terminal/backends/command/models.py:16 terminal/models/session/session.py:29 #: terminal/backends/command/models.py:16 terminal/models/session/session.py:29
@ -843,7 +843,7 @@ msgstr "关联平台,可以配置推送参数,如果不关联,则使用默
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26 #: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:145 ops/models/playbook.py:31 rbac/models/role.py:37 #: ops/models/job.py:145 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:37 terminal/models/applet/applet.py:45 #: settings/models.py:37 terminal/models/applet/applet.py:45
#: terminal/models/applet/applet.py:304 terminal/models/applet/host.py:142 #: terminal/models/applet/applet.py:321 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:24 #: terminal/models/component/endpoint.py:24
#: terminal/models/component/endpoint.py:104 #: terminal/models/component/endpoint.py:104
#: terminal/models/session/session.py:46 tickets/models/comment.py:32 #: terminal/models/session/session.py:46 tickets/models/comment.py:32
@ -866,7 +866,7 @@ msgstr ""
#: accounts/serializers/automations/base.py:23 #: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:155 assets/models/automations/base.py:18 #: assets/models/asset/common.py:155 assets/models/automations/base.py:18
#: assets/models/cmd_filter.py:32 assets/serializers/automations/base.py:21 #: assets/models/cmd_filter.py:32 assets/serializers/automations/base.py:21
#: perms/models/asset_permission.py:67 #: perms/models/asset_permission.py:71
msgid "Nodes" msgid "Nodes"
msgstr "ノード" msgstr "ノード"
@ -1017,7 +1017,7 @@ msgstr "レビュー担当者"
#: acls/models/base.py:43 authentication/models/access_key.py:20 #: acls/models/base.py:43 authentication/models/access_key.py:20
#: authentication/models/connection_token.py:53 #: authentication/models/connection_token.py:53
#: authentication/templates/authentication/_access_key_modal.html:32 #: authentication/templates/authentication/_access_key_modal.html:32
#: perms/models/asset_permission.py:76 terminal/models/session/sharing.py:29 #: perms/models/asset_permission.py:81 terminal/models/session/sharing.py:29
#: tickets/const.py:37 #: tickets/const.py:37
msgid "Active" msgid "Active"
msgstr "アクティブ" msgstr "アクティブ"
@ -1028,7 +1028,7 @@ msgstr "ユーザー"
#: acls/models/base.py:98 assets/models/automations/base.py:17 #: acls/models/base.py:98 assets/models/automations/base.py:17
#: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:377 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:377
#: rbac/tree.py:35 #: perms/serializers/user_permission.py:75 rbac/tree.py:35
msgid "Accounts" msgid "Accounts"
msgstr "アカウント" msgstr "アカウント"
@ -1640,7 +1640,7 @@ msgstr "プラットフォーム"
#: assets/models/asset/common.py:153 assets/models/domain.py:21 #: assets/models/asset/common.py:153 assets/models/domain.py:21
#: authentication/serializers/connect_token_secret.py:133 #: authentication/serializers/connect_token_secret.py:133
#: perms/serializers/user_permission.py:29 xpack/plugins/cloud/models.py:323 #: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:323
msgid "Domain" msgid "Domain"
msgstr "ドメイン" msgstr "ドメイン"
@ -1712,9 +1712,9 @@ msgstr "アセットの自動化タスク"
#: assets/models/automations/base.py:113 audits/models.py:207 #: assets/models/automations/base.py:113 audits/models.py:207
#: audits/serializers.py:51 ops/models/base.py:49 ops/models/job.py:220 #: audits/serializers.py:51 ops/models/base.py:49 ops/models/job.py:220
#: terminal/models/applet/applet.py:303 terminal/models/applet/host.py:139 #: terminal/models/applet/applet.py:320 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18 #: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
#: terminal/serializers/applet_host.py:115 tickets/models/ticket/general.py:283 #: terminal/serializers/applet_host.py:124 tickets/models/ticket/general.py:283
#: tickets/serializers/super_ticket.py:13 #: tickets/serializers/super_ticket.py:13
#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:201 #: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:201
#: xpack/plugins/cloud/models.py:257 #: xpack/plugins/cloud/models.py:257
@ -1737,7 +1737,7 @@ msgstr "接続性"
msgid "Date verified" msgid "Date verified"
msgstr "確認済みの日付" msgstr "確認済みの日付"
#: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:61 #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:65
#: perms/serializers/permission.py:32 users/models/group.py:25 #: perms/serializers/permission.py:32 users/models/group.py:25
#: users/models/user.py:798 #: users/models/user.py:798
msgid "User group" msgid "User group"
@ -1794,7 +1794,8 @@ msgid "System"
msgstr "システム" msgstr "システム"
#: assets/models/label.py:19 assets/models/node.py:539 #: assets/models/label.py:19 assets/models/node.py:539
#: assets/serializers/cagegory.py:7 assets/serializers/cagegory.py:14 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:29 #: authentication/models/connection_token.py:29
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:122
#: common/serializers/common.py:86 settings/models.py:33 #: common/serializers/common.py:86 settings/models.py:33
@ -1803,10 +1804,10 @@ msgid "Value"
msgstr "値" msgstr "値"
#: assets/models/label.py:40 assets/serializers/asset/common.py:123 #: assets/models/label.py:40 assets/serializers/asset/common.py:123
#: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13 #: assets/serializers/cagegory.py:10 assets/serializers/cagegory.py:17
#: assets/serializers/platform.py:112 #: assets/serializers/cagegory.py:23 assets/serializers/platform.py:112
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:121
#: common/serializers/common.py:85 perms/serializers/user_permission.py:28 #: common/serializers/common.py:85 perms/serializers/user_permission.py:27
#: settings/serializers/msg.py:83 #: settings/serializers/msg.py:83
msgid "Label" msgid "Label"
msgstr "ラベル" msgstr "ラベル"
@ -1974,7 +1975,8 @@ msgstr ""
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:134 #: assets/serializers/asset/common.py:124 assets/serializers/platform.py:134
#: authentication/serializers/connect_token_secret.py:29 #: authentication/serializers/connect_token_secret.py:29
#: authentication/serializers/connect_token_secret.py:72 #: authentication/serializers/connect_token_secret.py:72
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:324 #: perms/models/asset_permission.py:75 perms/serializers/permission.py:40
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:324
#: xpack/plugins/cloud/serializers/task.py:31 #: xpack/plugins/cloud/serializers/task.py:31
msgid "Protocols" msgid "Protocols"
msgstr "プロトコル" msgstr "プロトコル"
@ -2005,7 +2007,7 @@ msgstr "プロトコルが必要です: {}"
msgid "Invalid data" msgid "Invalid data"
msgstr "無効なデータ" msgstr "無効なデータ"
#: assets/serializers/asset/database.py:12 #: assets/serializers/asset/database.py:13
msgid "Default database" msgid "Default database"
msgstr "デフォルト・データベース" msgstr "デフォルト・データベース"
@ -2075,11 +2077,11 @@ msgstr "システムバージョン"
msgid "OS arch" msgid "OS arch"
msgstr "システムアーキテクチャ" msgstr "システムアーキテクチャ"
#: assets/serializers/cagegory.py:9 #: assets/serializers/cagegory.py:13
msgid "Constraints" msgid "Constraints"
msgstr "制約" msgstr "制約"
#: assets/serializers/cagegory.py:15 #: assets/serializers/cagegory.py:19
msgid "Types" msgid "Types"
msgstr "タイプ" msgstr "タイプ"
@ -2330,7 +2332,7 @@ msgstr "セッションログ"
msgid "Login log" msgid "Login log"
msgstr "ログインログ" msgstr "ログインログ"
#: audits/const.py:51 terminal/models/applet/host.py:143 #: audits/const.py:51 terminal/models/applet/host.py:144
#: terminal/models/component/task.py:22 #: terminal/models/component/task.py:22
msgid "Task" msgid "Task"
msgstr "タスク" msgstr "タスク"
@ -2470,7 +2472,7 @@ msgid "User %s %s this resource"
msgstr "ユーザー %s %s が現在のリソースをサブスクライブしました。" msgstr "ユーザー %s %s が現在のリソースをサブスクライブしました。"
#: audits/serializers.py:172 authentication/models/connection_token.py:47 #: audits/serializers.py:172 authentication/models/connection_token.py:47
#: authentication/models/temp_token.py:13 perms/models/asset_permission.py:74 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:79
#: tickets/models/ticket/apply_application.py:31 #: tickets/models/ticket/apply_application.py:31
#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:833 #: tickets/models/ticket/apply_asset.py:20 users/models/user.py:833
msgid "Date expired" msgid "Date expired"
@ -2557,23 +2559,23 @@ msgstr ""
"再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効に" "再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効に"
"なっていません" "なっていません"
#: authentication/api/connection_token.py:375 #: authentication/api/connection_token.py:376
msgid "Anonymous account is not supported for this asset" msgid "Anonymous account is not supported for this asset"
msgstr "匿名アカウントはこのプロパティではサポートされていません" msgstr "匿名アカウントはこのプロパティではサポートされていません"
#: authentication/api/connection_token.py:394 #: authentication/api/connection_token.py:395
msgid "Account not found" msgid "Account not found"
msgstr "アカウントが見つかりません" msgstr "アカウントが見つかりません"
#: authentication/api/connection_token.py:397 #: authentication/api/connection_token.py:398
msgid "Permission expired" msgid "Permission expired"
msgstr "承認の有効期限が切れています" msgstr "承認の有効期限が切れています"
#: authentication/api/connection_token.py:427 #: authentication/api/connection_token.py:428
msgid "ACL action is reject: {}({})" msgid "ACL action is reject: {}({})"
msgstr "ACL アクションは拒否です: {}({})" msgstr "ACL アクションは拒否です: {}({})"
#: authentication/api/connection_token.py:431 #: authentication/api/connection_token.py:432
msgid "ACL action is review" msgid "ACL action is review"
msgstr "ACL アクションはレビューです" msgstr "ACL アクションはレビューです"
@ -2989,7 +2991,7 @@ msgid "Reusable"
msgstr "再利用可能" msgstr "再利用可能"
#: authentication/models/connection_token.py:51 #: authentication/models/connection_token.py:51
#: perms/models/asset_permission.py:77 #: perms/models/asset_permission.py:82
msgid "From ticket" msgid "From ticket"
msgstr "チケットから" msgstr "チケットから"
@ -3005,7 +3007,7 @@ msgstr "接続トークンを再利用できます"
msgid "Connection token" msgid "Connection token"
msgstr "接続トークン" msgstr "接続トークン"
#: authentication/models/connection_token.py:116 #: authentication/models/connection_token.py:115
msgid "Connection token inactive" msgid "Connection token inactive"
msgstr "接続トークンがアクティブ化されていません" msgstr "接続トークンがアクティブ化されていません"
@ -3078,15 +3080,15 @@ msgid "Ticket info"
msgstr "作業指示情報" msgstr "作業指示情報"
#: authentication/serializers/connection_token.py:21 #: authentication/serializers/connection_token.py:21
#: perms/models/asset_permission.py:71 perms/serializers/permission.py:36 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:36
#: perms/serializers/permission.py:56 #: perms/serializers/permission.py:57
#: tickets/models/ticket/apply_application.py:28 #: tickets/models/ticket/apply_application.py:28
#: tickets/models/ticket/apply_asset.py:18 #: tickets/models/ticket/apply_asset.py:18
msgid "Actions" msgid "Actions"
msgstr "アクション" msgstr "アクション"
#: authentication/serializers/connection_token.py:42 #: authentication/serializers/connection_token.py:42
#: perms/serializers/permission.py:38 perms/serializers/permission.py:57 #: perms/serializers/permission.py:38 perms/serializers/permission.py:58
#: users/serializers/user.py:97 users/serializers/user.py:171 #: users/serializers/user.py:97 users/serializers/user.py:171
msgid "Is expired" msgid "Is expired"
msgstr "期限切れです" msgstr "期限切れです"
@ -3107,7 +3109,7 @@ msgid "The {} cannot be empty"
msgstr "{} 空にしてはならない" msgstr "{} 空にしてはならない"
#: authentication/serializers/token.py:86 perms/serializers/permission.py:37 #: authentication/serializers/token.py:86 perms/serializers/permission.py:37
#: perms/serializers/permission.py:58 users/serializers/user.py:98 #: perms/serializers/permission.py:59 users/serializers/user.py:98
#: users/serializers/user.py:168 #: users/serializers/user.py:168
msgid "Is valid" msgid "Is valid"
msgstr "有効です" msgstr "有効です"
@ -4199,31 +4201,31 @@ msgstr "終了しました"
msgid "Time cost" msgid "Time cost"
msgstr "時を過ごす" msgstr "時を過ごす"
#: ops/tasks.py:36 #: ops/tasks.py:37
msgid "Run ansible task" msgid "Run ansible task"
msgstr "Ansible タスクを実行する" msgstr "Ansible タスクを実行する"
#: ops/tasks.py:70 #: ops/tasks.py:71
msgid "Run ansible task execution" msgid "Run ansible task execution"
msgstr "Ansible タスクの実行を開始する" msgstr "Ansible タスクの実行を開始する"
#: ops/tasks.py:92 #: ops/tasks.py:93
msgid "Clear celery periodic tasks" msgid "Clear celery periodic tasks"
msgstr "タスクログを定期的にクリアする" msgstr "タスクログを定期的にクリアする"
#: ops/tasks.py:113 #: ops/tasks.py:114
msgid "Create or update periodic tasks" msgid "Create or update periodic tasks"
msgstr "定期的なタスクの作成または更新" msgstr "定期的なタスクの作成または更新"
#: ops/tasks.py:121 #: ops/tasks.py:122
msgid "Periodic check service performance" msgid "Periodic check service performance"
msgstr "サービスのパフォーマンスを定期的に確認する" msgstr "サービスのパフォーマンスを定期的に確認する"
#: ops/tasks.py:127 #: ops/tasks.py:128
msgid "Clean up unexpected jobs" msgid "Clean up unexpected jobs"
msgstr "例外ジョブのクリーンアップ" msgstr "例外ジョブのクリーンアップ"
#: ops/tasks.py:141 #: ops/tasks.py:135
msgid "Clean job_execution db record" msgid "Clean job_execution db record"
msgstr "ジョブセンター実行履歴のクリーンアップ" msgstr "ジョブセンター実行履歴のクリーンアップ"
@ -4359,7 +4361,7 @@ msgstr "転送"
msgid "Clipboard" msgid "Clipboard"
msgstr "クリップボード" msgstr "クリップボード"
#: perms/models/asset_permission.py:83 #: perms/models/asset_permission.py:88
msgid "Asset permission" msgid "Asset permission"
msgstr "資産権限" msgstr "資産権限"
@ -4613,7 +4615,7 @@ msgid "My assets"
msgstr "私の資産" msgstr "私の資産"
#: rbac/tree.py:56 terminal/models/applet/applet.py:52 #: rbac/tree.py:56 terminal/models/applet/applet.py:52
#: terminal/models/applet/applet.py:300 terminal/models/applet/host.py:29 #: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:15 #: terminal/serializers/applet.py:15
msgid "Applet" msgid "Applet"
msgstr "リモートアプリケーション" msgstr "リモートアプリケーション"
@ -6344,8 +6346,8 @@ msgstr "カスタムプラットフォームのみをサポート"
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "platform.ymlにタイプがありません" msgstr "platform.ymlにタイプがありません"
#: terminal/models/applet/applet.py:302 terminal/models/applet/host.py:35 #: terminal/models/applet/applet.py:319 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:137 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "ホスト マシン" msgstr "ホスト マシン"
@ -6373,7 +6375,13 @@ msgstr "初期化日"
msgid "Date synced" msgid "Date synced"
msgstr "同期日" msgstr "同期日"
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:28
#, fuzzy
#| msgid "Is service account"
msgid "Using same account"
msgstr "サービスアカウントです"
#: terminal/models/applet/host.py:139
msgid "Initial" msgid "Initial"
msgstr "初期化" msgstr "初期化"
@ -6701,7 +6709,7 @@ msgstr "RDS 远程应用注销时间限制"
msgid "Load status" msgid "Load status"
msgstr "ロードステータス" msgstr "ロードステータス"
#: terminal/serializers/applet_host.py:72 #: terminal/serializers/applet_host.py:73
msgid "" msgid ""
"These accounts are used to connect to the published application, the account " "These accounts are used to connect to the published application, the account "
"is now divided into two types, one is dedicated to each account, each user " "is now divided into two types, one is dedicated to each account, each user "
@ -6715,10 +6723,17 @@ msgstr ""
"開されています。アプリケーションが複数のオープンをサポートしていない場合、お" "開されています。アプリケーションが複数のオープンをサポートしていない場合、お"
"よび特別なものが使用されている場合、公開アカウントが使用されます。" "よび特別なものが使用されている場合、公開アカウントが使用されます。"
#: terminal/serializers/applet_host.py:77 #: terminal/serializers/applet_host.py:80
msgid "The number of public accounts created automatically" msgid "The number of public accounts created automatically"
msgstr "自動的に作成される公開アカウントの数" msgstr "自動的に作成される公開アカウントの数"
#: terminal/serializers/applet_host.py:83
msgid ""
"Connect to the host using the same account first. For security reasons, "
"please set the configuration item CACHE_LOGIN_PASSWORD_ENABLED=true and "
"restart the service to enable it."
msgstr "同じアカウントを使用してホストに接続します。セキュリティ上の理由から、構成項目 CACHE_LOGIN_PASSWORD_ENABLED=true を設定してサービスを再起動して有効にしてください。"
#: terminal/serializers/command.py:19 #: terminal/serializers/command.py:19
msgid "Session ID" msgid "Session ID"
msgstr "セッションID" msgstr "セッションID"
@ -7425,7 +7440,7 @@ msgid "Public key should not be the same as your old one."
msgstr "公開鍵は古いものと同じであってはなりません。" msgstr "公開鍵は古いものと同じであってはなりません。"
#: users/forms/profile.py:162 users/serializers/profile.py:76 #: users/forms/profile.py:162 users/serializers/profile.py:76
#: users/serializers/profile.py:159 users/serializers/profile.py:186 #: users/serializers/profile.py:164 users/serializers/profile.py:191
msgid "Not a valid ssh public key" msgid "Not a valid ssh public key"
msgstr "有効なssh公開鍵ではありません" msgstr "有効なssh公開鍵ではありません"
@ -7467,7 +7482,7 @@ msgstr "OTP 秘密"
msgid "Private key" msgid "Private key"
msgstr "ssh秘密鍵" msgstr "ssh秘密鍵"
#: users/models/user.py:830 users/serializers/profile.py:125 #: users/models/user.py:830 users/serializers/profile.py:128
#: users/serializers/user.py:166 #: users/serializers/user.py:166
msgid "Is first login" msgid "Is first login"
msgstr "最初のログインです" msgstr "最初のログインです"
@ -7607,7 +7622,7 @@ msgstr "コマンドライン"
msgid "The old password is incorrect" msgid "The old password is incorrect"
msgstr "古いパスワードが正しくありません" msgstr "古いパスワードが正しくありません"
#: users/serializers/profile.py:36 users/serializers/profile.py:173 #: users/serializers/profile.py:36 users/serializers/profile.py:178
msgid "Password does not match security rules" msgid "Password does not match security rules"
msgstr "パスワードがセキュリティルールと一致しない" msgstr "パスワードがセキュリティルールと一致しない"
@ -8596,7 +8611,7 @@ msgstr "ライセンスのインポートに成功"
msgid "License is invalid" msgid "License is invalid"
msgstr "ライセンスが無効です" msgstr "ライセンスが無効です"
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:140 #: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
msgid "License" msgid "License"
msgstr "ライセンス" msgstr "ライセンス"

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:9f331dc156c4e51b6a30249da9d342093c79da1cebe926474b7942a5d3b6a931 oid sha256:8e12c0cc20ed3b5e16cdef15238c78c27d4189740c3c71fdca9cbb20230bec74
size 133436 size 133982

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: 2023-10-20 14:50+0800\n" "POT-Creation-Date: 2023-10-30 11:28+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -226,7 +226,7 @@ msgstr "用户 %s 查看/导出 了密码"
#: assets/models/asset/common.py:334 assets/models/cmd_filter.py:36 #: assets/models/asset/common.py:334 assets/models/cmd_filter.py:36
#: assets/serializers/domain.py:19 assets/serializers/label.py:27 #: assets/serializers/domain.py:19 assets/serializers/label.py:27
#: audits/models.py:57 authentication/models/connection_token.py:36 #: audits/models.py:57 authentication/models/connection_token.py:36
#: perms/models/asset_permission.py:64 perms/serializers/permission.py:34 #: perms/models/asset_permission.py:68 perms/serializers/permission.py:34
#: terminal/backends/command/models.py:17 terminal/models/session/session.py:31 #: terminal/backends/command/models.py:17 terminal/models/session/session.py:31
#: terminal/notifications.py:155 terminal/serializers/command.py:17 #: terminal/notifications.py:155 terminal/serializers/command.py:17
#: terminal/serializers/session.py:26 #: terminal/serializers/session.py:26
@ -264,8 +264,8 @@ msgstr "来源 ID"
#: accounts/serializers/automations/change_secret.py:127 #: accounts/serializers/automations/change_secret.py:127
#: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7 #: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7
#: assets/serializers/asset/common.py:125 assets/serializers/gateway.py:28 #: assets/serializers/asset/common.py:125 assets/serializers/gateway.py:28
#: audits/models.py:58 authentication/api/connection_token.py:406 #: audits/models.py:58 authentication/api/connection_token.py:407
#: ops/models/base.py:18 perms/models/asset_permission.py:70 #: ops/models/base.py:18 perms/models/asset_permission.py:74
#: perms/serializers/permission.py:39 terminal/backends/command/models.py:18 #: perms/serializers/permission.py:39 terminal/backends/command/models.py:18
#: terminal/models/session/session.py:33 #: terminal/models/session/session.py:33
#: terminal/templates/terminal/_msg_command_warning.html:8 #: terminal/templates/terminal/_msg_command_warning.html:8
@ -311,7 +311,7 @@ msgstr "账号备份计划"
#: assets/models/automations/base.py:115 audits/models.py:64 #: assets/models/automations/base.py:115 audits/models.py:64
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:228 #: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:228
#: ops/templates/ops/celery_task_log.html:75 #: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:72 terminal/models/applet/host.py:140 #: perms/models/asset_permission.py:77 terminal/models/applet/host.py:141
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
#: tickets/models/ticket/apply_application.py:30 #: tickets/models/ticket/apply_application.py:30
#: tickets/models/ticket/apply_asset.py:19 #: tickets/models/ticket/apply_asset.py:19
@ -417,7 +417,7 @@ msgstr "开始日期"
#: accounts/models/automations/change_secret.py:42 #: accounts/models/automations/change_secret.py:42
#: assets/models/automations/base.py:116 ops/models/base.py:56 #: assets/models/automations/base.py:116 ops/models/base.py:56
#: ops/models/celery.py:64 ops/models/job.py:229 #: ops/models/celery.py:64 ops/models/job.py:229
#: terminal/models/applet/host.py:141 #: terminal/models/applet/host.py:142
msgid "Date finished" msgid "Date finished"
msgstr "结束日期" msgstr "结束日期"
@ -533,7 +533,7 @@ msgstr "密码规则"
#: authentication/serializers/connect_token_secret.py:110 ops/mixin.py:21 #: 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/adhoc.py:20 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:126 ops/models/playbook.py:28 ops/serializers/job.py:20 #: ops/models/job.py:126 ops/models/playbook.py:28 ops/serializers/job.py:20
#: orgs/models.py:82 perms/models/asset_permission.py:56 rbac/models/role.py:29 #: orgs/models.py:82 perms/models/asset_permission.py:60 rbac/models/role.py:29
#: settings/models.py:32 settings/serializers/msg.py:82 #: settings/models.py:32 settings/serializers/msg.py:82
#: terminal/models/applet/applet.py:33 terminal/models/component/endpoint.py:12 #: terminal/models/applet/applet.py:33 terminal/models/component/endpoint.py:12
#: terminal/models/component/endpoint.py:94 #: terminal/models/component/endpoint.py:94
@ -662,9 +662,9 @@ msgstr "账号存在策略"
#: accounts/serializers/account/account.py:190 applications/models.py:11 #: accounts/serializers/account/account.py:190 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:89 #: assets/models/label.py:21 assets/models/platform.py:89
#: assets/serializers/asset/common.py:121 assets/serializers/cagegory.py:8 #: assets/serializers/asset/common.py:121 assets/serializers/cagegory.py:12
#: assets/serializers/platform.py:133 assets/serializers/platform.py:229 #: assets/serializers/platform.py:133 assets/serializers/platform.py:229
#: perms/serializers/user_permission.py:26 settings/models.py:34 #: perms/serializers/user_permission.py:25 settings/models.py:34
#: tickets/models/ticket/apply_application.py:13 users/models/preference.py:12 #: tickets/models/ticket/apply_application.py:13 users/models/preference.py:12
msgid "Category" msgid "Category"
msgstr "类别" msgstr "类别"
@ -678,7 +678,7 @@ msgstr "类别"
#: assets/serializers/platform.py:132 audits/serializers.py:50 #: assets/serializers/platform.py:132 audits/serializers.py:50
#: audits/serializers.py:170 #: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:137 #: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:137
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:39 #: perms/serializers/user_permission.py:26 terminal/models/applet/applet.py:39
#: terminal/models/component/storage.py:57 #: terminal/models/component/storage.py:57
#: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29 #: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29
#: terminal/serializers/session.py:21 terminal/serializers/storage.py:228 #: terminal/serializers/session.py:21 terminal/serializers/storage.py:228
@ -713,7 +713,7 @@ msgstr "已修改"
#: acls/templates/acls/asset_login_reminder.html:6 #: acls/templates/acls/asset_login_reminder.html:6
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 #: assets/serializers/automations/base.py:20
#: authentication/api/connection_token.py:405 ops/models/base.py:17 #: authentication/api/connection_token.py:406 ops/models/base.py:17
#: ops/models/job.py:139 ops/serializers/job.py:21 #: ops/models/job.py:139 ops/serializers/job.py:21
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
msgid "Assets" msgid "Assets"
@ -745,7 +745,7 @@ msgstr "ID"
#: audits/serializers.py:171 authentication/models/connection_token.py:32 #: audits/serializers.py:171 authentication/models/connection_token.py:32
#: authentication/models/sso_token.py:16 #: authentication/models/sso_token.py:16
#: notifications/models/notification.py:12 #: notifications/models/notification.py:12
#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:62
#: perms/serializers/permission.py:30 rbac/builtin.py:124 #: perms/serializers/permission.py:30 rbac/builtin.py:124
#: rbac/models/rolebinding.py:49 rbac/serializers/rolebinding.py:17 #: rbac/models/rolebinding.py:49 rbac/serializers/rolebinding.py:17
#: terminal/backends/command/models.py:16 terminal/models/session/session.py:29 #: terminal/backends/command/models.py:16 terminal/models/session/session.py:29
@ -841,7 +841,7 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26 #: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:145 ops/models/playbook.py:31 rbac/models/role.py:37 #: ops/models/job.py:145 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:37 terminal/models/applet/applet.py:45 #: settings/models.py:37 terminal/models/applet/applet.py:45
#: terminal/models/applet/applet.py:304 terminal/models/applet/host.py:142 #: terminal/models/applet/applet.py:321 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:24 #: terminal/models/component/endpoint.py:24
#: terminal/models/component/endpoint.py:104 #: terminal/models/component/endpoint.py:104
#: terminal/models/session/session.py:46 tickets/models/comment.py:32 #: terminal/models/session/session.py:46 tickets/models/comment.py:32
@ -863,7 +863,7 @@ msgstr ""
#: accounts/serializers/automations/base.py:23 #: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:155 assets/models/automations/base.py:18 #: assets/models/asset/common.py:155 assets/models/automations/base.py:18
#: assets/models/cmd_filter.py:32 assets/serializers/automations/base.py:21 #: assets/models/cmd_filter.py:32 assets/serializers/automations/base.py:21
#: perms/models/asset_permission.py:67 #: perms/models/asset_permission.py:71
msgid "Nodes" msgid "Nodes"
msgstr "节点" msgstr "节点"
@ -1014,7 +1014,7 @@ msgstr "审批人"
#: acls/models/base.py:43 authentication/models/access_key.py:20 #: acls/models/base.py:43 authentication/models/access_key.py:20
#: authentication/models/connection_token.py:53 #: authentication/models/connection_token.py:53
#: authentication/templates/authentication/_access_key_modal.html:32 #: authentication/templates/authentication/_access_key_modal.html:32
#: perms/models/asset_permission.py:76 terminal/models/session/sharing.py:29 #: perms/models/asset_permission.py:81 terminal/models/session/sharing.py:29
#: tickets/const.py:37 #: tickets/const.py:37
msgid "Active" msgid "Active"
msgstr "激活中" msgstr "激活中"
@ -1025,7 +1025,7 @@ msgstr "用户管理"
#: acls/models/base.py:98 assets/models/automations/base.py:17 #: acls/models/base.py:98 assets/models/automations/base.py:17
#: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:377 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:377
#: rbac/tree.py:35 #: perms/serializers/user_permission.py:75 rbac/tree.py:35
msgid "Accounts" msgid "Accounts"
msgstr "账号管理" msgstr "账号管理"
@ -1633,7 +1633,7 @@ msgstr "系统平台"
#: assets/models/asset/common.py:153 assets/models/domain.py:21 #: assets/models/asset/common.py:153 assets/models/domain.py:21
#: authentication/serializers/connect_token_secret.py:133 #: authentication/serializers/connect_token_secret.py:133
#: perms/serializers/user_permission.py:29 xpack/plugins/cloud/models.py:323 #: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:323
msgid "Domain" msgid "Domain"
msgstr "网域" msgstr "网域"
@ -1705,9 +1705,9 @@ msgstr "资产自动化任务"
#: assets/models/automations/base.py:113 audits/models.py:207 #: assets/models/automations/base.py:113 audits/models.py:207
#: audits/serializers.py:51 ops/models/base.py:49 ops/models/job.py:220 #: audits/serializers.py:51 ops/models/base.py:49 ops/models/job.py:220
#: terminal/models/applet/applet.py:303 terminal/models/applet/host.py:139 #: terminal/models/applet/applet.py:320 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18 #: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
#: terminal/serializers/applet_host.py:115 tickets/models/ticket/general.py:283 #: terminal/serializers/applet_host.py:124 tickets/models/ticket/general.py:283
#: tickets/serializers/super_ticket.py:13 #: tickets/serializers/super_ticket.py:13
#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:201 #: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:201
#: xpack/plugins/cloud/models.py:257 #: xpack/plugins/cloud/models.py:257
@ -1730,7 +1730,7 @@ msgstr "可连接性"
msgid "Date verified" msgid "Date verified"
msgstr "校验日期" msgstr "校验日期"
#: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:61 #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:65
#: perms/serializers/permission.py:32 users/models/group.py:25 #: perms/serializers/permission.py:32 users/models/group.py:25
#: users/models/user.py:798 #: users/models/user.py:798
msgid "User group" msgid "User group"
@ -1787,7 +1787,8 @@ msgid "System"
msgstr "系统" msgstr "系统"
#: assets/models/label.py:19 assets/models/node.py:539 #: assets/models/label.py:19 assets/models/node.py:539
#: assets/serializers/cagegory.py:7 assets/serializers/cagegory.py:14 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:29 #: authentication/models/connection_token.py:29
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:122
#: common/serializers/common.py:86 settings/models.py:33 #: common/serializers/common.py:86 settings/models.py:33
@ -1796,10 +1797,10 @@ msgid "Value"
msgstr "值" msgstr "值"
#: assets/models/label.py:40 assets/serializers/asset/common.py:123 #: assets/models/label.py:40 assets/serializers/asset/common.py:123
#: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13 #: assets/serializers/cagegory.py:10 assets/serializers/cagegory.py:17
#: assets/serializers/platform.py:112 #: assets/serializers/cagegory.py:23 assets/serializers/platform.py:112
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:121
#: common/serializers/common.py:85 perms/serializers/user_permission.py:28 #: common/serializers/common.py:85 perms/serializers/user_permission.py:27
#: settings/serializers/msg.py:83 #: settings/serializers/msg.py:83
msgid "Label" msgid "Label"
msgstr "标签" msgstr "标签"
@ -1965,7 +1966,8 @@ msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:134 #: assets/serializers/asset/common.py:124 assets/serializers/platform.py:134
#: authentication/serializers/connect_token_secret.py:29 #: authentication/serializers/connect_token_secret.py:29
#: authentication/serializers/connect_token_secret.py:72 #: authentication/serializers/connect_token_secret.py:72
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:324 #: perms/models/asset_permission.py:75 perms/serializers/permission.py:40
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:324
#: xpack/plugins/cloud/serializers/task.py:31 #: xpack/plugins/cloud/serializers/task.py:31
msgid "Protocols" msgid "Protocols"
msgstr "协议组" msgstr "协议组"
@ -1996,7 +1998,7 @@ msgstr "协议是必填的: {}"
msgid "Invalid data" msgid "Invalid data"
msgstr "无效的数据" msgstr "无效的数据"
#: assets/serializers/asset/database.py:12 #: assets/serializers/asset/database.py:13
msgid "Default database" msgid "Default database"
msgstr "默认数据库" msgstr "默认数据库"
@ -2066,11 +2068,11 @@ msgstr "系统版本"
msgid "OS arch" msgid "OS arch"
msgstr "系统架构" msgstr "系统架构"
#: assets/serializers/cagegory.py:9 #: assets/serializers/cagegory.py:13
msgid "Constraints" msgid "Constraints"
msgstr "约束" msgstr "约束"
#: assets/serializers/cagegory.py:15 #: assets/serializers/cagegory.py:19
msgid "Types" msgid "Types"
msgstr "类型" msgstr "类型"
@ -2314,7 +2316,7 @@ msgstr "会话日志"
msgid "Login log" msgid "Login log"
msgstr "登录日志" msgstr "登录日志"
#: audits/const.py:51 terminal/models/applet/host.py:143 #: audits/const.py:51 terminal/models/applet/host.py:144
#: terminal/models/component/task.py:22 #: terminal/models/component/task.py:22
msgid "Task" msgid "Task"
msgstr "任务" msgstr "任务"
@ -2454,7 +2456,7 @@ msgid "User %s %s this resource"
msgstr "用户 %s %s 了当前资源" msgstr "用户 %s %s 了当前资源"
#: audits/serializers.py:172 authentication/models/connection_token.py:47 #: audits/serializers.py:172 authentication/models/connection_token.py:47
#: authentication/models/temp_token.py:13 perms/models/asset_permission.py:74 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:79
#: tickets/models/ticket/apply_application.py:31 #: tickets/models/ticket/apply_application.py:31
#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:833 #: tickets/models/ticket/apply_asset.py:20 users/models/user.py:833
msgid "Date expired" msgid "Date expired"
@ -2539,23 +2541,23 @@ msgstr "该操作需要验证您的 MFA, 请先开启并配置"
msgid "Reusable connection token is not allowed, global setting not enabled" msgid "Reusable connection token is not allowed, global setting not enabled"
msgstr "不允许使用可重复使用的连接令牌,未启用全局设置" msgstr "不允许使用可重复使用的连接令牌,未启用全局设置"
#: authentication/api/connection_token.py:375 #: authentication/api/connection_token.py:376
msgid "Anonymous account is not supported for this asset" msgid "Anonymous account is not supported for this asset"
msgstr "匿名账号不支持当前资产" msgstr "匿名账号不支持当前资产"
#: authentication/api/connection_token.py:394 #: authentication/api/connection_token.py:395
msgid "Account not found" msgid "Account not found"
msgstr "账号未找到" msgstr "账号未找到"
#: authentication/api/connection_token.py:397 #: authentication/api/connection_token.py:398
msgid "Permission expired" msgid "Permission expired"
msgstr "授权已过期" msgstr "授权已过期"
#: authentication/api/connection_token.py:427 #: authentication/api/connection_token.py:428
msgid "ACL action is reject: {}({})" msgid "ACL action is reject: {}({})"
msgstr "ACL 动作是拒绝: {}({})" msgstr "ACL 动作是拒绝: {}({})"
#: authentication/api/connection_token.py:431 #: authentication/api/connection_token.py:432
msgid "ACL action is review" msgid "ACL action is review"
msgstr "ACL 动作是复核" msgstr "ACL 动作是复核"
@ -2958,7 +2960,7 @@ msgid "Reusable"
msgstr "可以重复使用" msgstr "可以重复使用"
#: authentication/models/connection_token.py:51 #: authentication/models/connection_token.py:51
#: perms/models/asset_permission.py:77 #: perms/models/asset_permission.py:82
msgid "From ticket" msgid "From ticket"
msgstr "来自工单" msgstr "来自工单"
@ -2974,7 +2976,7 @@ msgstr "可以复用连接令牌"
msgid "Connection token" msgid "Connection token"
msgstr "连接令牌" msgstr "连接令牌"
#: authentication/models/connection_token.py:116 #: authentication/models/connection_token.py:115
msgid "Connection token inactive" msgid "Connection token inactive"
msgstr "连接令牌未激活" msgstr "连接令牌未激活"
@ -3047,15 +3049,15 @@ msgid "Ticket info"
msgstr "工单信息" msgstr "工单信息"
#: authentication/serializers/connection_token.py:21 #: authentication/serializers/connection_token.py:21
#: perms/models/asset_permission.py:71 perms/serializers/permission.py:36 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:36
#: perms/serializers/permission.py:56 #: perms/serializers/permission.py:57
#: tickets/models/ticket/apply_application.py:28 #: tickets/models/ticket/apply_application.py:28
#: tickets/models/ticket/apply_asset.py:18 #: tickets/models/ticket/apply_asset.py:18
msgid "Actions" msgid "Actions"
msgstr "动作" msgstr "动作"
#: authentication/serializers/connection_token.py:42 #: authentication/serializers/connection_token.py:42
#: perms/serializers/permission.py:38 perms/serializers/permission.py:57 #: perms/serializers/permission.py:38 perms/serializers/permission.py:58
#: users/serializers/user.py:97 users/serializers/user.py:171 #: users/serializers/user.py:97 users/serializers/user.py:171
msgid "Is expired" msgid "Is expired"
msgstr "已过期" msgstr "已过期"
@ -3076,7 +3078,7 @@ msgid "The {} cannot be empty"
msgstr "{} 不能为空" msgstr "{} 不能为空"
#: authentication/serializers/token.py:86 perms/serializers/permission.py:37 #: authentication/serializers/token.py:86 perms/serializers/permission.py:37
#: perms/serializers/permission.py:58 users/serializers/user.py:98 #: perms/serializers/permission.py:59 users/serializers/user.py:98
#: users/serializers/user.py:168 #: users/serializers/user.py:168
msgid "Is valid" msgid "Is valid"
msgstr "是否有效" msgstr "是否有效"
@ -4149,31 +4151,31 @@ msgstr "是否完成"
msgid "Time cost" msgid "Time cost"
msgstr "花费时间" msgstr "花费时间"
#: ops/tasks.py:36 #: ops/tasks.py:37
msgid "Run ansible task" msgid "Run ansible task"
msgstr "运行 Ansible 任务" msgstr "运行 Ansible 任务"
#: ops/tasks.py:70 #: ops/tasks.py:71
msgid "Run ansible task execution" msgid "Run ansible task execution"
msgstr "开始执行 Ansible 任务" msgstr "开始执行 Ansible 任务"
#: ops/tasks.py:92 #: ops/tasks.py:93
msgid "Clear celery periodic tasks" msgid "Clear celery periodic tasks"
msgstr "清理周期任务" msgstr "清理周期任务"
#: ops/tasks.py:113 #: ops/tasks.py:114
msgid "Create or update periodic tasks" msgid "Create or update periodic tasks"
msgstr "创建或更新周期任务" msgstr "创建或更新周期任务"
#: ops/tasks.py:121 #: ops/tasks.py:122
msgid "Periodic check service performance" msgid "Periodic check service performance"
msgstr "周期检测服务性能" msgstr "周期检测服务性能"
#: ops/tasks.py:127 #: ops/tasks.py:128
msgid "Clean up unexpected jobs" msgid "Clean up unexpected jobs"
msgstr "清理异常作业" msgstr "清理异常作业"
#: ops/tasks.py:141 #: ops/tasks.py:135
msgid "Clean job_execution db record" msgid "Clean job_execution db record"
msgstr "清理作业中心执行历史" msgstr "清理作业中心执行历史"
@ -4308,7 +4310,7 @@ msgstr "文件传输"
msgid "Clipboard" msgid "Clipboard"
msgstr "剪贴板" msgstr "剪贴板"
#: perms/models/asset_permission.py:83 #: perms/models/asset_permission.py:88
msgid "Asset permission" msgid "Asset permission"
msgstr "资产授权" msgstr "资产授权"
@ -4561,7 +4563,7 @@ msgid "My assets"
msgstr "我的资产" msgstr "我的资产"
#: rbac/tree.py:56 terminal/models/applet/applet.py:52 #: rbac/tree.py:56 terminal/models/applet/applet.py:52
#: terminal/models/applet/applet.py:300 terminal/models/applet/host.py:29 #: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:15 #: terminal/serializers/applet.py:15
msgid "Applet" msgid "Applet"
msgstr "远程应用" msgstr "远程应用"
@ -6254,8 +6256,8 @@ msgstr "只支持自定义平台"
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "在 platform.yml 中缺少类型" msgstr "在 platform.yml 中缺少类型"
#: terminal/models/applet/applet.py:302 terminal/models/applet/host.py:35 #: terminal/models/applet/applet.py:319 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:137 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "宿主机" msgstr "宿主机"
@ -6283,7 +6285,11 @@ msgstr "初始化日期"
msgid "Date synced" msgid "Date synced"
msgstr "同步日期" msgstr "同步日期"
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:28
msgid "Using same account"
msgstr "使用同名账号"
#: terminal/models/applet/host.py:139
msgid "Initial" msgid "Initial"
msgstr "初始化" msgstr "初始化"
@ -6609,7 +6615,7 @@ msgstr "RDS 远程应用注销时间限制"
msgid "Load status" msgid "Load status"
msgstr "负载状态" msgstr "负载状态"
#: terminal/serializers/applet_host.py:72 #: terminal/serializers/applet_host.py:73
msgid "" msgid ""
"These accounts are used to connect to the published application, the account " "These accounts are used to connect to the published application, the account "
"is now divided into two types, one is dedicated to each account, each user " "is now divided into two types, one is dedicated to each account, each user "
@ -6622,10 +6628,17 @@ msgstr ""
"使用公共账号连接; <br />注意: 如果不开启自动创建账号, 当前发布机仅能被指定标" "使用公共账号连接; <br />注意: 如果不开启自动创建账号, 当前发布机仅能被指定标"
"签的资产调度到,默认不会放到调度池中" "签的资产调度到,默认不会放到调度池中"
#: terminal/serializers/applet_host.py:77 #: terminal/serializers/applet_host.py:80
msgid "The number of public accounts created automatically" msgid "The number of public accounts created automatically"
msgstr "公用账号自动创建的数量" msgstr "公用账号自动创建的数量"
#: terminal/serializers/applet_host.py:83
msgid ""
"Connect to the host using the same account first. For security reasons, "
"please set the configuration item CACHE_LOGIN_PASSWORD_ENABLED=true and "
"restart the service to enable it."
msgstr "优先使用同名账号连接发布机。为了安全,需配置文件中开启配置 CACHE_LOGIN_PASSWORD_ENABLED=true 修改后重启服务"
#: terminal/serializers/command.py:19 #: terminal/serializers/command.py:19
msgid "Session ID" msgid "Session ID"
msgstr "会话ID" msgstr "会话ID"
@ -7323,7 +7336,7 @@ msgid "Public key should not be the same as your old one."
msgstr "不能和原来的密钥相同" msgstr "不能和原来的密钥相同"
#: users/forms/profile.py:162 users/serializers/profile.py:76 #: users/forms/profile.py:162 users/serializers/profile.py:76
#: users/serializers/profile.py:159 users/serializers/profile.py:186 #: users/serializers/profile.py:164 users/serializers/profile.py:191
msgid "Not a valid ssh public key" msgid "Not a valid ssh public key"
msgstr "SSH密钥不合法" msgstr "SSH密钥不合法"
@ -7365,7 +7378,7 @@ msgstr "OTP 密钥"
msgid "Private key" msgid "Private key"
msgstr "ssh私钥" msgstr "ssh私钥"
#: users/models/user.py:830 users/serializers/profile.py:125 #: users/models/user.py:830 users/serializers/profile.py:128
#: users/serializers/user.py:166 #: users/serializers/user.py:166
msgid "Is first login" msgid "Is first login"
msgstr "首次登录" msgstr "首次登录"
@ -7505,7 +7518,7 @@ msgstr "命令行"
msgid "The old password is incorrect" msgid "The old password is incorrect"
msgstr "旧密码错误" msgstr "旧密码错误"
#: users/serializers/profile.py:36 users/serializers/profile.py:173 #: users/serializers/profile.py:36 users/serializers/profile.py:178
msgid "Password does not match security rules" msgid "Password does not match security rules"
msgstr "密码不满足安全规则" msgstr "密码不满足安全规则"
@ -8478,7 +8491,7 @@ msgstr "许可证导入成功"
msgid "License is invalid" msgid "License is invalid"
msgstr "无效的许可证" msgstr "无效的许可证"
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:140 #: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
msgid "License" msgid "License"
msgstr "许可证" msgstr "许可证"

View File

@ -0,0 +1,18 @@
# Generated by Django 4.1.10 on 2023-10-30 03:08
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('terminal', '0065_session_error_reason'),
]
operations = [
migrations.AddField(
model_name='applethost',
name='using_same_account',
field=models.BooleanField(default=False, verbose_name='Using same account'),
),
]

View File

@ -258,6 +258,15 @@ class Applet(JMSBaseModel):
account = private_account account = private_account
return account return account
@staticmethod
def try_to_use_same_account(user, host):
from accounts.models import VirtualAccount
if not host.using_same_account:
return
account = VirtualAccount.get_same_account(user, host)
return account
def select_host_account(self, user, asset): def select_host_account(self, user, asset):
# 选择激活的发布机 # 选择激活的发布机
host = self.select_host(user, asset) host = self.select_host(user, asset)
@ -266,7 +275,11 @@ class Applet(JMSBaseModel):
logger.info('Select applet host: {}'.format(host.name)) logger.info('Select applet host: {}'.format(host.name))
valid_accounts = host.accounts.all().filter(is_active=True, privileged=False) valid_accounts = host.accounts.all().filter(is_active=True, privileged=False)
account = self.try_to_use_same_account(user, host)
if not account:
logger.debug('No same account, try to use private account')
account = self.try_to_use_private_account(user, host, valid_accounts) account = self.try_to_use_private_account(user, host, valid_accounts)
if not account: if not account:
logger.debug('No private account, try to use public account') logger.debug('No private account, try to use public account')
account = self.select_a_public_account(user, host, valid_accounts) account = self.select_a_public_account(user, host, valid_accounts)

View File

@ -25,6 +25,7 @@ class AppletHost(Host):
'terminal.Terminal', on_delete=models.PROTECT, null=True, blank=True, 'terminal.Terminal', on_delete=models.PROTECT, null=True, blank=True,
related_name='applet_host', verbose_name=_('Terminal') related_name='applet_host', verbose_name=_('Terminal')
) )
using_same_account = models.BooleanField(default=False, verbose_name=_('Using same account'))
applets = models.ManyToManyField( applets = models.ManyToManyField(
'Applet', verbose_name=_('Applet'), 'Applet', verbose_name=_('Applet'),
through='AppletPublication', through_fields=('host', 'applet'), through='AppletPublication', through_fields=('host', 'applet'),

View File

@ -63,18 +63,27 @@ class AppletHostSerializer(HostSerializer):
model = AppletHost model = AppletHost
fields = HostSerializer.Meta.fields + [ fields = HostSerializer.Meta.fields + [
'auto_create_accounts', 'accounts_create_amount', 'auto_create_accounts', 'accounts_create_amount',
'load', 'date_synced', 'deploy_options' 'load', 'date_synced', 'deploy_options', 'using_same_account',
] ]
extra_kwargs = { extra_kwargs = {
**HostSerializer.Meta.extra_kwargs, **HostSerializer.Meta.extra_kwargs,
'date_synced': {'read_only': True}, 'date_synced': {'read_only': True},
'auto_create_accounts': {'help_text': _( 'auto_create_accounts': {
'help_text': _(
'These accounts are used to connect to the published application, ' 'These accounts are used to connect to the published application, '
'the account is now divided into two types, one is dedicated to each account, ' 'the account is now divided into two types, one is dedicated to each account, '
'each user has a private account, the other is public, ' 'each user has a private account, the other is public, '
'when the application does not support multiple open and the special has been used, ' 'when the application does not support multiple open and the special has been used, '
'the public account will be used to connect')}, 'the public account will be used to connect'
)
},
'accounts_create_amount': {'help_text': _('The number of public accounts created automatically')}, 'accounts_create_amount': {'help_text': _('The number of public accounts created automatically')},
'using_same_account': {
'help_text': _(
'Connect to the host using the same account first. For security reasons, please set the '
'configuration item CACHE_LOGIN_PASSWORD_ENABLED=true and restart the service to enable it.'
)
}
} }
def __init__(self, *args, data=None, **kwargs): def __init__(self, *args, data=None, **kwargs):

View File

@ -2,7 +2,8 @@ from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver from django.dispatch import receiver
from django.utils.functional import LazyObject from django.utils.functional import LazyObject
from accounts.models import Account from accounts.const import AliasAccount
from accounts.models import Account, VirtualAccount
from common.decorators import on_transaction_commit from common.decorators import on_transaction_commit
from common.signals import django_ready from common.signals import django_ready
from common.utils import get_logger from common.utils import get_logger
@ -24,14 +25,28 @@ def on_applet_host_create(sender, instance, created=False, **kwargs):
return return
# 新建时,清除原来的首选,避免一直调度到一个上面 # 新建时,清除原来的首选,避免一直调度到一个上面
Applet.clear_host_prefer() Applet.clear_host_prefer()
applets = Applet.objects.all() applets = Applet.objects.all()
instance.applets.set(applets) instance.applets.set(applets)
applet_host_change_pub_sub.publish(True) applet_host_change_pub_sub.publish(True)
@receiver(post_save, sender=AppletHost)
@on_transaction_commit
def on_applet_host_update_or_create(sender, instance, created=False, **kwargs):
if instance.auto_create_accounts: if instance.auto_create_accounts:
applet_host_generate_accounts.delay(instance.id) applet_host_generate_accounts.delay(instance.id)
# 使用同名账号的,直接给他打开登录那项吧
if instance.using_same_account:
alias = AliasAccount.USER.value
same_account, __ = VirtualAccount.objects.get_or_create(
alias=alias, defaults={'alias': alias, 'secret_from_login': True}
)
if same_account.secret_from_login:
return
same_account.secret_from_login = True
same_account.save(update_fields=['secret_from_login'])
@receiver(post_save, sender=User) @receiver(post_save, sender=User)
def on_user_create_create_account(sender, instance: User, created=False, **kwargs): def on_user_create_create_account(sender, instance: User, created=False, **kwargs):