perf: 优化账号活动日志界面的提示及操作日志的字段内容

pull/10082/head
jiangweidong 2023-03-27 17:17:20 +08:00 committed by Jiangjie.Bai
parent 017682b383
commit 5b87470b5c
4 changed files with 254 additions and 222 deletions

View File

@ -79,6 +79,7 @@ class AccountViewSet(OrgBulkModelViewSet):
self.model.objects.filter(id__in=account_ids).update(secret=None) self.model.objects.filter(id__in=account_ids).update(secret=None)
return Response(status=HTTP_200_OK) return Response(status=HTTP_200_OK)
class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet): class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
""" """
因为可能要导出所有账号所以单独建立了一个 viewset 因为可能要导出所有账号所以单独建立了一个 viewset

View File

@ -1,15 +1,17 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
from django.utils import translation from django.utils import translation
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import gettext_noop
from django.contrib.auth.mixins import UserPassesTestMixin from django.contrib.auth.mixins import UserPassesTestMixin
from django.http.response import JsonResponse from django.http.response import JsonResponse
from rest_framework import permissions from rest_framework import permissions
from rest_framework.request import Request from rest_framework.request import Request
from common.exceptions import UserConfirmRequired from common.exceptions import UserConfirmRequired
from common.utils import i18n_fmt
from audits.handler import create_or_update_operate_log from audits.handler import create_or_update_operate_log
from audits.const import ActionChoices from audits.const import ActionChoices, ActivityChoices
from audits.models import ActivityLog
__all__ = [ __all__ = [
"PermissionsMixin", "PermissionsMixin",
@ -49,38 +51,63 @@ class RecordViewLogMixin:
ACTION = ActionChoices.view ACTION = ActionChoices.view
@staticmethod @staticmethod
def get_resource_display(request): def _filter_params(params):
new_params = {}
need_pop_params = ('format', 'order')
for key, value in params.items():
if key in need_pop_params:
continue
if isinstance(value, list):
value = list(filter(None, value))
if value:
new_params[key] = value
return new_params
def get_resource_display(self, request):
query_params = dict(request.query_params) query_params = dict(request.query_params)
if query_params.get("format"): params = self._filter_params(query_params)
query_params.pop("format")
spm_filter = query_params.pop("spm") if query_params.get("spm") else None spm_filter = params.pop("spm", None)
if not query_params and not spm_filter:
display_message = _("Export all") if not params and not spm_filter:
display_message = gettext_noop("Export all")
elif spm_filter: elif spm_filter:
display_message = _("Export only selected items") display_message = gettext_noop("Export only selected items")
else: else:
query = ",".join( query = ",".join(
["%s=%s" % (key, value) for key, value in query_params.items()] ["%s=%s" % (key, value) for key, value in params.items()]
) )
display_message = _("Export filtered: %s") % query display_message = i18n_fmt(gettext_noop("Export filtered: %s"), query)
return display_message return display_message
def record_logs(self, ids, **kwargs):
resource_type = self.model._meta.verbose_name
create_or_update_operate_log(
self.ACTION, resource_type, force=True, **kwargs
)
detail = i18n_fmt(
gettext_noop('User %s view/export secret'), self.request.user
)
activities = [
ActivityLog(
resource_id=getattr(resource_id, 'pk', resource_id),
type=ActivityChoices.operate_log, detail=detail
)
for resource_id in ids
]
ActivityLog.objects.bulk_create(activities)
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
response = super().list(request, *args, **kwargs) response = super().list(request, *args, **kwargs)
with translation.override('en'): with translation.override('en'):
resource_display = self.get_resource_display(request) resource_display = self.get_resource_display(request)
resource_type = self.model._meta.verbose_name ids = [q.id for q in self.get_queryset()]
create_or_update_operate_log( self.record_logs(ids, resource_display=resource_display)
self.ACTION, resource_type, force=True,
resource_display=resource_display
)
return response return response
def retrieve(self, request, *args, **kwargs): def retrieve(self, request, *args, **kwargs):
response = super().retrieve(request, *args, **kwargs) response = super().retrieve(request, *args, **kwargs)
with translation.override('en'): with translation.override('en'):
resource_type = self.model._meta.verbose_name resource = self.get_object()
create_or_update_operate_log( self.record_logs([resource.id], resource=resource)
self.ACTION, resource_type, force=True, resource=self.get_object()
)
return response return response

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-03-22 11:40+0800\n" "POT-Creation-Date: 2023-03-27 17:00+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"
@ -175,13 +175,13 @@ msgid "Only create"
msgstr "作成のみ" msgstr "作成のみ"
#: accounts/models/account.py:47 #: accounts/models/account.py:47
#: accounts/models/automations/gather_account.py:14 #: accounts/models/automations/gather_account.py:16
#: accounts/serializers/account/account.py:102 #: accounts/serializers/account/account.py:110
#: accounts/serializers/account/gathered_account.py:10 #: accounts/serializers/account/gathered_account.py:10
#: accounts/serializers/automations/change_secret.py:111 #: accounts/serializers/automations/change_secret.py:111
#: accounts/serializers/automations/change_secret.py:131 #: accounts/serializers/automations/change_secret.py:131
#: acls/models/base.py:100 acls/serializers/base.py:56 #: acls/models/base.py:100 acls/serializers/base.py:56
#: assets/models/asset/common.py:92 assets/models/asset/common.py:280 #: assets/models/asset/common.py:92 assets/models/asset/common.py:261
#: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19 #: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19
#: assets/serializers/label.py:27 audits/models.py:48 #: assets/serializers/label.py:27 audits/models.py:48
#: authentication/models/connection_token.py:33 #: authentication/models/connection_token.py:33
@ -192,7 +192,7 @@ msgstr "作成のみ"
msgid "Asset" msgid "Asset"
msgstr "資産" msgstr "資産"
#: accounts/models/account.py:51 accounts/serializers/account/account.py:106 #: accounts/models/account.py:51 accounts/serializers/account/account.py:114
#: authentication/serializers/connect_token_secret.py:50 #: authentication/serializers/connect_token_secret.py:50
msgid "Su from" msgid "Su from"
msgstr "から切り替え" msgstr "から切り替え"
@ -202,7 +202,7 @@ msgstr "から切り替え"
msgid "Version" msgid "Version"
msgstr "バージョン" msgstr "バージョン"
#: accounts/models/account.py:55 accounts/serializers/account/account.py:103 #: accounts/models/account.py:55 accounts/serializers/account/account.py:111
#: users/models/user.py:768 #: users/models/user.py:768
msgid "Source" msgid "Source"
msgstr "ソース" msgstr "ソース"
@ -211,7 +211,7 @@ msgstr "ソース"
#: accounts/serializers/automations/change_secret.py:112 #: accounts/serializers/automations/change_secret.py:112
#: accounts/serializers/automations/change_secret.py:132 #: accounts/serializers/automations/change_secret.py:132
#: acls/models/base.py:102 acls/serializers/base.py:57 #: acls/models/base.py:102 acls/serializers/base.py:57
#: assets/serializers/asset/common.py:131 assets/serializers/gateway.py:28 #: assets/serializers/asset/common.py:135 assets/serializers/gateway.py:28
#: audits/models.py:49 ops/models/base.py:18 #: audits/models.py:49 ops/models/base.py:18
#: perms/models/asset_permission.py:70 perms/serializers/permission.py:39 #: perms/models/asset_permission.py:70 perms/serializers/permission.py:39
#: terminal/backends/command/models.py:21 terminal/models/session/session.py:34 #: terminal/backends/command/models.py:21 terminal/models/session/session.py:34
@ -344,9 +344,10 @@ msgid "Can add push account execution"
msgstr "プッシュ アカウントの作成の実行" msgstr "プッシュ アカウントの作成の実行"
#: accounts/models/automations/change_secret.py:18 accounts/models/base.py:36 #: accounts/models/automations/change_secret.py:18 accounts/models/base.py:36
#: accounts/serializers/account/account.py:167 #: accounts/serializers/account/account.py:175
#: accounts/serializers/account/base.py:16 #: accounts/serializers/account/base.py:16
#: accounts/serializers/automations/change_secret.py:46 #: accounts/serializers/automations/change_secret.py:46
#: assets/serializers/asset/common.py:77
#: authentication/serializers/connect_token_secret.py:41 #: authentication/serializers/connect_token_secret.py:41
#: authentication/serializers/connect_token_secret.py:51 #: authentication/serializers/connect_token_secret.py:51
msgid "Secret type" msgid "Secret type"
@ -402,15 +403,15 @@ msgstr "間違い"
msgid "Change secret record" msgid "Change secret record"
msgstr "パスワード レコードの変更" msgstr "パスワード レコードの変更"
#: accounts/models/automations/gather_account.py:12 #: accounts/models/automations/gather_account.py:14
msgid "Present" msgid "Present"
msgstr "存在する" msgstr "存在する"
#: accounts/models/automations/gather_account.py:13 #: accounts/models/automations/gather_account.py:15
msgid "Date last login" msgid "Date last login"
msgstr "最終ログイン日" msgstr "最終ログイン日"
#: accounts/models/automations/gather_account.py:15 #: accounts/models/automations/gather_account.py:17
#: accounts/models/automations/push_account.py:15 accounts/models/base.py:34 #: accounts/models/automations/push_account.py:15 accounts/models/base.py:34
#: acls/serializers/base.py:18 acls/serializers/base.py:49 #: acls/serializers/base.py:18 acls/serializers/base.py:49
#: assets/models/_user.py:23 audits/models.py:157 authentication/forms.py:25 #: assets/models/_user.py:23 audits/models.py:157 authentication/forms.py:25
@ -423,11 +424,11 @@ msgstr "最終ログイン日"
msgid "Username" msgid "Username"
msgstr "ユーザー名" msgstr "ユーザー名"
#: accounts/models/automations/gather_account.py:16 #: accounts/models/automations/gather_account.py:18
msgid "Address last login" msgid "Address last login"
msgstr "最終ログインアドレス" msgstr "最終ログインアドレス"
#: accounts/models/automations/gather_account.py:23 #: accounts/models/automations/gather_account.py:44
msgid "Gather account automation" msgid "Gather account automation"
msgstr "自動収集アカウント" msgstr "自動収集アカウント"
@ -462,9 +463,9 @@ msgstr "アカウントの確認"
#: assets/models/asset/common.py:90 assets/models/asset/common.py:102 #: assets/models/asset/common.py:90 assets/models/asset/common.py:102
#: assets/models/cmd_filter.py:21 assets/models/domain.py:18 #: assets/models/cmd_filter.py:21 assets/models/domain.py:18
#: assets/models/group.py:20 assets/models/label.py:18 #: assets/models/group.py:20 assets/models/label.py:18
#: assets/models/platform.py:21 assets/models/platform.py:76 #: assets/models/platform.py:13 assets/models/platform.py:64
#: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:155
#: assets/serializers/platform.py:132 #: assets/serializers/platform.py:141
#: authentication/serializers/connect_token_secret.py:103 ops/mixin.py:21 #: authentication/serializers/connect_token_secret.py:103 ops/mixin.py:21
#: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57 #: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:91 ops/models/playbook.py:23 ops/serializers/job.py:19 #: ops/models/job.py:91 ops/models/playbook.py:23 ops/serializers/job.py:19
@ -532,36 +533,36 @@ msgstr ""
"{} -暗号化変更タスクが完了しました: 暗号化パスワードが設定されていません-個人" "{} -暗号化変更タスクが完了しました: 暗号化パスワードが設定されていません-個人"
"情報にアクセスしてください-> ファイル暗号化パスワードを設定してください" "情報にアクセスしてください-> ファイル暗号化パスワードを設定してください"
#: accounts/serializers/account/account.py:72 #: accounts/serializers/account/account.py:80
#: assets/serializers/asset/common.py:72 settings/serializers/auth/sms.py:75 #: assets/serializers/asset/common.py:72 settings/serializers/auth/sms.py:75
msgid "Template" msgid "Template"
msgstr "テンプレート" msgstr "テンプレート"
#: accounts/serializers/account/account.py:75 #: accounts/serializers/account/account.py:83
#: assets/serializers/asset/common.py:69 #: assets/serializers/asset/common.py:69
msgid "Push now" msgid "Push now"
msgstr "今すぐプッシュ" msgstr "今すぐプッシュ"
#: accounts/serializers/account/account.py:77 #: accounts/serializers/account/account.py:85
#: accounts/serializers/account/base.py:64 #: accounts/serializers/account/base.py:64
msgid "Has secret" msgid "Has secret"
msgstr "エスクローされたパスワード" msgstr "エスクローされたパスワード"
#: accounts/serializers/account/account.py:82 applications/models.py:11 #: accounts/serializers/account/account.py:90 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:77 #: assets/models/label.py:21 assets/models/platform.py:65
#: assets/serializers/asset/common.py:127 assets/serializers/cagegory.py:8 #: assets/serializers/asset/common.py:131 assets/serializers/cagegory.py:8
#: assets/serializers/platform.py:93 assets/serializers/platform.py:133 #: assets/serializers/platform.py:92 assets/serializers/platform.py:142
#: perms/serializers/user_permission.py:26 settings/models.py:35 #: perms/serializers/user_permission.py:26 settings/models.py:35
#: tickets/models/ticket/apply_application.py:13 #: tickets/models/ticket/apply_application.py:13
msgid "Category" msgid "Category"
msgstr "カテゴリ" msgstr "カテゴリ"
#: accounts/serializers/account/account.py:83 #: accounts/serializers/account/account.py:91
#: accounts/serializers/automations/base.py:54 acls/models/command_acl.py:24 #: accounts/serializers/automations/base.py:54 acls/models/command_acl.py:24
#: acls/serializers/command_acl.py:18 applications/models.py:14 #: acls/serializers/command_acl.py:18 applications/models.py:14
#: assets/models/_user.py:50 assets/models/automations/base.py:20 #: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:78 #: assets/models/cmd_filter.py:74 assets/models/platform.py:66
#: assets/serializers/asset/common.py:128 assets/serializers/platform.py:92 #: assets/serializers/asset/common.py:132 assets/serializers/platform.py:91
#: audits/serializers.py:48 #: audits/serializers.py:48
#: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102 #: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31
@ -575,15 +576,15 @@ msgstr "カテゴリ"
msgid "Type" msgid "Type"
msgstr "タイプ" msgstr "タイプ"
#: accounts/serializers/account/account.py:98 #: accounts/serializers/account/account.py:106
msgid "Asset not found" msgid "Asset not found"
msgstr "資産が存在しません" msgstr "資産が存在しません"
#: accounts/serializers/account/account.py:110 ops/models/base.py:19 #: accounts/serializers/account/account.py:118 ops/models/base.py:19
msgid "Account policy" msgid "Account policy"
msgstr "アカウント ポリシー" msgstr "アカウント ポリシー"
#: accounts/serializers/account/account.py:177 acls/models/base.py:98 #: accounts/serializers/account/account.py:185 acls/models/base.py:98
#: acls/models/login_acl.py:13 acls/serializers/base.py:55 #: acls/models/login_acl.py:13 acls/serializers/base.py:55
#: acls/serializers/login_acl.py:21 assets/models/cmd_filter.py:24 #: acls/serializers/login_acl.py:21 assets/models/cmd_filter.py:24
#: assets/models/label.py:16 audits/models.py:44 audits/models.py:63 #: assets/models/label.py:16 audits/models.py:44 audits/models.py:63
@ -601,7 +602,7 @@ msgstr "アカウント ポリシー"
msgid "User" msgid "User"
msgstr "ユーザー" msgstr "ユーザー"
#: accounts/serializers/account/account.py:178 #: accounts/serializers/account/account.py:186
#: authentication/templates/authentication/_access_key_modal.html:33 #: authentication/templates/authentication/_access_key_modal.html:33
#: terminal/notifications.py:98 terminal/notifications.py:146 #: terminal/notifications.py:98 terminal/notifications.py:146
msgid "Date" msgid "Date"
@ -633,7 +634,7 @@ msgid "Key password"
msgstr "キーパスワード" msgstr "キーパスワード"
#: accounts/serializers/account/base.py:81 #: accounts/serializers/account/base.py:81
#: assets/serializers/asset/common.py:303 #: assets/serializers/asset/common.py:307
msgid "Spec info" msgid "Spec info"
msgstr "特別情報" msgstr "特別情報"
@ -1018,7 +1019,7 @@ msgid "Device"
msgstr "インターネット機器" msgstr "インターネット機器"
#: assets/const/category.py:13 assets/models/asset/database.py:9 #: assets/const/category.py:13 assets/models/asset/database.py:9
#: assets/models/asset/database.py:24 assets/serializers/asset/common.py:115 #: assets/models/asset/database.py:24 assets/serializers/asset/common.py:119
msgid "Database" msgid "Database"
msgstr "データベース" msgstr "データベース"
@ -1082,7 +1083,7 @@ msgid "Basic"
msgstr "基本" msgstr "基本"
#: assets/const/web.py:61 assets/models/asset/web.py:13 #: assets/const/web.py:61 assets/models/asset/web.py:13
#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:39 #: assets/serializers/asset/common.py:127 assets/serializers/platform.py:39
msgid "Script" msgid "Script"
msgstr "脚本" msgstr "脚本"
@ -1205,17 +1206,17 @@ msgstr "システムユーザーに一致できます"
msgid "Cloud" msgid "Cloud"
msgstr "クラウド サービス" msgstr "クラウド サービス"
#: assets/models/asset/common.py:91 assets/models/platform.py:22 #: assets/models/asset/common.py:91 assets/models/platform.py:14
#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:68 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:68
#: xpack/plugins/cloud/serializers/account_attrs.py:73 #: xpack/plugins/cloud/serializers/account_attrs.py:73
msgid "Port" msgid "Port"
msgstr "ポート" msgstr "ポート"
#: assets/models/asset/common.py:103 assets/serializers/asset/common.py:152 #: assets/models/asset/common.py:103 assets/serializers/asset/common.py:156
msgid "Address" msgid "Address"
msgstr "アドレス" msgstr "アドレス"
#: assets/models/asset/common.py:104 assets/models/platform.py:112 #: assets/models/asset/common.py:104 assets/models/platform.py:95
#: authentication/serializers/connect_token_secret.py:108 #: authentication/serializers/connect_token_secret.py:108
#: perms/serializers/user_permission.py:24 #: perms/serializers/user_permission.py:24
#: xpack/plugins/cloud/serializers/account_attrs.py:197 #: xpack/plugins/cloud/serializers/account_attrs.py:197
@ -1236,23 +1237,23 @@ msgstr "ラベル"
msgid "Info" msgid "Info"
msgstr "情報" msgstr "情報"
#: assets/models/asset/common.py:283 #: assets/models/asset/common.py:264
msgid "Can refresh asset hardware info" msgid "Can refresh asset hardware info"
msgstr "資産ハードウェア情報を更新できます" msgstr "資産ハードウェア情報を更新できます"
#: assets/models/asset/common.py:284 #: assets/models/asset/common.py:265
msgid "Can test asset connectivity" msgid "Can test asset connectivity"
msgstr "資産接続をテストできます" msgstr "資産接続をテストできます"
#: assets/models/asset/common.py:285 #: assets/models/asset/common.py:266
msgid "Can match asset" msgid "Can match asset"
msgstr "アセットを一致させることができます" msgstr "アセットを一致させることができます"
#: assets/models/asset/common.py:286 #: assets/models/asset/common.py:267
msgid "Can change asset nodes" msgid "Can change asset nodes"
msgstr "資産ノードを変更できます" msgstr "資産ノードを変更できます"
#: assets/models/asset/database.py:10 assets/serializers/asset/common.py:116 #: assets/models/asset/database.py:10 assets/serializers/asset/common.py:120
#: settings/serializers/email.py:37 #: settings/serializers/email.py:37
msgid "Use SSL" msgid "Use SSL"
msgstr "SSLの使用" msgstr "SSLの使用"
@ -1269,7 +1270,7 @@ msgstr "クライアント証明書"
msgid "Client key" msgid "Client key"
msgstr "クライアントキー" msgstr "クライアントキー"
#: assets/models/asset/database.py:14 assets/serializers/asset/common.py:117 #: assets/models/asset/database.py:14 assets/serializers/asset/common.py:121
msgid "Allow invalid cert" msgid "Allow invalid cert"
msgstr "証明書チェックを無視" msgstr "証明書チェックを無視"
@ -1277,23 +1278,23 @@ msgstr "証明書チェックを無視"
msgid "Autofill" msgid "Autofill"
msgstr "自動充填" msgstr "自動充填"
#: assets/models/asset/web.py:10 assets/serializers/asset/common.py:120 #: assets/models/asset/web.py:10 assets/serializers/asset/common.py:124
#: assets/serializers/platform.py:31 #: assets/serializers/platform.py:31
msgid "Username selector" msgid "Username selector"
msgstr "ユーザー名ピッカー" msgstr "ユーザー名ピッカー"
#: assets/models/asset/web.py:11 assets/serializers/asset/common.py:121 #: assets/models/asset/web.py:11 assets/serializers/asset/common.py:125
#: assets/serializers/platform.py:34 #: assets/serializers/platform.py:34
msgid "Password selector" msgid "Password selector"
msgstr "パスワードセレクター" msgstr "パスワードセレクター"
#: assets/models/asset/web.py:12 assets/serializers/asset/common.py:122 #: assets/models/asset/web.py:12 assets/serializers/asset/common.py:126
#: assets/serializers/platform.py:37 #: assets/serializers/platform.py:37
msgid "Submit selector" msgid "Submit selector"
msgstr "ボタンセレクターを確認する" msgstr "ボタンセレクターを確認する"
#: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38 #: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38
#: assets/serializers/asset/common.py:302 rbac/tree.py:35 #: assets/serializers/asset/common.py:306 rbac/tree.py:35
msgid "Accounts" msgid "Accounts"
msgstr "アカウント" msgstr "アカウント"
@ -1366,7 +1367,7 @@ msgstr "コマンドフィルタルール"
msgid "Favorite asset" msgid "Favorite asset"
msgstr "お気に入りのアセット" msgstr "お気に入りのアセット"
#: assets/models/gateway.py:35 assets/serializers/domain.py:16 #: assets/models/gateway.py:34 assets/serializers/domain.py:16
msgid "Gateway" msgid "Gateway"
msgstr "ゲートウェイ" msgstr "ゲートウェイ"
@ -1374,7 +1375,7 @@ msgstr "ゲートウェイ"
msgid "Asset group" msgid "Asset group"
msgstr "資産グループ" msgstr "資産グループ"
#: assets/models/group.py:34 assets/models/platform.py:19 #: assets/models/group.py:34 assets/models/platform.py:17
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "デフォルト" msgstr "デフォルト"
@ -1395,7 +1396,7 @@ msgstr "システム"
msgid "Value" msgid "Value"
msgstr "値" msgstr "値"
#: assets/models/label.py:40 assets/serializers/asset/common.py:129 #: assets/models/label.py:40 assets/serializers/asset/common.py:133
#: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13 #: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13
#: authentication/serializers/connect_token_secret.py:114 #: authentication/serializers/connect_token_secret.py:114
#: common/serializers/common.py:79 settings/serializers/sms.py:7 #: common/serializers/common.py:79 settings/serializers/sms.py:7
@ -1431,91 +1432,95 @@ msgstr "ノード"
msgid "Can match node" msgid "Can match node"
msgstr "ノードを一致させることができます" msgstr "ノードを一致させることができます"
#: assets/models/platform.py:20 #: assets/models/platform.py:15
msgid "Primary"
msgstr "主要"
#: assets/models/platform.py:16
msgid "Required" msgid "Required"
msgstr "必要" msgstr "必要"
#: assets/models/platform.py:23 settings/serializers/settings.py:65 #: assets/models/platform.py:18 settings/serializers/settings.py:65
#: users/templates/users/reset_password.html:29 #: users/templates/users/reset_password.html:29
msgid "Setting" msgid "Setting"
msgstr "設定" msgstr "設定"
#: assets/models/platform.py:42 audits/const.py:47 settings/models.py:37 #: assets/models/platform.py:30 audits/const.py:47 settings/models.py:37
#: terminal/serializers/applet_host.py:29 #: terminal/serializers/applet_host.py:29
msgid "Enabled" msgid "Enabled"
msgstr "有効化" msgstr "有効化"
#: assets/models/platform.py:43 #: assets/models/platform.py:31
msgid "Ansible config" msgid "Ansible config"
msgstr "Ansible 構成" msgstr "Ansible 構成"
#: assets/models/platform.py:44 assets/serializers/platform.py:60 #: assets/models/platform.py:32 assets/serializers/platform.py:60
msgid "Ping enabled" msgid "Ping enabled"
msgstr "アセット ディスカバリを有効にする" msgstr "アセット ディスカバリを有効にする"
#: assets/models/platform.py:45 assets/serializers/platform.py:61 #: assets/models/platform.py:33 assets/serializers/platform.py:61
msgid "Ping method" msgid "Ping method"
msgstr "資産検出方法" msgstr "資産検出方法"
#: assets/models/platform.py:46 assets/models/platform.py:59 #: assets/models/platform.py:34 assets/models/platform.py:47
#: assets/serializers/platform.py:62 #: assets/serializers/platform.py:62
msgid "Gather facts enabled" msgid "Gather facts enabled"
msgstr "資産情報の収集を有効にする" msgstr "資産情報の収集を有効にする"
#: assets/models/platform.py:47 assets/models/platform.py:61 #: assets/models/platform.py:35 assets/models/platform.py:49
#: assets/serializers/platform.py:63 #: assets/serializers/platform.py:63
msgid "Gather facts method" msgid "Gather facts method"
msgstr "情報収集の方法" msgstr "情報収集の方法"
#: assets/models/platform.py:48 assets/serializers/platform.py:66 #: assets/models/platform.py:36 assets/serializers/platform.py:66
msgid "Change secret enabled" msgid "Change secret enabled"
msgstr "パスワードの変更が有効" msgstr "パスワードの変更が有効"
#: assets/models/platform.py:50 assets/serializers/platform.py:67 #: assets/models/platform.py:38 assets/serializers/platform.py:67
msgid "Change secret method" msgid "Change secret method"
msgstr "パスワード変更モード" msgstr "パスワード変更モード"
#: assets/models/platform.py:52 assets/serializers/platform.py:68 #: assets/models/platform.py:40 assets/serializers/platform.py:68
msgid "Push account enabled" msgid "Push account enabled"
msgstr "アカウントのプッシュを有効にする" msgstr "アカウントのプッシュを有効にする"
#: assets/models/platform.py:54 assets/serializers/platform.py:69 #: assets/models/platform.py:42 assets/serializers/platform.py:69
msgid "Push account method" msgid "Push account method"
msgstr "アカウントプッシュ方式" msgstr "アカウントプッシュ方式"
#: assets/models/platform.py:56 assets/serializers/platform.py:64 #: assets/models/platform.py:44 assets/serializers/platform.py:64
msgid "Verify account enabled" msgid "Verify account enabled"
msgstr "アカウントの確認をオンにする" msgstr "アカウントの確認をオンにする"
#: assets/models/platform.py:58 assets/serializers/platform.py:65 #: assets/models/platform.py:46 assets/serializers/platform.py:65
msgid "Verify account method" msgid "Verify account method"
msgstr "アカウント認証方法" msgstr "アカウント認証方法"
#: assets/models/platform.py:79 tickets/models/ticket/general.py:300 #: assets/models/platform.py:67 tickets/models/ticket/general.py:300
msgid "Meta" msgid "Meta"
msgstr "メタ" msgstr "メタ"
#: assets/models/platform.py:80 #: assets/models/platform.py:68
msgid "Internal" msgid "Internal"
msgstr "ビルトイン" msgstr "ビルトイン"
#: assets/models/platform.py:83 assets/serializers/platform.py:90 #: assets/models/platform.py:71 assets/serializers/platform.py:89
msgid "Charset" msgid "Charset"
msgstr "シャーセット" msgstr "シャーセット"
#: assets/models/platform.py:85 assets/serializers/platform.py:118 #: assets/models/platform.py:73 assets/serializers/platform.py:117
msgid "Domain enabled" msgid "Domain enabled"
msgstr "ドメインを有効にする" msgstr "ドメインを有効にする"
#: assets/models/platform.py:87 assets/serializers/platform.py:117 #: assets/models/platform.py:75 assets/serializers/platform.py:116
msgid "Su enabled" msgid "Su enabled"
msgstr "アカウントの切り替えを有効にする" msgstr "アカウントの切り替えを有効にする"
#: assets/models/platform.py:88 assets/serializers/platform.py:100 #: assets/models/platform.py:76 assets/serializers/platform.py:99
msgid "Su method" msgid "Su method"
msgstr "アカウントの切り替え方法" msgstr "アカウントの切り替え方法"
#: assets/models/platform.py:90 assets/serializers/platform.py:97 #: assets/models/platform.py:78 assets/serializers/platform.py:96
msgid "Automation" msgid "Automation"
msgstr "オートメーション" msgstr "オートメーション"
@ -1532,36 +1537,36 @@ msgstr ""
"プラットフォームタイプがスキップされた資産に合致しない、資産内の一括更新プ" "プラットフォームタイプがスキップされた資産に合致しない、資産内の一括更新プ"
"ラットフォーム" "ラットフォーム"
#: assets/serializers/asset/common.py:119 #: assets/serializers/asset/common.py:123
msgid "Auto fill" msgid "Auto fill"
msgstr "自動充填" msgstr "自動充填"
#: assets/serializers/asset/common.py:130 assets/serializers/platform.py:95 #: assets/serializers/asset/common.py:134 assets/serializers/platform.py:94
#: authentication/serializers/connect_token_secret.py:28 #: authentication/serializers/connect_token_secret.py:28
#: authentication/serializers/connect_token_secret.py:66 #: authentication/serializers/connect_token_secret.py:66
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99 #: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99
msgid "Protocols" msgid "Protocols"
msgstr "プロトコル" msgstr "プロトコル"
#: assets/serializers/asset/common.py:132 #: assets/serializers/asset/common.py:136
#: assets/serializers/asset/common.py:153 #: assets/serializers/asset/common.py:157
msgid "Node path" msgid "Node path"
msgstr "ノードパスです" msgstr "ノードパスです"
#: assets/serializers/asset/common.py:150 #: assets/serializers/asset/common.py:154
#: assets/serializers/asset/common.py:304 #: assets/serializers/asset/common.py:308
msgid "Auto info" msgid "Auto info"
msgstr "自動情報" msgstr "自動情報"
#: assets/serializers/asset/common.py:228 #: assets/serializers/asset/common.py:232
msgid "Platform not exist" msgid "Platform not exist"
msgstr "プラットフォームが存在しません" msgstr "プラットフォームが存在しません"
#: assets/serializers/asset/common.py:263 #: assets/serializers/asset/common.py:267
msgid "port out of range (1-65535)" msgid "port out of range (1-65535)"
msgstr "ポート番号が範囲外です (1-65535)" msgstr "ポート番号が範囲外です (1-65535)"
#: assets/serializers/asset/common.py:270 #: assets/serializers/asset/common.py:274
msgid "Protocol is required: {}" msgid "Protocol is required: {}"
msgstr "プロトコルが必要です: {}" msgstr "プロトコルが必要です: {}"
@ -1670,11 +1675,7 @@ msgstr "アカウント収集を有効にする"
msgid "Gather accounts method" msgid "Gather accounts method"
msgstr "アカウントの収集方法" msgstr "アカウントの収集方法"
#: assets/serializers/platform.py:77 #: assets/serializers/platform.py:118
msgid "Primary"
msgstr "主要"
#: assets/serializers/platform.py:119
msgid "Default Domain" msgid "Default Domain"
msgstr "デフォルト ドメイン" msgstr "デフォルト ドメイン"
@ -3173,19 +3174,24 @@ msgstr "特殊文字を含むべきではない"
msgid "The mobile phone number format is incorrect" msgid "The mobile phone number format is incorrect"
msgstr "携帯電話番号の形式が正しくありません" msgstr "携帯電話番号の形式が正しくありません"
#: common/views/mixins.py:58 #: common/views/mixins.py:73
msgid "Export all" msgid "Export all"
msgstr "すべてエクスポート" msgstr "すべてエクスポート"
#: common/views/mixins.py:60 #: common/views/mixins.py:75
msgid "Export only selected items" msgid "Export only selected items"
msgstr "選択項目のみエクスポート" msgstr "選択項目のみエクスポート"
#: common/views/mixins.py:65 #: common/views/mixins.py:80
#, python-format #, python-format
msgid "Export filtered: %s" msgid "Export filtered: %s"
msgstr "検索のエクスポート: %s" msgstr "検索のエクスポート: %s"
#: common/views/mixins.py:90
#, python-format
msgid "User %s view/export secret"
msgstr "ユーザー %s がパスワードを閲覧/導き出しました"
#: jumpserver/conf.py:416 #: jumpserver/conf.py:416
msgid "Create account successfully" msgid "Create account successfully"
msgstr "アカウントを正常に作成" msgstr "アカウントを正常に作成"
@ -3262,11 +3268,11 @@ msgstr "投稿サイトニュース"
msgid "No account available" msgid "No account available"
msgstr "利用可能なアカウントがありません" msgstr "利用可能なアカウントがありません"
#: ops/ansible/inventory.py:196 #: ops/ansible/inventory.py:209
msgid "Ansible disabled" msgid "Ansible disabled"
msgstr "Ansible 無効" msgstr "Ansible 無効"
#: ops/ansible/inventory.py:212 #: ops/ansible/inventory.py:225
msgid "Skip hosts below:" msgid "Skip hosts below:"
msgstr "次のホストをスキップします: " msgstr "次のホストをスキップします: "
@ -4931,43 +4937,39 @@ msgid "Remember manual auth"
msgstr "手動入力パスワードの保存" msgstr "手動入力パスワードの保存"
#: settings/serializers/security.py:172 #: settings/serializers/security.py:172
msgid "Enable change auth secure mode"
msgstr "安全モードの変更を有効にする"
#: settings/serializers/security.py:175
msgid "Insecure command alert" msgid "Insecure command alert"
msgstr "安全でないコマンドアラート" msgstr "安全でないコマンドアラート"
#: settings/serializers/security.py:178 #: settings/serializers/security.py:175
msgid "Email recipient" msgid "Email recipient"
msgstr "メール受信者" msgstr "メール受信者"
#: settings/serializers/security.py:179 #: settings/serializers/security.py:176
msgid "Multiple user using , split" msgid "Multiple user using , split"
msgstr "複数のユーザーを使用して、分割" msgstr "複数のユーザーを使用して、分割"
#: settings/serializers/security.py:182 #: settings/serializers/security.py:179
msgid "Operation center" msgid "Operation center"
msgstr "職業センター" msgstr "職業センター"
#: settings/serializers/security.py:183 #: settings/serializers/security.py:180
msgid "Allow user run batch command or not using ansible" msgid "Allow user run batch command or not using ansible"
msgstr "ユーザー実行バッチコマンドを許可するか、ansibleを使用しない" msgstr "ユーザー実行バッチコマンドを許可するか、ansibleを使用しない"
#: settings/serializers/security.py:186 #: settings/serializers/security.py:183
msgid "Session share" msgid "Session share"
msgstr "セッション共有" msgstr "セッション共有"
#: settings/serializers/security.py:187 #: settings/serializers/security.py:184
msgid "Enabled, Allows user active session to be shared with other users" msgid "Enabled, Allows user active session to be shared with other users"
msgstr "" msgstr ""
"ユーザーのアクティブなセッションを他のユーザーと共有できるようにします。" "ユーザーのアクティブなセッションを他のユーザーと共有できるようにします。"
#: settings/serializers/security.py:190 #: settings/serializers/security.py:187
msgid "Remote Login Protection" msgid "Remote Login Protection"
msgstr "リモートログイン保護" msgstr "リモートログイン保護"
#: settings/serializers/security.py:192 #: settings/serializers/security.py:189
msgid "" msgid ""
"The system determines whether the login IP address belongs to a common login " "The system determines whether the login IP address belongs to a common login "
"city. If the account is logged in from a common login city, the system sends " "city. If the account is logged in from a common login city, the system sends "

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-03-22 11:40+0800\n" "POT-Creation-Date: 2023-03-27 17:00+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"
@ -174,13 +174,13 @@ msgid "Only create"
msgstr "仅创建" msgstr "仅创建"
#: accounts/models/account.py:47 #: accounts/models/account.py:47
#: accounts/models/automations/gather_account.py:14 #: accounts/models/automations/gather_account.py:16
#: accounts/serializers/account/account.py:102 #: accounts/serializers/account/account.py:110
#: accounts/serializers/account/gathered_account.py:10 #: accounts/serializers/account/gathered_account.py:10
#: accounts/serializers/automations/change_secret.py:111 #: accounts/serializers/automations/change_secret.py:111
#: accounts/serializers/automations/change_secret.py:131 #: accounts/serializers/automations/change_secret.py:131
#: acls/models/base.py:100 acls/serializers/base.py:56 #: acls/models/base.py:100 acls/serializers/base.py:56
#: assets/models/asset/common.py:92 assets/models/asset/common.py:280 #: assets/models/asset/common.py:92 assets/models/asset/common.py:261
#: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19 #: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19
#: assets/serializers/label.py:27 audits/models.py:48 #: assets/serializers/label.py:27 audits/models.py:48
#: authentication/models/connection_token.py:33 #: authentication/models/connection_token.py:33
@ -191,7 +191,7 @@ msgstr "仅创建"
msgid "Asset" msgid "Asset"
msgstr "资产" msgstr "资产"
#: accounts/models/account.py:51 accounts/serializers/account/account.py:106 #: accounts/models/account.py:51 accounts/serializers/account/account.py:114
#: authentication/serializers/connect_token_secret.py:50 #: authentication/serializers/connect_token_secret.py:50
msgid "Su from" msgid "Su from"
msgstr "切换自" msgstr "切换自"
@ -201,7 +201,7 @@ msgstr "切换自"
msgid "Version" msgid "Version"
msgstr "版本" msgstr "版本"
#: accounts/models/account.py:55 accounts/serializers/account/account.py:103 #: accounts/models/account.py:55 accounts/serializers/account/account.py:111
#: users/models/user.py:768 #: users/models/user.py:768
msgid "Source" msgid "Source"
msgstr "来源" msgstr "来源"
@ -210,7 +210,7 @@ msgstr "来源"
#: accounts/serializers/automations/change_secret.py:112 #: accounts/serializers/automations/change_secret.py:112
#: accounts/serializers/automations/change_secret.py:132 #: accounts/serializers/automations/change_secret.py:132
#: acls/models/base.py:102 acls/serializers/base.py:57 #: acls/models/base.py:102 acls/serializers/base.py:57
#: assets/serializers/asset/common.py:131 assets/serializers/gateway.py:28 #: assets/serializers/asset/common.py:135 assets/serializers/gateway.py:28
#: audits/models.py:49 ops/models/base.py:18 #: audits/models.py:49 ops/models/base.py:18
#: perms/models/asset_permission.py:70 perms/serializers/permission.py:39 #: perms/models/asset_permission.py:70 perms/serializers/permission.py:39
#: terminal/backends/command/models.py:21 terminal/models/session/session.py:34 #: terminal/backends/command/models.py:21 terminal/models/session/session.py:34
@ -343,9 +343,10 @@ msgid "Can add push account execution"
msgstr "创建推送账号执行" msgstr "创建推送账号执行"
#: accounts/models/automations/change_secret.py:18 accounts/models/base.py:36 #: accounts/models/automations/change_secret.py:18 accounts/models/base.py:36
#: accounts/serializers/account/account.py:167 #: accounts/serializers/account/account.py:175
#: accounts/serializers/account/base.py:16 #: accounts/serializers/account/base.py:16
#: accounts/serializers/automations/change_secret.py:46 #: accounts/serializers/automations/change_secret.py:46
#: assets/serializers/asset/common.py:77
#: authentication/serializers/connect_token_secret.py:41 #: authentication/serializers/connect_token_secret.py:41
#: authentication/serializers/connect_token_secret.py:51 #: authentication/serializers/connect_token_secret.py:51
msgid "Secret type" msgid "Secret type"
@ -401,15 +402,15 @@ msgstr "错误"
msgid "Change secret record" msgid "Change secret record"
msgstr "改密记录" msgstr "改密记录"
#: accounts/models/automations/gather_account.py:12 #: accounts/models/automations/gather_account.py:14
msgid "Present" msgid "Present"
msgstr "存在" msgstr "存在"
#: accounts/models/automations/gather_account.py:13 #: accounts/models/automations/gather_account.py:15
msgid "Date last login" msgid "Date last login"
msgstr "最后登录日期" msgstr "最后登录日期"
#: accounts/models/automations/gather_account.py:15 #: accounts/models/automations/gather_account.py:17
#: accounts/models/automations/push_account.py:15 accounts/models/base.py:34 #: accounts/models/automations/push_account.py:15 accounts/models/base.py:34
#: acls/serializers/base.py:18 acls/serializers/base.py:49 #: acls/serializers/base.py:18 acls/serializers/base.py:49
#: assets/models/_user.py:23 audits/models.py:157 authentication/forms.py:25 #: assets/models/_user.py:23 audits/models.py:157 authentication/forms.py:25
@ -422,11 +423,11 @@ msgstr "最后登录日期"
msgid "Username" msgid "Username"
msgstr "用户名" msgstr "用户名"
#: accounts/models/automations/gather_account.py:16 #: accounts/models/automations/gather_account.py:18
msgid "Address last login" msgid "Address last login"
msgstr "最后登录地址" msgstr "最后登录地址"
#: accounts/models/automations/gather_account.py:23 #: accounts/models/automations/gather_account.py:44
msgid "Gather account automation" msgid "Gather account automation"
msgstr "自动化收集账号" msgstr "自动化收集账号"
@ -461,9 +462,9 @@ msgstr "账号验证"
#: assets/models/asset/common.py:90 assets/models/asset/common.py:102 #: assets/models/asset/common.py:90 assets/models/asset/common.py:102
#: assets/models/cmd_filter.py:21 assets/models/domain.py:18 #: assets/models/cmd_filter.py:21 assets/models/domain.py:18
#: assets/models/group.py:20 assets/models/label.py:18 #: assets/models/group.py:20 assets/models/label.py:18
#: assets/models/platform.py:21 assets/models/platform.py:76 #: assets/models/platform.py:13 assets/models/platform.py:64
#: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:155
#: assets/serializers/platform.py:132 #: assets/serializers/platform.py:141
#: authentication/serializers/connect_token_secret.py:103 ops/mixin.py:21 #: authentication/serializers/connect_token_secret.py:103 ops/mixin.py:21
#: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57 #: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:91 ops/models/playbook.py:23 ops/serializers/job.py:19 #: ops/models/job.py:91 ops/models/playbook.py:23 ops/serializers/job.py:19
@ -528,36 +529,36 @@ msgstr ""
"{} - 改密任务已完成: 未设置加密密码 - 请前往个人信息 -> 文件加密密码中设置加" "{} - 改密任务已完成: 未设置加密密码 - 请前往个人信息 -> 文件加密密码中设置加"
"密密码" "密密码"
#: accounts/serializers/account/account.py:72 #: accounts/serializers/account/account.py:80
#: assets/serializers/asset/common.py:72 settings/serializers/auth/sms.py:75 #: assets/serializers/asset/common.py:72 settings/serializers/auth/sms.py:75
msgid "Template" msgid "Template"
msgstr "模板" msgstr "模板"
#: accounts/serializers/account/account.py:75 #: accounts/serializers/account/account.py:83
#: assets/serializers/asset/common.py:69 #: assets/serializers/asset/common.py:69
msgid "Push now" msgid "Push now"
msgstr "立即推送" msgstr "立即推送"
#: accounts/serializers/account/account.py:77 #: accounts/serializers/account/account.py:85
#: accounts/serializers/account/base.py:64 #: accounts/serializers/account/base.py:64
msgid "Has secret" msgid "Has secret"
msgstr "已托管密码" msgstr "已托管密码"
#: accounts/serializers/account/account.py:82 applications/models.py:11 #: accounts/serializers/account/account.py:90 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:77 #: assets/models/label.py:21 assets/models/platform.py:65
#: assets/serializers/asset/common.py:127 assets/serializers/cagegory.py:8 #: assets/serializers/asset/common.py:131 assets/serializers/cagegory.py:8
#: assets/serializers/platform.py:93 assets/serializers/platform.py:133 #: assets/serializers/platform.py:92 assets/serializers/platform.py:142
#: perms/serializers/user_permission.py:26 settings/models.py:35 #: perms/serializers/user_permission.py:26 settings/models.py:35
#: tickets/models/ticket/apply_application.py:13 #: tickets/models/ticket/apply_application.py:13
msgid "Category" msgid "Category"
msgstr "类别" msgstr "类别"
#: accounts/serializers/account/account.py:83 #: accounts/serializers/account/account.py:91
#: accounts/serializers/automations/base.py:54 acls/models/command_acl.py:24 #: accounts/serializers/automations/base.py:54 acls/models/command_acl.py:24
#: acls/serializers/command_acl.py:18 applications/models.py:14 #: acls/serializers/command_acl.py:18 applications/models.py:14
#: assets/models/_user.py:50 assets/models/automations/base.py:20 #: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:78 #: assets/models/cmd_filter.py:74 assets/models/platform.py:66
#: assets/serializers/asset/common.py:128 assets/serializers/platform.py:92 #: assets/serializers/asset/common.py:132 assets/serializers/platform.py:91
#: audits/serializers.py:48 #: audits/serializers.py:48
#: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102 #: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31
@ -571,15 +572,15 @@ msgstr "类别"
msgid "Type" msgid "Type"
msgstr "类型" msgstr "类型"
#: accounts/serializers/account/account.py:98 #: accounts/serializers/account/account.py:106
msgid "Asset not found" msgid "Asset not found"
msgstr "资产不存在" msgstr "资产不存在"
#: accounts/serializers/account/account.py:110 ops/models/base.py:19 #: accounts/serializers/account/account.py:118 ops/models/base.py:19
msgid "Account policy" msgid "Account policy"
msgstr "账号策略" msgstr "账号策略"
#: accounts/serializers/account/account.py:177 acls/models/base.py:98 #: accounts/serializers/account/account.py:185 acls/models/base.py:98
#: acls/models/login_acl.py:13 acls/serializers/base.py:55 #: acls/models/login_acl.py:13 acls/serializers/base.py:55
#: acls/serializers/login_acl.py:21 assets/models/cmd_filter.py:24 #: acls/serializers/login_acl.py:21 assets/models/cmd_filter.py:24
#: assets/models/label.py:16 audits/models.py:44 audits/models.py:63 #: assets/models/label.py:16 audits/models.py:44 audits/models.py:63
@ -597,7 +598,7 @@ msgstr "账号策略"
msgid "User" msgid "User"
msgstr "用户" msgstr "用户"
#: accounts/serializers/account/account.py:178 #: accounts/serializers/account/account.py:186
#: authentication/templates/authentication/_access_key_modal.html:33 #: authentication/templates/authentication/_access_key_modal.html:33
#: terminal/notifications.py:98 terminal/notifications.py:146 #: terminal/notifications.py:98 terminal/notifications.py:146
msgid "Date" msgid "Date"
@ -629,7 +630,7 @@ msgid "Key password"
msgstr "密钥密码" msgstr "密钥密码"
#: accounts/serializers/account/base.py:81 #: accounts/serializers/account/base.py:81
#: assets/serializers/asset/common.py:303 #: assets/serializers/asset/common.py:307
msgid "Spec info" msgid "Spec info"
msgstr "特殊信息" msgstr "特殊信息"
@ -1010,7 +1011,7 @@ msgid "Device"
msgstr "网络设备" msgstr "网络设备"
#: assets/const/category.py:13 assets/models/asset/database.py:9 #: assets/const/category.py:13 assets/models/asset/database.py:9
#: assets/models/asset/database.py:24 assets/serializers/asset/common.py:115 #: assets/models/asset/database.py:24 assets/serializers/asset/common.py:119
msgid "Database" msgid "Database"
msgstr "数据库" msgstr "数据库"
@ -1074,7 +1075,7 @@ msgid "Basic"
msgstr "基本" msgstr "基本"
#: assets/const/web.py:61 assets/models/asset/web.py:13 #: assets/const/web.py:61 assets/models/asset/web.py:13
#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:39 #: assets/serializers/asset/common.py:127 assets/serializers/platform.py:39
msgid "Script" msgid "Script"
msgstr "脚本" msgstr "脚本"
@ -1197,17 +1198,17 @@ msgstr "可以匹配系统用户"
msgid "Cloud" msgid "Cloud"
msgstr "云服务" msgstr "云服务"
#: assets/models/asset/common.py:91 assets/models/platform.py:22 #: assets/models/asset/common.py:91 assets/models/platform.py:14
#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:68 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:68
#: xpack/plugins/cloud/serializers/account_attrs.py:73 #: xpack/plugins/cloud/serializers/account_attrs.py:73
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
#: assets/models/asset/common.py:103 assets/serializers/asset/common.py:152 #: assets/models/asset/common.py:103 assets/serializers/asset/common.py:156
msgid "Address" msgid "Address"
msgstr "地址" msgstr "地址"
#: assets/models/asset/common.py:104 assets/models/platform.py:112 #: assets/models/asset/common.py:104 assets/models/platform.py:95
#: authentication/serializers/connect_token_secret.py:108 #: authentication/serializers/connect_token_secret.py:108
#: perms/serializers/user_permission.py:24 #: perms/serializers/user_permission.py:24
#: xpack/plugins/cloud/serializers/account_attrs.py:197 #: xpack/plugins/cloud/serializers/account_attrs.py:197
@ -1228,23 +1229,23 @@ msgstr "标签管理"
msgid "Info" msgid "Info"
msgstr "信息" msgstr "信息"
#: assets/models/asset/common.py:283 #: assets/models/asset/common.py:264
msgid "Can refresh asset hardware info" msgid "Can refresh asset hardware info"
msgstr "可以更新资产硬件信息" msgstr "可以更新资产硬件信息"
#: assets/models/asset/common.py:284 #: assets/models/asset/common.py:265
msgid "Can test asset connectivity" msgid "Can test asset connectivity"
msgstr "可以测试资产连接性" msgstr "可以测试资产连接性"
#: assets/models/asset/common.py:285 #: assets/models/asset/common.py:266
msgid "Can match asset" msgid "Can match asset"
msgstr "可以匹配资产" msgstr "可以匹配资产"
#: assets/models/asset/common.py:286 #: assets/models/asset/common.py:267
msgid "Can change asset nodes" msgid "Can change asset nodes"
msgstr "可以修改资产节点" msgstr "可以修改资产节点"
#: assets/models/asset/database.py:10 assets/serializers/asset/common.py:116 #: assets/models/asset/database.py:10 assets/serializers/asset/common.py:120
#: settings/serializers/email.py:37 #: settings/serializers/email.py:37
msgid "Use SSL" msgid "Use SSL"
msgstr "使用 SSL" msgstr "使用 SSL"
@ -1261,7 +1262,7 @@ msgstr "客户端证书"
msgid "Client key" msgid "Client key"
msgstr "客户端密钥" msgstr "客户端密钥"
#: assets/models/asset/database.py:14 assets/serializers/asset/common.py:117 #: assets/models/asset/database.py:14 assets/serializers/asset/common.py:121
msgid "Allow invalid cert" msgid "Allow invalid cert"
msgstr "忽略证书校验" msgstr "忽略证书校验"
@ -1269,23 +1270,23 @@ msgstr "忽略证书校验"
msgid "Autofill" msgid "Autofill"
msgstr "自动代填" msgstr "自动代填"
#: assets/models/asset/web.py:10 assets/serializers/asset/common.py:120 #: assets/models/asset/web.py:10 assets/serializers/asset/common.py:124
#: assets/serializers/platform.py:31 #: assets/serializers/platform.py:31
msgid "Username selector" msgid "Username selector"
msgstr "用户名选择器" msgstr "用户名选择器"
#: assets/models/asset/web.py:11 assets/serializers/asset/common.py:121 #: assets/models/asset/web.py:11 assets/serializers/asset/common.py:125
#: assets/serializers/platform.py:34 #: assets/serializers/platform.py:34
msgid "Password selector" msgid "Password selector"
msgstr "密码选择器" msgstr "密码选择器"
#: assets/models/asset/web.py:12 assets/serializers/asset/common.py:122 #: assets/models/asset/web.py:12 assets/serializers/asset/common.py:126
#: assets/serializers/platform.py:37 #: assets/serializers/platform.py:37
msgid "Submit selector" msgid "Submit selector"
msgstr "确认按钮选择器" msgstr "确认按钮选择器"
#: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38 #: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38
#: assets/serializers/asset/common.py:302 rbac/tree.py:35 #: assets/serializers/asset/common.py:306 rbac/tree.py:35
msgid "Accounts" msgid "Accounts"
msgstr "账号管理" msgstr "账号管理"
@ -1358,7 +1359,7 @@ msgstr "命令过滤规则"
msgid "Favorite asset" msgid "Favorite asset"
msgstr "收藏的资产" msgstr "收藏的资产"
#: assets/models/gateway.py:35 assets/serializers/domain.py:16 #: assets/models/gateway.py:34 assets/serializers/domain.py:16
msgid "Gateway" msgid "Gateway"
msgstr "网关" msgstr "网关"
@ -1366,7 +1367,7 @@ msgstr "网关"
msgid "Asset group" msgid "Asset group"
msgstr "资产组" msgstr "资产组"
#: assets/models/group.py:34 assets/models/platform.py:19 #: assets/models/group.py:34 assets/models/platform.py:17
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "默认" msgstr "默认"
@ -1387,7 +1388,7 @@ msgstr "系统"
msgid "Value" msgid "Value"
msgstr "值" msgstr "值"
#: assets/models/label.py:40 assets/serializers/asset/common.py:129 #: assets/models/label.py:40 assets/serializers/asset/common.py:133
#: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13 #: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13
#: authentication/serializers/connect_token_secret.py:114 #: authentication/serializers/connect_token_secret.py:114
#: common/serializers/common.py:79 settings/serializers/sms.py:7 #: common/serializers/common.py:79 settings/serializers/sms.py:7
@ -1423,91 +1424,95 @@ msgstr "节点"
msgid "Can match node" msgid "Can match node"
msgstr "可以匹配节点" msgstr "可以匹配节点"
#: assets/models/platform.py:20 #: assets/models/platform.py:15
msgid "Primary"
msgstr "主要的"
#: assets/models/platform.py:16
msgid "Required" msgid "Required"
msgstr "必须的" msgstr "必须的"
#: assets/models/platform.py:23 settings/serializers/settings.py:65 #: assets/models/platform.py:18 settings/serializers/settings.py:65
#: users/templates/users/reset_password.html:29 #: users/templates/users/reset_password.html:29
msgid "Setting" msgid "Setting"
msgstr "设置" msgstr "设置"
#: assets/models/platform.py:42 audits/const.py:47 settings/models.py:37 #: assets/models/platform.py:30 audits/const.py:47 settings/models.py:37
#: terminal/serializers/applet_host.py:29 #: terminal/serializers/applet_host.py:29
msgid "Enabled" msgid "Enabled"
msgstr "启用" msgstr "启用"
#: assets/models/platform.py:43 #: assets/models/platform.py:31
msgid "Ansible config" msgid "Ansible config"
msgstr "Ansible 配置" msgstr "Ansible 配置"
#: assets/models/platform.py:44 assets/serializers/platform.py:60 #: assets/models/platform.py:32 assets/serializers/platform.py:60
msgid "Ping enabled" msgid "Ping enabled"
msgstr "启用资产探活" msgstr "启用资产探活"
#: assets/models/platform.py:45 assets/serializers/platform.py:61 #: assets/models/platform.py:33 assets/serializers/platform.py:61
msgid "Ping method" msgid "Ping method"
msgstr "资产探活方式" msgstr "资产探活方式"
#: assets/models/platform.py:46 assets/models/platform.py:59 #: assets/models/platform.py:34 assets/models/platform.py:47
#: assets/serializers/platform.py:62 #: assets/serializers/platform.py:62
msgid "Gather facts enabled" msgid "Gather facts enabled"
msgstr "启用收集资产信息" msgstr "启用收集资产信息"
#: assets/models/platform.py:47 assets/models/platform.py:61 #: assets/models/platform.py:35 assets/models/platform.py:49
#: assets/serializers/platform.py:63 #: assets/serializers/platform.py:63
msgid "Gather facts method" msgid "Gather facts method"
msgstr "收集信息方式" msgstr "收集信息方式"
#: assets/models/platform.py:48 assets/serializers/platform.py:66 #: assets/models/platform.py:36 assets/serializers/platform.py:66
msgid "Change secret enabled" msgid "Change secret enabled"
msgstr "启用改密" msgstr "启用改密"
#: assets/models/platform.py:50 assets/serializers/platform.py:67 #: assets/models/platform.py:38 assets/serializers/platform.py:67
msgid "Change secret method" msgid "Change secret method"
msgstr "改密方式" msgstr "改密方式"
#: assets/models/platform.py:52 assets/serializers/platform.py:68 #: assets/models/platform.py:40 assets/serializers/platform.py:68
msgid "Push account enabled" msgid "Push account enabled"
msgstr "启用账号推送" msgstr "启用账号推送"
#: assets/models/platform.py:54 assets/serializers/platform.py:69 #: assets/models/platform.py:42 assets/serializers/platform.py:69
msgid "Push account method" msgid "Push account method"
msgstr "账号推送方式" msgstr "账号推送方式"
#: assets/models/platform.py:56 assets/serializers/platform.py:64 #: assets/models/platform.py:44 assets/serializers/platform.py:64
msgid "Verify account enabled" msgid "Verify account enabled"
msgstr "开启账号验证" msgstr "开启账号验证"
#: assets/models/platform.py:58 assets/serializers/platform.py:65 #: assets/models/platform.py:46 assets/serializers/platform.py:65
msgid "Verify account method" msgid "Verify account method"
msgstr "账号验证方式" msgstr "账号验证方式"
#: assets/models/platform.py:79 tickets/models/ticket/general.py:300 #: assets/models/platform.py:67 tickets/models/ticket/general.py:300
msgid "Meta" msgid "Meta"
msgstr "元数据" msgstr "元数据"
#: assets/models/platform.py:80 #: assets/models/platform.py:68
msgid "Internal" msgid "Internal"
msgstr "内置" msgstr "内置"
#: assets/models/platform.py:83 assets/serializers/platform.py:90 #: assets/models/platform.py:71 assets/serializers/platform.py:89
msgid "Charset" msgid "Charset"
msgstr "编码" msgstr "编码"
#: assets/models/platform.py:85 assets/serializers/platform.py:118 #: assets/models/platform.py:73 assets/serializers/platform.py:117
msgid "Domain enabled" msgid "Domain enabled"
msgstr "启用网域" msgstr "启用网域"
#: assets/models/platform.py:87 assets/serializers/platform.py:117 #: assets/models/platform.py:75 assets/serializers/platform.py:116
msgid "Su enabled" msgid "Su enabled"
msgstr "启用账号切换" msgstr "启用账号切换"
#: assets/models/platform.py:88 assets/serializers/platform.py:100 #: assets/models/platform.py:76 assets/serializers/platform.py:99
msgid "Su method" msgid "Su method"
msgstr "账号切换方式" msgstr "账号切换方式"
#: assets/models/platform.py:90 assets/serializers/platform.py:97 #: assets/models/platform.py:78 assets/serializers/platform.py:96
msgid "Automation" msgid "Automation"
msgstr "自动化" msgstr "自动化"
@ -1522,36 +1527,36 @@ msgid ""
"type" "type"
msgstr "资产中批量更新平台,不符合平台类型跳过的资产" msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: assets/serializers/asset/common.py:119 #: assets/serializers/asset/common.py:123
msgid "Auto fill" msgid "Auto fill"
msgstr "自动代填" msgstr "自动代填"
#: assets/serializers/asset/common.py:130 assets/serializers/platform.py:95 #: assets/serializers/asset/common.py:134 assets/serializers/platform.py:94
#: authentication/serializers/connect_token_secret.py:28 #: authentication/serializers/connect_token_secret.py:28
#: authentication/serializers/connect_token_secret.py:66 #: authentication/serializers/connect_token_secret.py:66
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99 #: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99
msgid "Protocols" msgid "Protocols"
msgstr "协议组" msgstr "协议组"
#: assets/serializers/asset/common.py:132 #: assets/serializers/asset/common.py:136
#: assets/serializers/asset/common.py:153 #: assets/serializers/asset/common.py:157
msgid "Node path" msgid "Node path"
msgstr "节点路径" msgstr "节点路径"
#: assets/serializers/asset/common.py:150 #: assets/serializers/asset/common.py:154
#: assets/serializers/asset/common.py:304 #: assets/serializers/asset/common.py:308
msgid "Auto info" msgid "Auto info"
msgstr "自动化信息" msgstr "自动化信息"
#: assets/serializers/asset/common.py:228 #: assets/serializers/asset/common.py:232
msgid "Platform not exist" msgid "Platform not exist"
msgstr "平台不存在" msgstr "平台不存在"
#: assets/serializers/asset/common.py:263 #: assets/serializers/asset/common.py:267
msgid "port out of range (1-65535)" msgid "port out of range (1-65535)"
msgstr "端口超出范围 (1-65535)" msgstr "端口超出范围 (1-65535)"
#: assets/serializers/asset/common.py:270 #: assets/serializers/asset/common.py:274
msgid "Protocol is required: {}" msgid "Protocol is required: {}"
msgstr "协议是必填的: {}" msgstr "协议是必填的: {}"
@ -1660,11 +1665,7 @@ msgstr "启用账号收集"
msgid "Gather accounts method" msgid "Gather accounts method"
msgstr "收集账号方式" msgstr "收集账号方式"
#: assets/serializers/platform.py:77 #: assets/serializers/platform.py:118
msgid "Primary"
msgstr "主要的"
#: assets/serializers/platform.py:119
msgid "Default Domain" msgid "Default Domain"
msgstr "默认网域" msgstr "默认网域"
@ -3141,19 +3142,24 @@ msgstr "不能包含特殊字符"
msgid "The mobile phone number format is incorrect" msgid "The mobile phone number format is incorrect"
msgstr "手机号格式不正确" msgstr "手机号格式不正确"
#: common/views/mixins.py:58 #: common/views/mixins.py:73
msgid "Export all" msgid "Export all"
msgstr "导出所有" msgstr "导出所有"
#: common/views/mixins.py:60 #: common/views/mixins.py:75
msgid "Export only selected items" msgid "Export only selected items"
msgstr "仅导出选择项" msgstr "仅导出选择项"
#: common/views/mixins.py:65 #: common/views/mixins.py:80
#, python-format #, python-format
msgid "Export filtered: %s" msgid "Export filtered: %s"
msgstr "导出搜素: %s" msgstr "导出搜素: %s"
#: common/views/mixins.py:90
#, python-format
msgid "User %s view/export secret"
msgstr "用户 %s 查看/导出 了密码"
#: jumpserver/conf.py:416 #: jumpserver/conf.py:416
msgid "Create account successfully" msgid "Create account successfully"
msgstr "创建账号成功" msgstr "创建账号成功"
@ -3225,11 +3231,11 @@ msgstr "发布站内消息"
msgid "No account available" msgid "No account available"
msgstr "无可用账号" msgstr "无可用账号"
#: ops/ansible/inventory.py:196 #: ops/ansible/inventory.py:209
msgid "Ansible disabled" msgid "Ansible disabled"
msgstr "Ansible 已禁用" msgstr "Ansible 已禁用"
#: ops/ansible/inventory.py:212 #: ops/ansible/inventory.py:225
msgid "Skip hosts below:" msgid "Skip hosts below:"
msgstr "跳过以下主机: " msgstr "跳过以下主机: "
@ -4872,42 +4878,38 @@ msgid "Remember manual auth"
msgstr "保存手动输入密码" msgstr "保存手动输入密码"
#: settings/serializers/security.py:172 #: settings/serializers/security.py:172
msgid "Enable change auth secure mode"
msgstr "启用改密安全模式"
#: settings/serializers/security.py:175
msgid "Insecure command alert" msgid "Insecure command alert"
msgstr "危险命令告警" msgstr "危险命令告警"
#: settings/serializers/security.py:178 #: settings/serializers/security.py:175
msgid "Email recipient" msgid "Email recipient"
msgstr "邮件收件人" msgstr "邮件收件人"
#: settings/serializers/security.py:179 #: settings/serializers/security.py:176
msgid "Multiple user using , split" msgid "Multiple user using , split"
msgstr "多个用户,使用 , 分割" msgstr "多个用户,使用 , 分割"
#: settings/serializers/security.py:182 #: settings/serializers/security.py:179
msgid "Operation center" msgid "Operation center"
msgstr "作业中心" msgstr "作业中心"
#: settings/serializers/security.py:183 #: settings/serializers/security.py:180
msgid "Allow user run batch command or not using ansible" msgid "Allow user run batch command or not using ansible"
msgstr "是否允许用户使用 ansible 执行批量命令" msgstr "是否允许用户使用 ansible 执行批量命令"
#: settings/serializers/security.py:186 #: settings/serializers/security.py:183
msgid "Session share" msgid "Session share"
msgstr "会话分享" msgstr "会话分享"
#: settings/serializers/security.py:187 #: settings/serializers/security.py:184
msgid "Enabled, Allows user active session to be shared with other users" msgid "Enabled, Allows user active session to be shared with other users"
msgstr "开启后允许用户分享已连接的资产会话给他人,协同工作" msgstr "开启后允许用户分享已连接的资产会话给他人,协同工作"
#: settings/serializers/security.py:190 #: settings/serializers/security.py:187
msgid "Remote Login Protection" msgid "Remote Login Protection"
msgstr "异地登录保护" msgstr "异地登录保护"
#: settings/serializers/security.py:192 #: settings/serializers/security.py:189
msgid "" msgid ""
"The system determines whether the login IP address belongs to a common login " "The system determines whether the login IP address belongs to a common login "
"city. If the account is logged in from a common login city, the system sends " "city. If the account is logged in from a common login city, the system sends "