mirror of https://github.com/jumpserver/jumpserver
Merge pull request #11111 from jumpserver/pr@dev@perf_applet_host_account_create
perf: 修改应用发布机账号创建pull/11113/head
commit
58124af1ce
|
@ -6,7 +6,10 @@ from django.db import migrations
|
||||||
def migrate_platforms_sftp_protocol(apps, schema_editor):
|
def migrate_platforms_sftp_protocol(apps, schema_editor):
|
||||||
platform_protocol_cls = apps.get_model('assets', 'PlatformProtocol')
|
platform_protocol_cls = apps.get_model('assets', 'PlatformProtocol')
|
||||||
platform_cls = apps.get_model('assets', 'Platform')
|
platform_cls = apps.get_model('assets', 'Platform')
|
||||||
ssh_protocols = platform_protocol_cls.objects.filter(name='ssh', setting__sftp_enabled=True)
|
ssh_protocols = platform_protocol_cls.objects \
|
||||||
|
.filter(name='ssh', setting__sftp_enabled=True) \
|
||||||
|
.exclude(name__in=('Gateway', 'RemoteAppHost')) \
|
||||||
|
.filter(type='linux')
|
||||||
platforms_has_sftp = platform_cls.objects.filter(protocols__name='sftp')
|
platforms_has_sftp = platform_cls.objects.filter(protocols__name='sftp')
|
||||||
|
|
||||||
new_protocols = []
|
new_protocols = []
|
||||||
|
|
|
@ -86,7 +86,6 @@ TERMINAL_TELNET_REGEX = CONFIG.TERMINAL_TELNET_REGEX
|
||||||
|
|
||||||
# 默认图形化分辨率
|
# 默认图形化分辨率
|
||||||
TERMINAL_GRAPHICAL_RESOLUTION = CONFIG.TERMINAL_GRAPHICAL_RESOLUTION
|
TERMINAL_GRAPHICAL_RESOLUTION = CONFIG.TERMINAL_GRAPHICAL_RESOLUTION
|
||||||
|
|
||||||
# Asset user auth external backend, default AuthBook backend
|
# Asset user auth external backend, default AuthBook backend
|
||||||
BACKEND_ASSET_USER_AUTH_VAULT = False
|
BACKEND_ASSET_USER_AUTH_VAULT = False
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:bd82a00953513f7ddd38f6f1d45f770e3a02d1c4a2467bfd791218c10c8d717c
|
oid sha256:538beabe7c224b203bbc0ebaf191509a8f407f6b3e8194038fc203bde10d6d5a
|
||||||
size 148960
|
size 150250
|
||||||
|
|
|
@ -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-07-27 11:11+0800\n"
|
"POT-Creation-Date: 2023-07-28 10:57+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"
|
||||||
|
@ -290,7 +290,7 @@ msgstr "アカウントバックアップ計画"
|
||||||
#: assets/models/automations/base.py:115 audits/models.py:60
|
#: assets/models/automations/base.py:115 audits/models.py:60
|
||||||
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:194
|
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:194
|
||||||
#: 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:137
|
#: perms/models/asset_permission.py:72 terminal/models/applet/host.py:139
|
||||||
#: 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
|
||||||
|
@ -316,7 +316,7 @@ msgid "Trigger mode"
|
||||||
msgstr "トリガーモード"
|
msgstr "トリガーモード"
|
||||||
|
|
||||||
#: accounts/models/automations/backup_account.py:97 audits/models.py:194
|
#: accounts/models/automations/backup_account.py:97 audits/models.py:194
|
||||||
#: terminal/models/session/sharing.py:117 xpack/plugins/cloud/models.py:168
|
#: terminal/models/session/sharing.py:121 xpack/plugins/cloud/models.py:168
|
||||||
msgid "Reason"
|
msgid "Reason"
|
||||||
msgstr "理由"
|
msgstr "理由"
|
||||||
|
|
||||||
|
@ -413,7 +413,7 @@ msgstr "開始日"
|
||||||
#: accounts/models/automations/change_secret.py:91
|
#: accounts/models/automations/change_secret.py:91
|
||||||
#: 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:195
|
#: ops/models/celery.py:64 ops/models/job.py:195
|
||||||
#: terminal/models/applet/host.py:138
|
#: terminal/models/applet/host.py:140
|
||||||
msgid "Date finished"
|
msgid "Date finished"
|
||||||
msgstr "終了日"
|
msgstr "終了日"
|
||||||
|
|
||||||
|
@ -748,7 +748,7 @@ msgstr "自動タスク実行履歴"
|
||||||
#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53
|
#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53
|
||||||
#: audits/models.py:59 audits/signal_handlers/activity_log.py:33
|
#: audits/models.py:59 audits/signal_handlers/activity_log.py:33
|
||||||
#: common/const/choices.py:18 ops/const.py:56 ops/serializers/celery.py:40
|
#: common/const/choices.py:18 ops/const.py:56 ops/serializers/celery.py:40
|
||||||
#: terminal/const.py:76 terminal/models/session/sharing.py:113
|
#: terminal/const.py:76 terminal/models/session/sharing.py:117
|
||||||
#: tickets/views/approve.py:115
|
#: tickets/views/approve.py:115
|
||||||
msgid "Success"
|
msgid "Success"
|
||||||
msgstr "成功"
|
msgstr "成功"
|
||||||
|
@ -1083,7 +1083,7 @@ msgstr "無効"
|
||||||
msgid "Basic"
|
msgid "Basic"
|
||||||
msgstr "基本"
|
msgstr "基本"
|
||||||
|
|
||||||
#: assets/const/base.py:35 assets/const/protocol.py:193
|
#: assets/const/base.py:35 assets/const/protocol.py:201
|
||||||
#: assets/models/asset/web.py:13
|
#: assets/models/asset/web.py:13
|
||||||
msgid "Script"
|
msgid "Script"
|
||||||
msgstr "脚本"
|
msgstr "脚本"
|
||||||
|
@ -1188,28 +1188,36 @@ msgstr "AD ドメイン"
|
||||||
msgid "Use SSL"
|
msgid "Use SSL"
|
||||||
msgstr "SSLの使用"
|
msgstr "SSLの使用"
|
||||||
|
|
||||||
#: assets/const/protocol.py:149
|
#: assets/const/protocol.py:127
|
||||||
|
msgid "SYSDBA"
|
||||||
|
msgstr "SYSDBA"
|
||||||
|
|
||||||
|
#: assets/const/protocol.py:128
|
||||||
|
msgid "Connect as SYSDBA"
|
||||||
|
msgstr "SYSDBA として接続"
|
||||||
|
|
||||||
|
#: assets/const/protocol.py:157
|
||||||
msgid "Auth username"
|
msgid "Auth username"
|
||||||
msgstr "ユーザー名で認証する"
|
msgstr "ユーザー名で認証する"
|
||||||
|
|
||||||
#: assets/const/protocol.py:170 assets/models/asset/web.py:9
|
#: assets/const/protocol.py:178 assets/models/asset/web.py:9
|
||||||
#: assets/serializers/asset/info/spec.py:16
|
#: assets/serializers/asset/info/spec.py:16
|
||||||
msgid "Autofill"
|
msgid "Autofill"
|
||||||
msgstr "自動充填"
|
msgstr "自動充填"
|
||||||
|
|
||||||
#: assets/const/protocol.py:178 assets/models/asset/web.py:10
|
#: assets/const/protocol.py:186 assets/models/asset/web.py:10
|
||||||
msgid "Username selector"
|
msgid "Username selector"
|
||||||
msgstr "ユーザー名ピッカー"
|
msgstr "ユーザー名ピッカー"
|
||||||
|
|
||||||
#: assets/const/protocol.py:183 assets/models/asset/web.py:11
|
#: assets/const/protocol.py:191 assets/models/asset/web.py:11
|
||||||
msgid "Password selector"
|
msgid "Password selector"
|
||||||
msgstr "パスワードセレクター"
|
msgstr "パスワードセレクター"
|
||||||
|
|
||||||
#: assets/const/protocol.py:188 assets/models/asset/web.py:12
|
#: assets/const/protocol.py:196 assets/models/asset/web.py:12
|
||||||
msgid "Submit selector"
|
msgid "Submit selector"
|
||||||
msgstr "ボタンセレクターを確認する"
|
msgstr "ボタンセレクターを確認する"
|
||||||
|
|
||||||
#: assets/const/protocol.py:211
|
#: assets/const/protocol.py:219
|
||||||
msgid "API mode"
|
msgid "API mode"
|
||||||
msgstr "APIモード"
|
msgstr "APIモード"
|
||||||
|
|
||||||
|
@ -1238,7 +1246,7 @@ msgstr "SSHパブリックキー"
|
||||||
#: common/db/models.py:36 ops/models/adhoc.py:26 ops/models/job.py:113
|
#: 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:26 rbac/models/role.py:37 settings/models.py:37
|
||||||
#: terminal/models/applet/applet.py:44 terminal/models/applet/applet.py:248
|
#: terminal/models/applet/applet.py:44 terminal/models/applet/applet.py:248
|
||||||
#: terminal/models/applet/host.py:139 terminal/models/component/endpoint.py:24
|
#: terminal/models/applet/host.py:141 terminal/models/component/endpoint.py:24
|
||||||
#: terminal/models/component/endpoint.py:102
|
#: terminal/models/component/endpoint.py:102
|
||||||
#: terminal/models/session/session.py:46 tickets/models/comment.py:32
|
#: terminal/models/session/session.py:46 tickets/models/comment.py:32
|
||||||
#: tickets/models/ticket/general.py:297 users/models/user.py:792
|
#: tickets/models/ticket/general.py:297 users/models/user.py:792
|
||||||
|
@ -1431,9 +1439,9 @@ msgstr "アセットの自動化タスク"
|
||||||
|
|
||||||
#: assets/models/automations/base.py:113 audits/models.py:199
|
#: assets/models/automations/base.py:113 audits/models.py:199
|
||||||
#: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:186
|
#: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:186
|
||||||
#: terminal/models/applet/applet.py:247 terminal/models/applet/host.py:136
|
#: terminal/models/applet/applet.py:247 terminal/models/applet/host.py:138
|
||||||
#: 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:107 tickets/models/ticket/general.py:283
|
#: terminal/serializers/applet_host.py:115 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:164
|
#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:164
|
||||||
#: xpack/plugins/cloud/models.py:216
|
#: xpack/plugins/cloud/models.py:216
|
||||||
|
@ -2022,7 +2030,7 @@ msgid "Change password"
|
||||||
msgstr "パスワードを変更する"
|
msgstr "パスワードを変更する"
|
||||||
|
|
||||||
#: audits/const.py:35 settings/serializers/terminal.py:6
|
#: audits/const.py:35 settings/serializers/terminal.py:6
|
||||||
#: terminal/models/applet/host.py:25 terminal/models/component/terminal.py:163
|
#: 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:46 terminal/serializers/session.py:55
|
||||||
msgid "Terminal"
|
msgid "Terminal"
|
||||||
msgstr "ターミナル"
|
msgstr "ターミナル"
|
||||||
|
@ -2039,7 +2047,7 @@ msgstr "セッションログ"
|
||||||
msgid "Login log"
|
msgid "Login log"
|
||||||
msgstr "ログインログ"
|
msgstr "ログインログ"
|
||||||
|
|
||||||
#: audits/const.py:43 terminal/models/applet/host.py:140
|
#: audits/const.py:43 terminal/models/applet/host.py:142
|
||||||
#: terminal/models/component/task.py:24
|
#: terminal/models/component/task.py:24
|
||||||
msgid "Task"
|
msgid "Task"
|
||||||
msgstr "タスク"
|
msgstr "タスク"
|
||||||
|
@ -2061,7 +2069,7 @@ msgid "Job audit log"
|
||||||
msgstr "ジョブ監査ログ"
|
msgstr "ジョブ監査ログ"
|
||||||
|
|
||||||
#: audits/models.py:51 audits/models.py:95 audits/models.py:166
|
#: audits/models.py:51 audits/models.py:95 audits/models.py:166
|
||||||
#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:105
|
#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:109
|
||||||
msgid "Remote addr"
|
msgid "Remote addr"
|
||||||
msgstr "リモートaddr"
|
msgstr "リモートaddr"
|
||||||
|
|
||||||
|
@ -2079,7 +2087,7 @@ msgstr "書類"
|
||||||
|
|
||||||
#: audits/models.py:62 terminal/backends/command/models.py:21
|
#: audits/models.py:62 terminal/backends/command/models.py:21
|
||||||
#: terminal/models/session/replay.py:9 terminal/models/session/sharing.py:19
|
#: terminal/models/session/replay.py:9 terminal/models/session/sharing.py:19
|
||||||
#: terminal/models/session/sharing.py:87
|
#: terminal/models/session/sharing.py:91
|
||||||
#: terminal/templates/terminal/_msg_command_alert.html:10
|
#: terminal/templates/terminal/_msg_command_alert.html:10
|
||||||
#: terminal/templates/terminal/_msg_command_warning.html:17
|
#: terminal/templates/terminal/_msg_command_warning.html:17
|
||||||
#: tickets/models/ticket/command_confirm.py:15
|
#: tickets/models/ticket/command_confirm.py:15
|
||||||
|
@ -2250,19 +2258,19 @@ msgstr ""
|
||||||
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:323
|
#: authentication/api/connection_token.py:320
|
||||||
msgid "Account not found"
|
msgid "Account not found"
|
||||||
msgstr "アカウントが見つかりません"
|
msgstr "アカウントが見つかりません"
|
||||||
|
|
||||||
#: authentication/api/connection_token.py:326
|
#: authentication/api/connection_token.py:323
|
||||||
msgid "Permission expired"
|
msgid "Permission expired"
|
||||||
msgstr "承認の有効期限が切れています"
|
msgstr "承認の有効期限が切れています"
|
||||||
|
|
||||||
#: authentication/api/connection_token.py:340
|
#: authentication/api/connection_token.py:337
|
||||||
msgid "ACL action is reject: {}({})"
|
msgid "ACL action is reject: {}({})"
|
||||||
msgstr "ACL アクションは拒否です: {}({})"
|
msgstr "ACL アクションは拒否です: {}({})"
|
||||||
|
|
||||||
#: authentication/api/connection_token.py:344
|
#: authentication/api/connection_token.py:341
|
||||||
msgid "ACL action is review"
|
msgid "ACL action is review"
|
||||||
msgstr "ACL アクションはレビューです"
|
msgstr "ACL アクションはレビューです"
|
||||||
|
|
||||||
|
@ -2718,11 +2726,11 @@ msgstr "ユーザーなしまたは期限切れのユーザー"
|
||||||
msgid "No asset or inactive asset"
|
msgid "No asset or inactive asset"
|
||||||
msgstr "アセットがないか、有効化されていないアセット"
|
msgstr "アセットがないか、有効化されていないアセット"
|
||||||
|
|
||||||
#: authentication/models/connection_token.py:269
|
#: authentication/models/connection_token.py:280
|
||||||
msgid "Can view super connection token secret"
|
msgid "Can view super connection token secret"
|
||||||
msgstr "スーパー接続トークンのシークレットを表示できます"
|
msgstr "スーパー接続トークンのシークレットを表示できます"
|
||||||
|
|
||||||
#: authentication/models/connection_token.py:271
|
#: authentication/models/connection_token.py:282
|
||||||
msgid "Super connection token"
|
msgid "Super connection token"
|
||||||
msgstr "スーパー接続トークン"
|
msgstr "スーパー接続トークン"
|
||||||
|
|
||||||
|
@ -2940,7 +2948,7 @@ msgid "request new one"
|
||||||
msgstr "新しいものを要求する"
|
msgstr "新しいものを要求する"
|
||||||
|
|
||||||
#: authentication/templates/authentication/_msg_reset_password_code.html:12
|
#: authentication/templates/authentication/_msg_reset_password_code.html:12
|
||||||
#: terminal/models/session/sharing.py:26 terminal/models/session/sharing.py:89
|
#: terminal/models/session/sharing.py:26 terminal/models/session/sharing.py:93
|
||||||
#: terminal/templates/terminal/_msg_session_sharing.html:12
|
#: terminal/templates/terminal/_msg_session_sharing.html:12
|
||||||
#: users/forms/profile.py:107 users/templates/users/forgot_password.html:66
|
#: users/forms/profile.py:107 users/templates/users/forgot_password.html:66
|
||||||
msgid "Verify code"
|
msgid "Verify code"
|
||||||
|
@ -3730,7 +3738,7 @@ msgstr "タスクモニターを表示できます"
|
||||||
msgid "Kwargs"
|
msgid "Kwargs"
|
||||||
msgstr "クワーグ"
|
msgstr "クワーグ"
|
||||||
|
|
||||||
#: ops/models/celery.py:61 terminal/models/session/sharing.py:120
|
#: ops/models/celery.py:61 terminal/models/session/sharing.py:124
|
||||||
#: tickets/const.py:25
|
#: tickets/const.py:25
|
||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr "終了"
|
msgstr "終了"
|
||||||
|
@ -4245,7 +4253,7 @@ msgid "My assets"
|
||||||
msgstr "私の資産"
|
msgstr "私の資産"
|
||||||
|
|
||||||
#: rbac/tree.py:56 terminal/models/applet/applet.py:51
|
#: rbac/tree.py:56 terminal/models/applet/applet.py:51
|
||||||
#: terminal/models/applet/applet.py:244 terminal/models/applet/host.py:28
|
#: terminal/models/applet/applet.py:244 terminal/models/applet/host.py:29
|
||||||
#: terminal/serializers/applet.py:15
|
#: terminal/serializers/applet.py:15
|
||||||
msgid "Applet"
|
msgid "Applet"
|
||||||
msgstr "リモートアプリケーション"
|
msgstr "リモートアプリケーション"
|
||||||
|
@ -5849,28 +5857,36 @@ msgstr "カスタムプラットフォームのみをサポート"
|
||||||
msgid "Missing type in platform.yml"
|
msgid "Missing type in platform.yml"
|
||||||
msgstr "platform.ymlにタイプがありません"
|
msgstr "platform.ymlにタイプがありません"
|
||||||
|
|
||||||
#: terminal/models/applet/applet.py:246 terminal/models/applet/host.py:34
|
#: terminal/models/applet/applet.py:246 terminal/models/applet/host.py:35
|
||||||
#: terminal/models/applet/host.py:134
|
#: terminal/models/applet/host.py:136
|
||||||
msgid "Hosting"
|
msgid "Hosting"
|
||||||
msgstr "ホスト マシン"
|
msgstr "ホスト マシン"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:19 terminal/serializers/applet_host.py:57
|
#: terminal/models/applet/host.py:18 terminal/serializers/applet_host.py:57
|
||||||
msgid "Deploy options"
|
msgid "Deploy options"
|
||||||
msgstr "展開パラメーター"
|
msgstr "展開パラメーター"
|
||||||
|
|
||||||
|
#: terminal/models/applet/host.py:19
|
||||||
|
msgid "Auto create accounts"
|
||||||
|
msgstr "アカウントの自動作成"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:20
|
#: terminal/models/applet/host.py:20
|
||||||
|
msgid "Accounts create amount"
|
||||||
|
msgstr "作成するアカウント数"
|
||||||
|
|
||||||
|
#: terminal/models/applet/host.py:21
|
||||||
msgid "Inited"
|
msgid "Inited"
|
||||||
msgstr "初期化された"
|
msgstr "初期化された"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:21
|
|
||||||
msgid "Date inited"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:22
|
#: terminal/models/applet/host.py:22
|
||||||
|
msgid "Date inited"
|
||||||
|
msgstr "初期化日"
|
||||||
|
|
||||||
|
#: terminal/models/applet/host.py:23
|
||||||
msgid "Date synced"
|
msgid "Date synced"
|
||||||
msgstr "同期日"
|
msgstr "同期日"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:135
|
#: terminal/models/applet/host.py:137
|
||||||
msgid "Initial"
|
msgid "Initial"
|
||||||
msgstr "初期化"
|
msgstr "初期化"
|
||||||
|
|
||||||
|
@ -6000,7 +6016,7 @@ msgstr "セッション再生をダウンロードできます"
|
||||||
msgid "Account id"
|
msgid "Account id"
|
||||||
msgstr "アカウント ID"
|
msgstr "アカウント ID"
|
||||||
|
|
||||||
#: terminal/models/session/session.py:36 terminal/models/session/sharing.py:110
|
#: terminal/models/session/session.py:36 terminal/models/session/sharing.py:114
|
||||||
msgid "Login from"
|
msgid "Login from"
|
||||||
msgstr "ログイン元"
|
msgstr "ログイン元"
|
||||||
|
|
||||||
|
@ -6045,7 +6061,7 @@ msgstr "アクションパーミッション"
|
||||||
msgid "Origin"
|
msgid "Origin"
|
||||||
msgstr "ソース"
|
msgstr "ソース"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:41 terminal/models/session/sharing.py:92
|
#: terminal/models/session/sharing.py:41 terminal/models/session/sharing.py:96
|
||||||
#: terminal/notifications.py:261
|
#: terminal/notifications.py:261
|
||||||
msgid "Session sharing"
|
msgid "Session sharing"
|
||||||
msgstr "セッション共有"
|
msgstr "セッション共有"
|
||||||
|
@ -6054,39 +6070,39 @@ msgstr "セッション共有"
|
||||||
msgid "Can add super session sharing"
|
msgid "Can add super session sharing"
|
||||||
msgstr "スーパーセッション共有を追加できます"
|
msgstr "スーパーセッション共有を追加できます"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:75
|
#: terminal/models/session/sharing.py:79
|
||||||
msgid "Link not active"
|
msgid "Link not active"
|
||||||
msgstr "リンクがアクティブでない"
|
msgstr "リンクがアクティブでない"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:77
|
#: terminal/models/session/sharing.py:81
|
||||||
msgid "Link expired"
|
msgid "Link expired"
|
||||||
msgstr "リンク期限切れ"
|
msgstr "リンク期限切れ"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:79
|
#: terminal/models/session/sharing.py:83
|
||||||
msgid "User not allowed to join"
|
msgid "User not allowed to join"
|
||||||
msgstr "ユーザーはセッションに参加できません"
|
msgstr "ユーザーはセッションに参加できません"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:96 terminal/serializers/sharing.py:71
|
#: terminal/models/session/sharing.py:100 terminal/serializers/sharing.py:71
|
||||||
msgid "Joiner"
|
msgid "Joiner"
|
||||||
msgstr "ジョイナー"
|
msgstr "ジョイナー"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:99
|
#: terminal/models/session/sharing.py:103
|
||||||
msgid "Date joined"
|
msgid "Date joined"
|
||||||
msgstr "参加日"
|
msgstr "参加日"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:102
|
#: terminal/models/session/sharing.py:106
|
||||||
msgid "Date left"
|
msgid "Date left"
|
||||||
msgstr "日付が残っています"
|
msgstr "日付が残っています"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:125
|
#: terminal/models/session/sharing.py:129
|
||||||
msgid "Session join record"
|
msgid "Session join record"
|
||||||
msgstr "セッション参加記録"
|
msgstr "セッション参加記録"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:141
|
#: terminal/models/session/sharing.py:145
|
||||||
msgid "Invalid verification code"
|
msgid "Invalid verification code"
|
||||||
msgstr "検証コードが無効"
|
msgstr "検証コードが無効"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:148
|
#: terminal/models/session/sharing.py:152
|
||||||
msgid "You have already joined this session"
|
msgid "You have already joined this session"
|
||||||
msgstr "すでにこのセッションに参加しています"
|
msgstr "すでにこのセッションに参加しています"
|
||||||
|
|
||||||
|
@ -6190,6 +6206,19 @@ msgstr "RDS 远程应用注销时间限制"
|
||||||
msgid "Load status"
|
msgid "Load status"
|
||||||
msgstr "ロードステータス"
|
msgstr "ロードステータス"
|
||||||
|
|
||||||
|
#: terminal/serializers/applet_host.py:72
|
||||||
|
msgid ""
|
||||||
|
"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 "
|
||||||
|
"has a private account, the other is public, when the application does not "
|
||||||
|
"support multiple open and the special has been used, the public account will "
|
||||||
|
"be used to connect"
|
||||||
|
msgstr "これらのアカウントは、公開されたアプリケーションに接続するために使用されます。アカウントは現在、2つのタイプに分類されています。1つは、各アカウントに専用のアカウントで、各ユーザーにはプライベートアカウントがあります。もう1つは公開されています。アプリケーションが複数のオープンをサポートしていない場合、および特別なものが使用されている場合、公開アカウントが使用されます。"
|
||||||
|
|
||||||
|
#: terminal/serializers/applet_host.py:77
|
||||||
|
msgid "The number of public accounts created automatically"
|
||||||
|
msgstr "自動的に作成される公開アカウントの数"
|
||||||
|
|
||||||
#: terminal/serializers/command.py:19
|
#: terminal/serializers/command.py:19
|
||||||
msgid "Session ID"
|
msgid "Session ID"
|
||||||
msgstr "セッションID"
|
msgstr "セッションID"
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:859c812ee67cc9b5f79da96d5e72445a60bdd19af7db4a8b71196a065adefeab
|
oid sha256:2cf5749656bd07818b67191c2f665246e903d74e76c49ebcdec6004322f75314
|
||||||
size 121844
|
size 122767
|
||||||
|
|
|
@ -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-07-27 11:11+0800\n"
|
"POT-Creation-Date: 2023-07-28 10:57+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"
|
||||||
|
@ -289,7 +289,7 @@ msgstr "账号备份计划"
|
||||||
#: assets/models/automations/base.py:115 audits/models.py:60
|
#: assets/models/automations/base.py:115 audits/models.py:60
|
||||||
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:194
|
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:194
|
||||||
#: 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:137
|
#: perms/models/asset_permission.py:72 terminal/models/applet/host.py:139
|
||||||
#: 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
|
||||||
|
@ -315,7 +315,7 @@ msgid "Trigger mode"
|
||||||
msgstr "触发模式"
|
msgstr "触发模式"
|
||||||
|
|
||||||
#: accounts/models/automations/backup_account.py:97 audits/models.py:194
|
#: accounts/models/automations/backup_account.py:97 audits/models.py:194
|
||||||
#: terminal/models/session/sharing.py:117 xpack/plugins/cloud/models.py:168
|
#: terminal/models/session/sharing.py:121 xpack/plugins/cloud/models.py:168
|
||||||
msgid "Reason"
|
msgid "Reason"
|
||||||
msgstr "原因"
|
msgstr "原因"
|
||||||
|
|
||||||
|
@ -412,7 +412,7 @@ msgstr "开始日期"
|
||||||
#: accounts/models/automations/change_secret.py:91
|
#: accounts/models/automations/change_secret.py:91
|
||||||
#: 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:195
|
#: ops/models/celery.py:64 ops/models/job.py:195
|
||||||
#: terminal/models/applet/host.py:138
|
#: terminal/models/applet/host.py:140
|
||||||
msgid "Date finished"
|
msgid "Date finished"
|
||||||
msgstr "结束日期"
|
msgstr "结束日期"
|
||||||
|
|
||||||
|
@ -744,7 +744,7 @@ msgstr "自动化任务执行历史"
|
||||||
#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53
|
#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53
|
||||||
#: audits/models.py:59 audits/signal_handlers/activity_log.py:33
|
#: audits/models.py:59 audits/signal_handlers/activity_log.py:33
|
||||||
#: common/const/choices.py:18 ops/const.py:56 ops/serializers/celery.py:40
|
#: common/const/choices.py:18 ops/const.py:56 ops/serializers/celery.py:40
|
||||||
#: terminal/const.py:76 terminal/models/session/sharing.py:113
|
#: terminal/const.py:76 terminal/models/session/sharing.py:117
|
||||||
#: tickets/views/approve.py:115
|
#: tickets/views/approve.py:115
|
||||||
msgid "Success"
|
msgid "Success"
|
||||||
msgstr "成功"
|
msgstr "成功"
|
||||||
|
@ -1076,7 +1076,7 @@ msgstr "禁用"
|
||||||
msgid "Basic"
|
msgid "Basic"
|
||||||
msgstr "基本"
|
msgstr "基本"
|
||||||
|
|
||||||
#: assets/const/base.py:35 assets/const/protocol.py:193
|
#: assets/const/base.py:35 assets/const/protocol.py:201
|
||||||
#: assets/models/asset/web.py:13
|
#: assets/models/asset/web.py:13
|
||||||
msgid "Script"
|
msgid "Script"
|
||||||
msgstr "脚本"
|
msgstr "脚本"
|
||||||
|
@ -1181,28 +1181,36 @@ msgstr "AD 网域"
|
||||||
msgid "Use SSL"
|
msgid "Use SSL"
|
||||||
msgstr "使用 SSL"
|
msgstr "使用 SSL"
|
||||||
|
|
||||||
#: assets/const/protocol.py:149
|
#: assets/const/protocol.py:127
|
||||||
|
msgid "SYSDBA"
|
||||||
|
msgstr "SYSDBA"
|
||||||
|
|
||||||
|
#: assets/const/protocol.py:128
|
||||||
|
msgid "Connect as SYSDBA"
|
||||||
|
msgstr "以 SYSDBA 角色连接"
|
||||||
|
|
||||||
|
#: assets/const/protocol.py:157
|
||||||
msgid "Auth username"
|
msgid "Auth username"
|
||||||
msgstr "使用用户名认证"
|
msgstr "使用用户名认证"
|
||||||
|
|
||||||
#: assets/const/protocol.py:170 assets/models/asset/web.py:9
|
#: assets/const/protocol.py:178 assets/models/asset/web.py:9
|
||||||
#: assets/serializers/asset/info/spec.py:16
|
#: assets/serializers/asset/info/spec.py:16
|
||||||
msgid "Autofill"
|
msgid "Autofill"
|
||||||
msgstr "自动代填"
|
msgstr "自动代填"
|
||||||
|
|
||||||
#: assets/const/protocol.py:178 assets/models/asset/web.py:10
|
#: assets/const/protocol.py:186 assets/models/asset/web.py:10
|
||||||
msgid "Username selector"
|
msgid "Username selector"
|
||||||
msgstr "用户名选择器"
|
msgstr "用户名选择器"
|
||||||
|
|
||||||
#: assets/const/protocol.py:183 assets/models/asset/web.py:11
|
#: assets/const/protocol.py:191 assets/models/asset/web.py:11
|
||||||
msgid "Password selector"
|
msgid "Password selector"
|
||||||
msgstr "密码选择器"
|
msgstr "密码选择器"
|
||||||
|
|
||||||
#: assets/const/protocol.py:188 assets/models/asset/web.py:12
|
#: assets/const/protocol.py:196 assets/models/asset/web.py:12
|
||||||
msgid "Submit selector"
|
msgid "Submit selector"
|
||||||
msgstr "确认按钮选择器"
|
msgstr "确认按钮选择器"
|
||||||
|
|
||||||
#: assets/const/protocol.py:211
|
#: assets/const/protocol.py:219
|
||||||
msgid "API mode"
|
msgid "API mode"
|
||||||
msgstr "API 模式"
|
msgstr "API 模式"
|
||||||
|
|
||||||
|
@ -1231,7 +1239,7 @@ msgstr "SSH公钥"
|
||||||
#: common/db/models.py:36 ops/models/adhoc.py:26 ops/models/job.py:113
|
#: 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:26 rbac/models/role.py:37 settings/models.py:37
|
||||||
#: terminal/models/applet/applet.py:44 terminal/models/applet/applet.py:248
|
#: terminal/models/applet/applet.py:44 terminal/models/applet/applet.py:248
|
||||||
#: terminal/models/applet/host.py:139 terminal/models/component/endpoint.py:24
|
#: terminal/models/applet/host.py:141 terminal/models/component/endpoint.py:24
|
||||||
#: terminal/models/component/endpoint.py:102
|
#: terminal/models/component/endpoint.py:102
|
||||||
#: terminal/models/session/session.py:46 tickets/models/comment.py:32
|
#: terminal/models/session/session.py:46 tickets/models/comment.py:32
|
||||||
#: tickets/models/ticket/general.py:297 users/models/user.py:792
|
#: tickets/models/ticket/general.py:297 users/models/user.py:792
|
||||||
|
@ -1424,9 +1432,9 @@ msgstr "资产自动化任务"
|
||||||
|
|
||||||
#: assets/models/automations/base.py:113 audits/models.py:199
|
#: assets/models/automations/base.py:113 audits/models.py:199
|
||||||
#: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:186
|
#: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:186
|
||||||
#: terminal/models/applet/applet.py:247 terminal/models/applet/host.py:136
|
#: terminal/models/applet/applet.py:247 terminal/models/applet/host.py:138
|
||||||
#: 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:107 tickets/models/ticket/general.py:283
|
#: terminal/serializers/applet_host.py:115 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:164
|
#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:164
|
||||||
#: xpack/plugins/cloud/models.py:216
|
#: xpack/plugins/cloud/models.py:216
|
||||||
|
@ -2006,7 +2014,7 @@ msgid "Change password"
|
||||||
msgstr "改密"
|
msgstr "改密"
|
||||||
|
|
||||||
#: audits/const.py:35 settings/serializers/terminal.py:6
|
#: audits/const.py:35 settings/serializers/terminal.py:6
|
||||||
#: terminal/models/applet/host.py:25 terminal/models/component/terminal.py:163
|
#: 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:46 terminal/serializers/session.py:55
|
||||||
msgid "Terminal"
|
msgid "Terminal"
|
||||||
msgstr "终端"
|
msgstr "终端"
|
||||||
|
@ -2023,7 +2031,7 @@ msgstr "会话日志"
|
||||||
msgid "Login log"
|
msgid "Login log"
|
||||||
msgstr "登录日志"
|
msgstr "登录日志"
|
||||||
|
|
||||||
#: audits/const.py:43 terminal/models/applet/host.py:140
|
#: audits/const.py:43 terminal/models/applet/host.py:142
|
||||||
#: terminal/models/component/task.py:24
|
#: terminal/models/component/task.py:24
|
||||||
msgid "Task"
|
msgid "Task"
|
||||||
msgstr "任务"
|
msgstr "任务"
|
||||||
|
@ -2045,7 +2053,7 @@ msgid "Job audit log"
|
||||||
msgstr "作业审计日志"
|
msgstr "作业审计日志"
|
||||||
|
|
||||||
#: audits/models.py:51 audits/models.py:95 audits/models.py:166
|
#: audits/models.py:51 audits/models.py:95 audits/models.py:166
|
||||||
#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:105
|
#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:109
|
||||||
msgid "Remote addr"
|
msgid "Remote addr"
|
||||||
msgstr "远端地址"
|
msgstr "远端地址"
|
||||||
|
|
||||||
|
@ -2063,7 +2071,7 @@ msgstr "文件"
|
||||||
|
|
||||||
#: audits/models.py:62 terminal/backends/command/models.py:21
|
#: audits/models.py:62 terminal/backends/command/models.py:21
|
||||||
#: terminal/models/session/replay.py:9 terminal/models/session/sharing.py:19
|
#: terminal/models/session/replay.py:9 terminal/models/session/sharing.py:19
|
||||||
#: terminal/models/session/sharing.py:87
|
#: terminal/models/session/sharing.py:91
|
||||||
#: terminal/templates/terminal/_msg_command_alert.html:10
|
#: terminal/templates/terminal/_msg_command_alert.html:10
|
||||||
#: terminal/templates/terminal/_msg_command_warning.html:17
|
#: terminal/templates/terminal/_msg_command_warning.html:17
|
||||||
#: tickets/models/ticket/command_confirm.py:15
|
#: tickets/models/ticket/command_confirm.py:15
|
||||||
|
@ -2232,19 +2240,19 @@ msgstr "不允许使用可重复使用的连接令牌,未启用全局设置"
|
||||||
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:323
|
#: authentication/api/connection_token.py:320
|
||||||
msgid "Account not found"
|
msgid "Account not found"
|
||||||
msgstr "账号未找到"
|
msgstr "账号未找到"
|
||||||
|
|
||||||
#: authentication/api/connection_token.py:326
|
#: authentication/api/connection_token.py:323
|
||||||
msgid "Permission expired"
|
msgid "Permission expired"
|
||||||
msgstr "授权已过期"
|
msgstr "授权已过期"
|
||||||
|
|
||||||
#: authentication/api/connection_token.py:340
|
#: authentication/api/connection_token.py:337
|
||||||
msgid "ACL action is reject: {}({})"
|
msgid "ACL action is reject: {}({})"
|
||||||
msgstr "ACL 动作是拒绝: {}({})"
|
msgstr "ACL 动作是拒绝: {}({})"
|
||||||
|
|
||||||
#: authentication/api/connection_token.py:344
|
#: authentication/api/connection_token.py:341
|
||||||
msgid "ACL action is review"
|
msgid "ACL action is review"
|
||||||
msgstr "ACL 动作是复核"
|
msgstr "ACL 动作是复核"
|
||||||
|
|
||||||
|
@ -2686,11 +2694,11 @@ msgstr "没有用户或用户失效"
|
||||||
msgid "No asset or inactive asset"
|
msgid "No asset or inactive asset"
|
||||||
msgstr "没有资产或资产未激活"
|
msgstr "没有资产或资产未激活"
|
||||||
|
|
||||||
#: authentication/models/connection_token.py:269
|
#: authentication/models/connection_token.py:280
|
||||||
msgid "Can view super connection token secret"
|
msgid "Can view super connection token secret"
|
||||||
msgstr "可以查看超级连接令牌密文"
|
msgstr "可以查看超级连接令牌密文"
|
||||||
|
|
||||||
#: authentication/models/connection_token.py:271
|
#: authentication/models/connection_token.py:282
|
||||||
msgid "Super connection token"
|
msgid "Super connection token"
|
||||||
msgstr "超级连接令牌"
|
msgstr "超级连接令牌"
|
||||||
|
|
||||||
|
@ -2904,7 +2912,7 @@ msgid "request new one"
|
||||||
msgstr "重新申请"
|
msgstr "重新申请"
|
||||||
|
|
||||||
#: authentication/templates/authentication/_msg_reset_password_code.html:12
|
#: authentication/templates/authentication/_msg_reset_password_code.html:12
|
||||||
#: terminal/models/session/sharing.py:26 terminal/models/session/sharing.py:89
|
#: terminal/models/session/sharing.py:26 terminal/models/session/sharing.py:93
|
||||||
#: terminal/templates/terminal/_msg_session_sharing.html:12
|
#: terminal/templates/terminal/_msg_session_sharing.html:12
|
||||||
#: users/forms/profile.py:107 users/templates/users/forgot_password.html:66
|
#: users/forms/profile.py:107 users/templates/users/forgot_password.html:66
|
||||||
msgid "Verify code"
|
msgid "Verify code"
|
||||||
|
@ -3683,7 +3691,7 @@ msgstr "可以查看任务监控"
|
||||||
msgid "Kwargs"
|
msgid "Kwargs"
|
||||||
msgstr "其它参数"
|
msgstr "其它参数"
|
||||||
|
|
||||||
#: ops/models/celery.py:61 terminal/models/session/sharing.py:120
|
#: ops/models/celery.py:61 terminal/models/session/sharing.py:124
|
||||||
#: tickets/const.py:25
|
#: tickets/const.py:25
|
||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr "结束"
|
msgstr "结束"
|
||||||
|
@ -4196,7 +4204,7 @@ msgid "My assets"
|
||||||
msgstr "我的资产"
|
msgstr "我的资产"
|
||||||
|
|
||||||
#: rbac/tree.py:56 terminal/models/applet/applet.py:51
|
#: rbac/tree.py:56 terminal/models/applet/applet.py:51
|
||||||
#: terminal/models/applet/applet.py:244 terminal/models/applet/host.py:28
|
#: terminal/models/applet/applet.py:244 terminal/models/applet/host.py:29
|
||||||
#: terminal/serializers/applet.py:15
|
#: terminal/serializers/applet.py:15
|
||||||
msgid "Applet"
|
msgid "Applet"
|
||||||
msgstr "远程应用"
|
msgstr "远程应用"
|
||||||
|
@ -5762,28 +5770,36 @@ msgstr "只支持自定义平台"
|
||||||
msgid "Missing type in platform.yml"
|
msgid "Missing type in platform.yml"
|
||||||
msgstr "在 platform.yml 中缺少类型"
|
msgstr "在 platform.yml 中缺少类型"
|
||||||
|
|
||||||
#: terminal/models/applet/applet.py:246 terminal/models/applet/host.py:34
|
#: terminal/models/applet/applet.py:246 terminal/models/applet/host.py:35
|
||||||
#: terminal/models/applet/host.py:134
|
#: terminal/models/applet/host.py:136
|
||||||
msgid "Hosting"
|
msgid "Hosting"
|
||||||
msgstr "宿主机"
|
msgstr "宿主机"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:19 terminal/serializers/applet_host.py:57
|
#: terminal/models/applet/host.py:18 terminal/serializers/applet_host.py:57
|
||||||
msgid "Deploy options"
|
msgid "Deploy options"
|
||||||
msgstr "部署参数"
|
msgstr "部署参数"
|
||||||
|
|
||||||
|
#: terminal/models/applet/host.py:19
|
||||||
|
msgid "Auto create accounts"
|
||||||
|
msgstr "自动创建账号"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:20
|
#: terminal/models/applet/host.py:20
|
||||||
|
msgid "Accounts create amount"
|
||||||
|
msgstr "创建账号数量"
|
||||||
|
|
||||||
|
#: terminal/models/applet/host.py:21
|
||||||
msgid "Inited"
|
msgid "Inited"
|
||||||
msgstr "已初始化"
|
msgstr "已初始化"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:21
|
#: terminal/models/applet/host.py:22
|
||||||
msgid "Date inited"
|
msgid "Date inited"
|
||||||
msgstr "初始化日期"
|
msgstr "初始化日期"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:22
|
#: terminal/models/applet/host.py:23
|
||||||
msgid "Date synced"
|
msgid "Date synced"
|
||||||
msgstr "同步日期"
|
msgstr "同步日期"
|
||||||
|
|
||||||
#: terminal/models/applet/host.py:135
|
#: terminal/models/applet/host.py:137
|
||||||
msgid "Initial"
|
msgid "Initial"
|
||||||
msgstr "初始化"
|
msgstr "初始化"
|
||||||
|
|
||||||
|
@ -5913,7 +5929,7 @@ msgstr "可以下载会话录像"
|
||||||
msgid "Account id"
|
msgid "Account id"
|
||||||
msgstr "账号 ID"
|
msgstr "账号 ID"
|
||||||
|
|
||||||
#: terminal/models/session/session.py:36 terminal/models/session/sharing.py:110
|
#: terminal/models/session/session.py:36 terminal/models/session/sharing.py:114
|
||||||
msgid "Login from"
|
msgid "Login from"
|
||||||
msgstr "登录来源"
|
msgstr "登录来源"
|
||||||
|
|
||||||
|
@ -5958,7 +5974,7 @@ msgstr "操作权限"
|
||||||
msgid "Origin"
|
msgid "Origin"
|
||||||
msgstr "来源"
|
msgstr "来源"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:41 terminal/models/session/sharing.py:92
|
#: terminal/models/session/sharing.py:41 terminal/models/session/sharing.py:96
|
||||||
#: terminal/notifications.py:261
|
#: terminal/notifications.py:261
|
||||||
msgid "Session sharing"
|
msgid "Session sharing"
|
||||||
msgstr "会话分享"
|
msgstr "会话分享"
|
||||||
|
@ -5967,39 +5983,39 @@ msgstr "会话分享"
|
||||||
msgid "Can add super session sharing"
|
msgid "Can add super session sharing"
|
||||||
msgstr "可以创建超级会话分享"
|
msgstr "可以创建超级会话分享"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:75
|
#: terminal/models/session/sharing.py:79
|
||||||
msgid "Link not active"
|
msgid "Link not active"
|
||||||
msgstr "链接失效"
|
msgstr "链接失效"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:77
|
#: terminal/models/session/sharing.py:81
|
||||||
msgid "Link expired"
|
msgid "Link expired"
|
||||||
msgstr "链接过期"
|
msgstr "链接过期"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:79
|
#: terminal/models/session/sharing.py:83
|
||||||
msgid "User not allowed to join"
|
msgid "User not allowed to join"
|
||||||
msgstr "该用户无权加入会话"
|
msgstr "该用户无权加入会话"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:96 terminal/serializers/sharing.py:71
|
#: terminal/models/session/sharing.py:100 terminal/serializers/sharing.py:71
|
||||||
msgid "Joiner"
|
msgid "Joiner"
|
||||||
msgstr "加入者"
|
msgstr "加入者"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:99
|
#: terminal/models/session/sharing.py:103
|
||||||
msgid "Date joined"
|
msgid "Date joined"
|
||||||
msgstr "加入日期"
|
msgstr "加入日期"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:102
|
#: terminal/models/session/sharing.py:106
|
||||||
msgid "Date left"
|
msgid "Date left"
|
||||||
msgstr "结束日期"
|
msgstr "结束日期"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:125
|
#: terminal/models/session/sharing.py:129
|
||||||
msgid "Session join record"
|
msgid "Session join record"
|
||||||
msgstr "会话加入记录"
|
msgstr "会话加入记录"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:141
|
#: terminal/models/session/sharing.py:145
|
||||||
msgid "Invalid verification code"
|
msgid "Invalid verification code"
|
||||||
msgstr "验证码不正确"
|
msgstr "验证码不正确"
|
||||||
|
|
||||||
#: terminal/models/session/sharing.py:148
|
#: terminal/models/session/sharing.py:152
|
||||||
msgid "You have already joined this session"
|
msgid "You have already joined this session"
|
||||||
msgstr "您已经加入过此会话"
|
msgstr "您已经加入过此会话"
|
||||||
|
|
||||||
|
@ -6101,6 +6117,20 @@ msgstr "RDS 远程应用注销时间限制"
|
||||||
msgid "Load status"
|
msgid "Load status"
|
||||||
msgstr "负载状态"
|
msgstr "负载状态"
|
||||||
|
|
||||||
|
#: terminal/serializers/applet_host.py:72
|
||||||
|
msgid ""
|
||||||
|
"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 "
|
||||||
|
"has a private account, the other is public, when the application does not "
|
||||||
|
"support multiple open and the special has been used, the public account will "
|
||||||
|
"be used to connect"
|
||||||
|
msgstr "这些账号用于连接发布的应用,账号现在分为两种类型,一种是专用的,每个用户都有一个专用账号。 "
|
||||||
|
"另一种是公共的,当应用不支持多开且专用的已经被使用时,会使用公共账号连接"
|
||||||
|
|
||||||
|
#: terminal/serializers/applet_host.py:77
|
||||||
|
msgid "The number of public accounts created automatically"
|
||||||
|
msgstr "公用账号自动创建的数量"
|
||||||
|
|
||||||
#: terminal/serializers/command.py:19
|
#: terminal/serializers/command.py:19
|
||||||
msgid "Session ID"
|
msgid "Session ID"
|
||||||
msgstr "会话ID"
|
msgstr "会话ID"
|
||||||
|
|
|
@ -14,12 +14,12 @@ class Migration(migrations.Migration):
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='assetpermission',
|
model_name='assetpermission',
|
||||||
name='user_groups',
|
name='user_groups',
|
||||||
field=models.ManyToManyField(blank=True, related_name='assetpermissions', to='users.UserGroup', verbose_name='User group'),
|
field=models.ManyToManyField(blank=True, related_name='%(class)ss', to='users.usergroup', verbose_name='User group'),
|
||||||
),
|
),
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='assetpermission',
|
model_name='assetpermission',
|
||||||
name='users',
|
name='users',
|
||||||
field=models.ManyToManyField(blank=True, related_name='assetpermissions', to=settings.AUTH_USER_MODEL, verbose_name='User'),
|
field=models.ManyToManyField(blank=True, related_name='%(class)ss', to=settings.AUTH_USER_MODEL, verbose_name='User'),
|
||||||
),
|
),
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='databaseapppermission',
|
model_name='databaseapppermission',
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Generated by Django 4.1.10 on 2023-07-28 02:01
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('terminal', '0063_auto_20230621_1133'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='applethost',
|
||||||
|
name='accounts_create_amount',
|
||||||
|
field=models.IntegerField(default=100, verbose_name='Accounts create amount'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='applethost',
|
||||||
|
name='auto_create_accounts',
|
||||||
|
field=models.BooleanField(default=True, verbose_name='Auto create accounts'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='sessionsharing',
|
||||||
|
name='origin',
|
||||||
|
field=models.URLField(blank=True, null=True, verbose_name='Origin'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 4.1.10 on 2023-07-26 10:55
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('terminal', '0063_auto_20230621_1133'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='sessionsharing',
|
|
||||||
name='origin',
|
|
||||||
field=models.URLField(blank=True, null=True, verbose_name='Origin'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,4 +1,3 @@
|
||||||
import os
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
@ -17,6 +16,8 @@ __all__ = ['AppletHost', 'AppletHostDeployment']
|
||||||
|
|
||||||
class AppletHost(Host):
|
class AppletHost(Host):
|
||||||
deploy_options = models.JSONField(default=dict, verbose_name=_('Deploy options'))
|
deploy_options = models.JSONField(default=dict, verbose_name=_('Deploy options'))
|
||||||
|
auto_create_accounts = models.BooleanField(default=True, verbose_name=_('Auto create accounts'))
|
||||||
|
accounts_create_amount = models.IntegerField(default=100, verbose_name=_('Accounts create amount'))
|
||||||
inited = models.BooleanField(default=False, verbose_name=_('Inited'))
|
inited = models.BooleanField(default=False, verbose_name=_('Inited'))
|
||||||
date_inited = models.DateTimeField(null=True, blank=True, verbose_name=_('Date inited'))
|
date_inited = models.DateTimeField(null=True, blank=True, verbose_name=_('Date inited'))
|
||||||
date_synced = models.DateTimeField(null=True, blank=True, verbose_name=_('Date synced'))
|
date_synced = models.DateTimeField(null=True, blank=True, verbose_name=_('Date synced'))
|
||||||
|
@ -84,13 +85,14 @@ class AppletHost(Host):
|
||||||
return random_string(16, special_char=True)
|
return random_string(16, special_char=True)
|
||||||
|
|
||||||
def generate_accounts(self):
|
def generate_accounts(self):
|
||||||
|
if not self.auto_create_accounts:
|
||||||
|
return
|
||||||
self.generate_public_accounts()
|
self.generate_public_accounts()
|
||||||
self.generate_private_accounts()
|
self.generate_private_accounts()
|
||||||
|
|
||||||
def generate_public_accounts(self):
|
def generate_public_accounts(self):
|
||||||
public_amount = int(os.getenv('TERMINAL_ACCOUNTS_AMOUNT', 100))
|
|
||||||
now_count = self.accounts.filter(privileged=False, username__startswith='jms').count()
|
now_count = self.accounts.filter(privileged=False, username__startswith='jms').count()
|
||||||
need = public_amount - now_count
|
need = self.accounts_create_amount - now_count
|
||||||
|
|
||||||
accounts = []
|
accounts = []
|
||||||
account_model = self.accounts.model
|
account_model = self.accounts.model
|
||||||
|
|
|
@ -62,11 +62,19 @@ class AppletHostSerializer(HostSerializer):
|
||||||
class Meta(HostSerializer.Meta):
|
class Meta(HostSerializer.Meta):
|
||||||
model = AppletHost
|
model = AppletHost
|
||||||
fields = HostSerializer.Meta.fields + [
|
fields = HostSerializer.Meta.fields + [
|
||||||
|
'auto_create_accounts', 'accounts_create_amount',
|
||||||
'load', 'date_synced', 'deploy_options'
|
'load', 'date_synced', 'deploy_options'
|
||||||
]
|
]
|
||||||
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': _(
|
||||||
|
'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 has a private account, the other is public, '
|
||||||
|
'when the application does not support multiple open and the special has been used, '
|
||||||
|
'the public account will be used to connect')},
|
||||||
|
'accounts_create_amount': {'help_text': _('The number of public accounts created automatically')},
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, *args, data=None, **kwargs):
|
def __init__(self, *args, data=None, **kwargs):
|
||||||
|
|
|
@ -23,8 +23,9 @@ def on_applet_host_create(sender, instance, created=False, **kwargs):
|
||||||
applets = Applet.objects.all()
|
applets = Applet.objects.all()
|
||||||
instance.applets.set(applets)
|
instance.applets.set(applets)
|
||||||
|
|
||||||
applet_host_generate_accounts.delay(instance.id)
|
|
||||||
applet_host_change_pub_sub.publish(True)
|
applet_host_change_pub_sub.publish(True)
|
||||||
|
if instance.auto_create_accounts:
|
||||||
|
applet_host_generate_accounts.delay(instance.id)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=User)
|
@receiver(post_save, sender=User)
|
||||||
|
@ -35,6 +36,8 @@ def on_user_create_create_account(sender, instance, created=False, **kwargs):
|
||||||
with tmp_to_builtin_org(system=1):
|
with tmp_to_builtin_org(system=1):
|
||||||
applet_hosts = AppletHost.objects.all()
|
applet_hosts = AppletHost.objects.all()
|
||||||
for host in applet_hosts:
|
for host in applet_hosts:
|
||||||
|
if not host.auto_create_accounts:
|
||||||
|
continue
|
||||||
host.generate_private_accounts_by_usernames([instance.username])
|
host.generate_private_accounts_by_usernames([instance.username])
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,7 +60,6 @@ def on_applet_create(sender, instance, created=False, **kwargs):
|
||||||
return
|
return
|
||||||
hosts = AppletHost.objects.all()
|
hosts = AppletHost.objects.all()
|
||||||
instance.hosts.set(hosts)
|
instance.hosts.set(hosts)
|
||||||
|
|
||||||
applet_host_change_pub_sub.publish(True)
|
applet_host_change_pub_sub.publish(True)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue