perf: 修改 protocol setting (#10875)

* feat: 新增账号配置

* perf: 修改 platform protocol define

* perf: 修改 account config

* perf: 修改协议设置

---------

Co-authored-by: ibuler <ibuler@qq.com>
pull/10876/head
fit2bot 2023-06-30 15:54:06 +08:00 committed by GitHub
parent 6962430e6a
commit bbbd011cc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 570 additions and 400 deletions

View File

@ -1,3 +1,3 @@
from .base import *
from .account import *
from .automations import *
from .base import *

View File

@ -78,5 +78,8 @@ class BaseAccountSerializer(AuthValidateMixin, BulkOrgResourceModelSerializer):
]
extra_kwargs = {
'spec_info': {'label': _('Spec info')},
'username': {'help_text': _("Tip: If no username is required for authentication, fill in `null`")}
'username': {'help_text': _(
"Tip: If no username is required for authentication, fill in `null`, "
"If AD account, like `username@domain`"
)},
}

View File

@ -4,20 +4,20 @@ from rest_framework.decorators import action
from rest_framework.response import Response
from assets.const import AllTypes
from assets.models import Platform, Node, Asset
from assets.serializers import PlatformSerializer
from assets.models import Platform, Node, Asset, PlatformProtocol
from assets.serializers import PlatformSerializer, PlatformProtocolSerializer
from common.api import JMSModelViewSet
from common.permissions import IsValidUser
from common.serializers import GroupedChoiceSerializer
__all__ = ['AssetPlatformViewSet', 'PlatformAutomationMethodsApi']
__all__ = ['AssetPlatformViewSet', 'PlatformAutomationMethodsApi', 'PlatformProtocolViewSet']
class AssetPlatformViewSet(JMSModelViewSet):
queryset = Platform.objects.all()
serializer_classes = {
'default': PlatformSerializer,
'categories': GroupedChoiceSerializer
'categories': GroupedChoiceSerializer,
}
filterset_fields = ['name', 'category', 'type']
search_fields = ['name']
@ -25,7 +25,7 @@ class AssetPlatformViewSet(JMSModelViewSet):
'categories': 'assets.view_platform',
'type_constraints': 'assets.view_platform',
'ops_methods': 'assets.view_platform',
'filter_nodes_assets': 'assets.view_platform'
'filter_nodes_assets': 'assets.view_platform',
}
def get_queryset(self):
@ -61,6 +61,15 @@ class AssetPlatformViewSet(JMSModelViewSet):
return Response(serializer.data)
class PlatformProtocolViewSet(JMSModelViewSet):
queryset = PlatformProtocol.objects.all()
serializer_class = PlatformProtocolSerializer
filterset_fields = ['name', 'platform__name']
rbac_perms = {
'*': 'assets.add_platform'
}
class PlatformAutomationMethodsApi(generics.ListAPIView):
permission_classes = (IsValidUser,)

View File

@ -1,7 +1,8 @@
from django.db import models
from django.db.models import TextChoices
from django.utils.translation import gettext_lazy as _
from jumpserver.utils import has_valid_xpack_license
from .protocol import Protocol
class Type:
@ -28,6 +29,12 @@ class Type:
)
class FillType(models.TextChoices):
no = 'no', _('Disabled')
basic = 'basic', _('Basic')
script = 'script', _('Script')
class BaseType(TextChoices):
"""
约束应该考虑代是对平台对限制避免多余对选项: mysql 开启 ssh,
@ -57,6 +64,7 @@ class BaseType(TextChoices):
@classmethod
def _parse_protocols(cls, protocol, tp):
from .protocol import Protocol
settings = Protocol.settings()
choices = protocol.get('choices', [])
if choices == '__self__':

View File

@ -1,6 +1,8 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from common.db.models import ChoicesMixin
from .base import FillType
__all__ = ['Protocol']
@ -22,8 +24,7 @@ class Protocol(ChoicesMixin, models.TextChoices):
mongodb = 'mongodb', 'MongoDB'
k8s = 'k8s', 'K8S'
http = 'http', 'HTTP'
_settings = None
http = 'http', 'HTTP(s)'
@classmethod
def device_protocols(cls):
@ -32,16 +33,40 @@ class Protocol(ChoicesMixin, models.TextChoices):
'port': 22,
'secret_types': ['password', 'ssh_key'],
'setting': {
'sftp_enabled': True,
'sftp_home': '/tmp',
'sftp_enabled': {
'type': 'bool',
'default': True,
'label': _('SFTP enabled')
},
'sftp_home': {
'type': 'str',
'default': '/tmp',
'label': _('SFTP home')
},
}
},
cls.rdp: {
'port': 3389,
'secret_types': ['password'],
'setting': {
'console': False,
'security': 'any',
'console': {
'type': 'bool',
'default': False,
'label': _('Console'),
'help_text': _("Connect to console session")
},
'security': {
'type': 'choice',
'choices': [('any', _('Any')), ('rdp', 'RDP'), ('tls', 'TLS'), ('nla', 'NLA')],
'default': 'any',
'label': _('Security'),
'help_text': _("Security layer to use for the connection")
},
# 'ad_domain': {
# 'type': 'str',
# "required": False,
# 'label': _('AD domain')
# }
}
},
cls.vnc: {
@ -56,7 +81,11 @@ class Protocol(ChoicesMixin, models.TextChoices):
'port': 5985,
'secret_types': ['password'],
'setting': {
'use_ssl': False,
'use_ssl': {
'type': 'bool',
'default': False,
'label': _('Use SSL')
},
}
},
}
@ -105,7 +134,11 @@ class Protocol(ChoicesMixin, models.TextChoices):
'required': True,
'secret_types': ['password'],
'setting': {
'auth_username': True,
'auth_username': {
'type': 'bool',
'default': False,
'label': _('Auth username')
},
}
},
}
@ -121,10 +154,28 @@ class Protocol(ChoicesMixin, models.TextChoices):
cls.http: {
'port': 80,
'secret_types': ['password'],
'label': 'HTTP(s)',
'setting': {
'username_selector': 'name=username',
'password_selector': 'name=password',
'submit_selector': 'id=login_button',
'autofill': {
'type': 'choice',
'choices': FillType.choices,
'default': 'basic',
},
'username_selector': {
'type': 'str',
'default': 'name=username',
'label': _('Username selector')
},
'password_selector': {
'type': 'str',
'default': 'name=password',
'label': _('Password selector')
},
'submit_selector': {
'type': 'str',
'default': 'type=submit',
'label': _('Submit selector')
}
}
},
}

View File

@ -1,4 +1,3 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from .base import BaseType
@ -53,9 +52,3 @@ class WebTypes(BaseType):
return [
cls.WEBSITE,
]
class FillType(models.TextChoices):
no = 'no', _('Disabled')
basic = 'basic', _('Basic')
script = 'script', _('Script')

View File

@ -1,7 +1,7 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from assets.const.web import FillType
from assets.const import FillType
from .common import Asset

View File

@ -1,7 +1,7 @@
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from assets.const.web import FillType
from assets.const import FillType
from assets.models import Database, Web
from common.serializers.fields import LabeledChoiceField
@ -14,6 +14,7 @@ class DatabaseSpecSerializer(serializers.ModelSerializer):
class WebSpecSerializer(serializers.ModelSerializer):
autofill = LabeledChoiceField(choices=FillType.choices, label=_('Autofill'))
class Meta:
model = Web
fields = [

View File

@ -1,48 +1,17 @@
from django.db.models import QuerySet
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from assets.const.web import FillType
from common.serializers import WritableNestedModelSerializer, type_field_map
from common.serializers import (
WritableNestedModelSerializer, type_field_map, MethodSerializer,
DictSerializer, create_serializer_class
)
from common.serializers.fields import LabeledChoiceField
from common.utils import lazyproperty
from ..const import Category, AllTypes
from ..const import Category, AllTypes, Protocol
from ..models import Platform, PlatformProtocol, PlatformAutomation
__all__ = ["PlatformSerializer", "PlatformOpsMethodSerializer"]
class ProtocolSettingSerializer(serializers.Serializer):
SECURITY_CHOICES = [
("any", "Any"),
("rdp", "RDP"),
("tls", "TLS"),
("nla", "NLA"),
]
# RDP
console = serializers.BooleanField(required=False, default=False)
security = serializers.ChoiceField(choices=SECURITY_CHOICES, default="any")
# SFTP
sftp_enabled = serializers.BooleanField(default=True, label=_("SFTP enabled"))
sftp_home = serializers.CharField(default="/tmp", label=_("SFTP home"))
# HTTP
autofill = serializers.ChoiceField(default='basic', choices=FillType.choices, label=_("Autofill"))
username_selector = serializers.CharField(
default="", allow_blank=True, label=_("Username selector")
)
password_selector = serializers.CharField(
default="", allow_blank=True, label=_("Password selector")
)
submit_selector = serializers.CharField(
default="", allow_blank=True, label=_("Submit selector")
)
script = serializers.JSONField(default=list, label=_("Script"))
# Redis
auth_username = serializers.BooleanField(default=False, label=_("Auth with username"))
# WinRM
use_ssl = serializers.BooleanField(default=False, label=_("Use SSL"))
__all__ = ["PlatformSerializer", "PlatformOpsMethodSerializer", "PlatformProtocolSerializer"]
class PlatformAutomationSerializer(serializers.ModelSerializer):
@ -76,7 +45,7 @@ class PlatformAutomationSerializer(serializers.ModelSerializer):
class PlatformProtocolSerializer(serializers.ModelSerializer):
setting = ProtocolSettingSerializer(required=False, allow_null=True)
setting = MethodSerializer(required=False, label=_("Setting"))
class Meta:
model = PlatformProtocol
@ -85,6 +54,47 @@ class PlatformProtocolSerializer(serializers.ModelSerializer):
"required", "default", "public",
"secret_types", "setting",
]
extra_kwargs = {
"primary": {
"help_text": _(
"This protocol is primary, and it must be set when adding assets. "
"Additionally, there can only be one primary protocol."
)
},
"required": {
"help_text": _("This protocol is required, and it must be set when adding assets.")
},
"default": {
"help_text": _("This protocol is default, when adding assets, it will be displayed by default.")
},
"public": {
"help_text": _("This protocol is public, asset will show this protocol to user")
},
}
def get_setting_serializer(self):
request = self.context.get('request')
default_field = DictSerializer()
if not request:
return default_field
if self.instance and isinstance(self.instance, (QuerySet, list)):
instance = self.instance[0]
else:
instance = self.instance
protocol = request.query_params.get('name', '')
if instance and not protocol:
protocol = instance.name
protocol_settings = Protocol.settings()
setting_fields = protocol_settings.get(protocol, {}).get('setting')
if not setting_fields:
return default_field
setting_fields = [{'name': k, **v} for k, v in setting_fields.items()]
name = '{}ProtocolSettingSerializer'.format(protocol.capitalize())
return create_serializer_class(name, setting_fields)()
def to_file_representation(self, data):
return '{name}/{port}'.format(**data)

View File

@ -21,6 +21,7 @@ router.register(r'nodes', api.NodeViewSet, 'node')
router.register(r'domains', api.DomainViewSet, 'domain')
router.register(r'gateways', api.GatewayViewSet, 'gateway')
router.register(r'favorite-assets', api.FavoriteAssetViewSet, 'favorite-asset')
router.register(r'protocol-settings', api.PlatformProtocolViewSet, 'protocol-setting')
urlpatterns = [
# path('assets/<uuid:pk>/gateways/', api.AssetGatewayListApi.as_view(), name='asset-gateway-list'),
@ -46,7 +47,8 @@ urlpatterns = [
path('nodes/<uuid:pk>/tasks/', api.NodeTaskCreateApi.as_view(), name='node-task-create'),
path('gateways/<uuid:pk>/test-connective/', api.GatewayTestConnectionApi.as_view(), name='test-gateway-connective'),
path('platform-automation-methods/', api.PlatformAutomationMethodsApi.as_view(), name='platform-automation-methods'),
path('platform-automation-methods/', api.PlatformAutomationMethodsApi.as_view(),
name='platform-automation-methods'),
]
urlpatterns += router.urls

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cd4fb6a0396c8636f8a36645354a5102790c020d73cdeb1f0e1d1f1b34ea39e9
size 145760
oid sha256:b0588a31da5eccf0c1408abb00126f3f5cff58c26c5995c1daf3d2d071d06abe
size 146993

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-15 15:35+0800\n"
"POT-Creation-Date: 2023-06-30 15:41+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -87,7 +87,7 @@ msgstr "更新"
#: accounts/const/account.py:27
#: accounts/serializers/automations/change_secret.py:156 audits/const.py:54
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:19
#: ops/const.py:58 terminal/const.py:61 xpack/plugins/cloud/const.py:41
#: ops/const.py:58 terminal/const.py:62 xpack/plugins/cloud/const.py:41
msgid "Failed"
msgstr "失敗しました"
@ -187,11 +187,11 @@ msgstr "作成のみ"
#: accounts/serializers/automations/change_secret.py:112
#: accounts/serializers/automations/change_secret.py:132
#: acls/serializers/base.py:118 assets/models/asset/common.py:93
#: assets/models/asset/common.py:332 assets/models/cmd_filter.py:36
#: assets/models/asset/common.py:331 assets/models/cmd_filter.py:36
#: assets/serializers/domain.py:19 assets/serializers/label.py:27
#: audits/models.py:53 authentication/models/connection_token.py:35
#: perms/models/asset_permission.py:64 perms/serializers/permission.py:34
#: terminal/backends/command/models.py:20 terminal/models/session/session.py:32
#: terminal/backends/command/models.py:20 terminal/models/session/session.py:31
#: terminal/notifications.py:95 terminal/serializers/command.py:17
#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:212
msgid "Asset"
@ -225,7 +225,7 @@ msgstr "ソース ID"
#: acls/serializers/base.py:119 assets/serializers/asset/common.py:125
#: assets/serializers/gateway.py:28 audits/models.py:54 ops/models/base.py:18
#: 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:33
#: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85
msgid "Account"
msgstr "アカウント"
@ -279,7 +279,7 @@ msgstr "アカウントバックアップ計画"
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:192
#: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:72 terminal/models/applet/host.py:137
#: terminal/models/session/session.py:45
#: terminal/models/session/session.py:44
#: tickets/models/ticket/apply_application.py:30
#: tickets/models/ticket/apply_asset.py:19
msgid "Date start"
@ -311,7 +311,7 @@ msgstr "理由"
#: accounts/models/automations/backup_account.py:99
#: accounts/serializers/automations/change_secret.py:111
#: accounts/serializers/automations/change_secret.py:134
#: ops/serializers/job.py:56 terminal/serializers/session.py:46
#: ops/serializers/job.py:56 terminal/serializers/session.py:43
msgid "Is success"
msgstr "成功は"
@ -479,10 +479,10 @@ msgstr "アカウントの確認"
#: applications/models.py:9 assets/models/_user.py:22
#: assets/models/asset/common.py:91 assets/models/asset/common.py:149
#: 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:17 assets/models/label.py:18
#: assets/models/platform.py:13 assets/models/platform.py:81
#: assets/serializers/asset/common.py:145 assets/serializers/platform.py:99
#: assets/serializers/platform.py:199
#: assets/serializers/asset/common.py:145 assets/serializers/platform.py:109
#: assets/serializers/platform.py:209
#: authentication/serializers/connect_token_secret.py:110 ops/mixin.py:21
#: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:92 ops/models/playbook.py:23 ops/serializers/job.py:20
@ -505,7 +505,8 @@ msgstr "特権アカウント"
#: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39
#: assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:114
#: terminal/models/applet/applet.py:39 users/serializers/user.py:169
#: terminal/models/applet/applet.py:39
#: terminal/models/component/endpoint.py:101 users/serializers/user.py:169
msgid "Is active"
msgstr "アクティブです。"
@ -561,7 +562,7 @@ msgstr "アカウントの存在ポリシー"
#: accounts/serializers/account/account.py:180 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:82
#: assets/serializers/asset/common.py:121 assets/serializers/cagegory.py:8
#: assets/serializers/platform.py:117 assets/serializers/platform.py:200
#: assets/serializers/platform.py:127 assets/serializers/platform.py:210
#: perms/serializers/user_permission.py:26 settings/models.py:35
#: tickets/models/ticket/apply_application.py:13
msgid "Category"
@ -572,13 +573,13 @@ msgstr "カテゴリ"
#: acls/serializers/command_acl.py:18 applications/models.py:14
#: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:83
#: assets/serializers/asset/common.py:122 assets/serializers/platform.py:101
#: assets/serializers/platform.py:116 audits/serializers.py:48
#: assets/serializers/asset/common.py:122 assets/serializers/platform.py:111
#: assets/serializers/platform.py:126 audits/serializers.py:48
#: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:103
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:38
#: terminal/models/component/storage.py:57
#: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29
#: terminal/serializers/session.py:23 terminal/serializers/storage.py:224
#: terminal/serializers/session.py:20 terminal/serializers/storage.py:224
#: terminal/serializers/storage.py:236 tickets/models/comment.py:26
#: tickets/models/flow.py:56 tickets/models/ticket/apply_application.py:16
#: tickets/models/ticket/general.py:275 tickets/serializers/flow.py:53
@ -644,7 +645,7 @@ msgstr "ID"
#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58
#: perms/serializers/permission.py:30 rbac/builtin.py:122
#: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:19
#: terminal/models/session/session.py:30 terminal/models/session/sharing.py:32
#: terminal/models/session/session.py:29 terminal/models/session/sharing.py:32
#: terminal/notifications.py:96 terminal/notifications.py:144
#: terminal/serializers/command.py:16 tickets/models/comment.py:21
#: users/const.py:14 users/models/user.py:947 users/models/user.py:978
@ -688,9 +689,13 @@ msgstr "キーパスワード"
msgid "Spec info"
msgstr "特別情報"
#: accounts/serializers/account/base.py:81
msgid "Tip: If no username is required for authentication, fill in `null`"
msgstr "ヒント: 認証にユーザー名が必要ない場合は、null を入力してください"
#: accounts/serializers/account/base.py:82
msgid ""
"Tip: If no username is required for authentication, fill in `null`, If AD "
"account, like `username@domain`"
msgstr ""
"ヒント: 認証にユーザー名が必要ない場合は、`null`を入力します。ADアカウントの"
"場合は、`username@domain`のようになります。"
#: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:155 assets/models/automations/base.py:18
@ -729,7 +734,7 @@ msgstr "自動タスク実行履歴"
#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53
#: 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
#: terminal/const.py:60 terminal/models/session/sharing.py:107
#: terminal/const.py:61 terminal/models/session/sharing.py:107
#: tickets/views/approve.py:114
msgid "Success"
msgstr "成功"
@ -825,8 +830,8 @@ msgid "Accounts"
msgstr "アカウント"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:55 terminal/const.py:68
#: terminal/models/session/session.py:43 terminal/serializers/command.py:18
#: ops/serializers/job.py:55 terminal/const.py:69
#: terminal/models/session/session.py:42 terminal/serializers/command.py:18
#: terminal/templates/terminal/_msg_command_alert.html:12
#: terminal/templates/terminal/_msg_command_execute_alert.html:10
msgid "Command"
@ -964,13 +969,13 @@ msgstr "アプリケーション"
msgid "Can match application"
msgstr "アプリケーションを一致させることができます"
#: assets/api/asset/asset.py:149
#: assets/api/asset/asset.py:153
msgid "Cannot create asset directly, you should create a host or other"
msgstr ""
"資産を直接作成することはできません。ホストまたはその他を作成する必要がありま"
"す"
#: assets/api/domain.py:60
#: assets/api/domain.py:62
msgid "Number required"
msgstr "必要な数"
@ -1044,6 +1049,19 @@ msgstr "テストゲートウェイ"
msgid "Gather facts"
msgstr "資産情報の収集"
#: assets/const/base.py:33 audits/const.py:47
#: terminal/serializers/applet_host.py:32
msgid "Disabled"
msgstr "無効"
#: assets/const/base.py:34 settings/serializers/basic.py:27
msgid "Basic"
msgstr "基本"
#: assets/const/base.py:35 assets/models/asset/web.py:13
msgid "Script"
msgstr "脚本"
#: assets/const/category.py:10 assets/models/asset/host.py:8
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:67
#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17
@ -1106,28 +1124,65 @@ msgstr "ファイアウォール"
msgid "Other"
msgstr "その他"
#: assets/const/types.py:223
#: assets/const/protocol.py:39
msgid "SFTP enabled"
msgstr "SFTP が有効"
#: assets/const/protocol.py:44
msgid "SFTP home"
msgstr "SFTP ルート パス"
#: assets/const/protocol.py:55
msgid "Console"
msgstr "Console"
#: assets/const/protocol.py:56
msgid "Connect to console session"
msgstr "コンソールセッションに接続"
#: assets/const/protocol.py:60
msgid "Any"
msgstr "任意"
#: assets/const/protocol.py:62 settings/serializers/security.py:151
msgid "Security"
msgstr "セキュリティ"
#: assets/const/protocol.py:63
msgid "Security layer to use for the connection"
msgstr "接続に使用するセキュリティ レイヤー"
#: assets/const/protocol.py:87 assets/models/asset/database.py:10
#: settings/serializers/email.py:37
msgid "Use SSL"
msgstr "SSLの使用"
#: assets/const/protocol.py:140
#, fuzzy
#| msgid "Auth with username"
msgid "Auth username"
msgstr "ユーザー名で認証する"
#: assets/const/protocol.py:167 assets/models/asset/web.py:10
msgid "Username selector"
msgstr "ユーザー名ピッカー"
#: assets/const/protocol.py:172 assets/models/asset/web.py:11
msgid "Password selector"
msgstr "パスワードセレクター"
#: assets/const/protocol.py:177 assets/models/asset/web.py:12
msgid "Submit selector"
msgstr "ボタンセレクターを確認する"
#: assets/const/types.py:222
msgid "All types"
msgstr "いろんなタイプ"
#: assets/const/web.py:8
#: assets/const/web.py:7
msgid "Website"
msgstr "Webサイト"
#: assets/const/web.py:59 audits/const.py:47
#: terminal/serializers/applet_host.py:32
msgid "Disabled"
msgstr "無効"
#: assets/const/web.py:60 settings/serializers/basic.py:27
msgid "Basic"
msgstr "基本"
#: assets/const/web.py:61 assets/models/asset/web.py:13
#: assets/serializers/platform.py:40
msgid "Script"
msgstr "脚本"
#: assets/exceptions.py:12
msgid "This function is not supported temporarily"
msgstr "この機能は一時的にサポートされていません"
@ -1141,20 +1196,20 @@ msgid "SSH public key"
msgstr "SSHパブリックキー"
#: assets/models/_user.py:27 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 assets/models/group.py:23
#: assets/models/cmd_filter.py:88 assets/models/group.py:20
#: common/db/models.py:36 ops/models/adhoc.py:27 ops/models/job.py:111
#: ops/models/playbook.py:26 rbac/models/role.py:37 settings/models.py:38
#: terminal/models/applet/applet.py:44 terminal/models/applet/applet.py:244
#: 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/component/endpoint.py:100
#: terminal/models/session/session.py:47 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
#: xpack/plugins/cloud/models.py:35 xpack/plugins/cloud/models.py:111
msgid "Comment"
msgstr "コメント"
#: assets/models/_user.py:28 assets/models/automations/base.py:114
#: assets/models/cmd_filter.py:41 assets/models/group.py:22
#: assets/models/cmd_filter.py:41 assets/models/group.py:19
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:191
#: users/models/user.py:979
msgid "Date created"
@ -1166,7 +1221,7 @@ msgid "Date updated"
msgstr "更新日"
#: assets/models/_user.py:30 assets/models/cmd_filter.py:44
#: assets/models/cmd_filter.py:91 assets/models/group.py:21
#: assets/models/cmd_filter.py:91 assets/models/group.py:18
#: common/db/models.py:32 users/models/user.py:799
#: users/serializers/group.py:29
msgid "Created by"
@ -1194,8 +1249,8 @@ msgstr "ユーザーと同じユーザー名"
#: assets/models/_user.py:52 authentication/models/connection_token.py:40
#: authentication/serializers/connect_token_secret.py:111
#: terminal/models/applet/applet.py:41 terminal/serializers/session.py:21
#: terminal/serializers/session.py:42 terminal/serializers/storage.py:68
#: terminal/models/applet/applet.py:41 terminal/serializers/session.py:18
#: terminal/serializers/session.py:39 terminal/serializers/storage.py:68
msgid "Protocol"
msgstr "プロトコル"
@ -1283,19 +1338,19 @@ msgstr "資産ハードウェア情報の収集"
msgid "Custom info"
msgstr "カスタム属性"
#: assets/models/asset/common.py:335
#: assets/models/asset/common.py:334
msgid "Can refresh asset hardware info"
msgstr "資産ハードウェア情報を更新できます"
#: assets/models/asset/common.py:336
#: assets/models/asset/common.py:335
msgid "Can test asset connectivity"
msgstr "資産接続をテストできます"
#: assets/models/asset/common.py:337
#: assets/models/asset/common.py:336
msgid "Can match asset"
msgstr "アセットを一致させることができます"
#: assets/models/asset/common.py:338
#: assets/models/asset/common.py:337
msgid "Can change asset nodes"
msgstr "資産ノードを変更できます"
@ -1303,11 +1358,6 @@ msgstr "資産ノードを変更できます"
msgid "Custom asset"
msgstr "カスタム アセット"
#: assets/models/asset/database.py:10 assets/serializers/platform.py:45
#: settings/serializers/email.py:37
msgid "Use SSL"
msgstr "SSLの使用"
#: assets/models/asset/database.py:11
msgid "CA cert"
msgstr "CA 証明書"
@ -1325,22 +1375,9 @@ msgid "Allow invalid cert"
msgstr "証明書チェックを無視"
#: assets/models/asset/web.py:9 assets/serializers/asset/info/spec.py:16
#: assets/serializers/platform.py:30
msgid "Autofill"
msgstr "自動充填"
#: assets/models/asset/web.py:10 assets/serializers/platform.py:32
msgid "Username selector"
msgstr "ユーザー名ピッカー"
#: assets/models/asset/web.py:11 assets/serializers/platform.py:35
msgid "Password selector"
msgstr "パスワードセレクター"
#: assets/models/asset/web.py:12 assets/serializers/platform.py:38
msgid "Submit selector"
msgstr "ボタンセレクターを確認する"
#: assets/models/automations/base.py:22 ops/models/job.py:187
#: settings/serializers/auth/sms.py:99
msgid "Parameters"
@ -1356,7 +1393,7 @@ msgstr "アセットの自動化タスク"
#: assets/models/automations/base.py:113 audits/models.py:199
#: audits/serializers.py:49 ops/models/base.py:49 ops/models/job.py:184
#: terminal/models/applet/applet.py:243 terminal/models/applet/host.py:136
#: terminal/models/applet/applet.py:247 terminal/models/applet/host.py:136
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
#: terminal/serializers/applet_host.py:107 tickets/models/ticket/general.py:283
#: tickets/serializers/super_ticket.py:13
@ -1419,17 +1456,17 @@ msgstr "お気に入りのアセット"
msgid "Gateway"
msgstr "ゲートウェイ"
#: assets/models/group.py:30
#: assets/models/group.py:27
msgid "Asset group"
msgstr "資産グループ"
#: assets/models/group.py:34 assets/models/platform.py:17
#: assets/serializers/platform.py:102
#: assets/models/group.py:31 assets/models/platform.py:17
#: assets/serializers/platform.py:112
#: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default"
msgstr "デフォルト"
#: assets/models/group.py:34
#: assets/models/group.py:31
msgid "Default asset group"
msgstr "デフォルトアセットグループ"
@ -1447,7 +1484,7 @@ msgstr "値"
#: assets/models/label.py:40 assets/serializers/asset/common.py:123
#: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13
#: assets/serializers/platform.py:100
#: assets/serializers/platform.py:110
#: authentication/serializers/connect_token_secret.py:121
#: common/serializers/common.py:85 perms/serializers/user_permission.py:28
#: settings/serializers/sms.py:7
@ -1495,7 +1532,8 @@ msgstr "必要"
msgid "Public"
msgstr "開ける"
#: assets/models/platform.py:19 settings/serializers/settings.py:67
#: assets/models/platform.py:19 assets/serializers/platform.py:48
#: settings/serializers/settings.py:67
#: users/templates/users/reset_password.html:29
msgid "Setting"
msgstr "設定"
@ -1509,11 +1547,11 @@ msgstr "有効化"
msgid "Ansible config"
msgstr "Ansible 構成"
#: assets/models/platform.py:34 assets/serializers/platform.py:63
#: assets/models/platform.py:34 assets/serializers/platform.py:32
msgid "Ping enabled"
msgstr "アセット ディスカバリを有効にする"
#: assets/models/platform.py:35 assets/serializers/platform.py:64
#: assets/models/platform.py:35 assets/serializers/platform.py:33
msgid "Ping method"
msgstr "資産検出方法"
@ -1522,12 +1560,12 @@ msgid "Ping params"
msgstr "資産検出パラメータ"
#: assets/models/platform.py:38 assets/models/platform.py:62
#: assets/serializers/platform.py:65
#: assets/serializers/platform.py:34
msgid "Gather facts enabled"
msgstr "資産情報の収集を有効にする"
#: assets/models/platform.py:40 assets/models/platform.py:64
#: assets/serializers/platform.py:66
#: assets/serializers/platform.py:35
msgid "Gather facts method"
msgstr "情報収集の方法"
@ -1535,11 +1573,11 @@ msgstr "情報収集の方法"
msgid "Gather facts params"
msgstr "情報収集パラメータ"
#: assets/models/platform.py:44 assets/serializers/platform.py:69
#: assets/models/platform.py:44 assets/serializers/platform.py:38
msgid "Change secret enabled"
msgstr "パスワードの変更が有効"
#: assets/models/platform.py:46 assets/serializers/platform.py:70
#: assets/models/platform.py:46 assets/serializers/platform.py:39
msgid "Change secret method"
msgstr "パスワード変更モード"
@ -1547,11 +1585,11 @@ msgstr "パスワード変更モード"
msgid "Change secret params"
msgstr "パスワード変更パラメータ"
#: assets/models/platform.py:50 assets/serializers/platform.py:71
#: assets/models/platform.py:50 assets/serializers/platform.py:40
msgid "Push account enabled"
msgstr "アカウントのプッシュを有効にする"
#: assets/models/platform.py:52 assets/serializers/platform.py:72
#: assets/models/platform.py:52 assets/serializers/platform.py:41
msgid "Push account method"
msgstr "アカウントプッシュ方式"
@ -1559,11 +1597,11 @@ msgstr "アカウントプッシュ方式"
msgid "Push account params"
msgstr "アカウントプッシュパラメータ"
#: assets/models/platform.py:56 assets/serializers/platform.py:67
#: assets/models/platform.py:56 assets/serializers/platform.py:36
msgid "Verify account enabled"
msgstr "アカウントの確認をオンにする"
#: assets/models/platform.py:58 assets/serializers/platform.py:68
#: assets/models/platform.py:58 assets/serializers/platform.py:37
msgid "Verify account method"
msgstr "アカウント認証方法"
@ -1579,23 +1617,23 @@ msgstr "メタ"
msgid "Internal"
msgstr "ビルトイン"
#: assets/models/platform.py:89 assets/serializers/platform.py:115
#: assets/models/platform.py:89 assets/serializers/platform.py:125
msgid "Charset"
msgstr "シャーセット"
#: assets/models/platform.py:91 assets/serializers/platform.py:143
#: assets/models/platform.py:91 assets/serializers/platform.py:153
msgid "Domain enabled"
msgstr "ドメインを有効にする"
#: assets/models/platform.py:93 assets/serializers/platform.py:142
#: assets/models/platform.py:93 assets/serializers/platform.py:152
msgid "Su enabled"
msgstr "アカウントの切り替えを有効にする"
#: assets/models/platform.py:94 assets/serializers/platform.py:121
#: assets/models/platform.py:94 assets/serializers/platform.py:131
msgid "Su method"
msgstr "アカウントの切り替え方法"
#: assets/models/platform.py:95 assets/serializers/platform.py:124
#: assets/models/platform.py:95 assets/serializers/platform.py:134
msgid "Custom fields"
msgstr "カスタムフィールド"
@ -1612,7 +1650,7 @@ msgstr ""
"プラットフォームタイプがスキップされた資産に合致しない、資産内の一括更新プ"
"ラットフォーム"
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:118
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:128
#: authentication/serializers/connect_token_secret.py:29
#: authentication/serializers/connect_token_secret.py:72
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99
@ -1728,47 +1766,60 @@ msgstr "値"
msgid "Can't contains: /"
msgstr "含まれない:/"
#: assets/serializers/platform.py:26
msgid "SFTP enabled"
msgstr "SFTP が有効"
#: assets/serializers/platform.py:27
msgid "SFTP home"
msgstr "SFTP ルート パス"
#: assets/serializers/platform.py:42
msgid "Auth with username"
msgstr "ユーザー名で認証する"
#: assets/serializers/platform.py:73
msgid "Gather accounts enabled"
msgstr "アカウント収集を有効にする"
#: assets/serializers/platform.py:74
#: assets/serializers/platform.py:43
msgid "Gather accounts method"
msgstr "アカウントの収集方法"
#: assets/serializers/platform.py:103
#: assets/serializers/platform.py:60
msgid ""
"This protocol is primary, and it must be set when adding assets. "
"Additionally, there can only be one primary protocol."
msgstr ""
"このプロトコルはプライマリであり、資産を追加するときに設定する必要がありま"
"す。また、プライマリプロトコルは1つしかありません"
#: assets/serializers/platform.py:65
msgid "This protocol is required, and it must be set when adding assets."
msgstr "このプロトコルは必須であり、資産を追加するときに設定する必要があります"
#: assets/serializers/platform.py:68
msgid ""
"This protocol is default, when adding assets, it will be displayed by "
"default."
msgstr ""
"このプロトコルはデフォルトです。資産を追加するときに、デフォルトで表示されま"
"す"
#: assets/serializers/platform.py:71
msgid "This protocol is public, asset will show this protocol to user"
msgstr ""
"このプロトコルは公開されており、資産はこのプロトコルをユーザーに表示します"
#: assets/serializers/platform.py:113
msgid "Help text"
msgstr "ヘルプ"
#: assets/serializers/platform.py:104
#: assets/serializers/platform.py:114
msgid "Choices"
msgstr "せんたく"
#: assets/serializers/platform.py:119
#: assets/serializers/platform.py:129
msgid "Automation"
msgstr "オートメーション"
#: assets/serializers/platform.py:144
#: assets/serializers/platform.py:154
msgid "Default Domain"
msgstr "デフォルト ドメイン"
#: assets/serializers/platform.py:153
#: assets/serializers/platform.py:163
msgid "type is required"
msgstr "タイプ このフィールドは必須です."
#: assets/serializers/platform.py:176
#: assets/serializers/platform.py:186
msgid "Protocols is required"
msgstr "同意が必要です"
@ -1912,7 +1963,7 @@ msgstr "パスワードを変更する"
#: audits/const.py:35 settings/serializers/terminal.py:6
#: terminal/models/applet/host.py:25 terminal/models/component/terminal.py:163
#: terminal/serializers/session.py:49 terminal/serializers/session.py:58
#: terminal/serializers/session.py:46 terminal/serializers/session.py:55
msgid "Terminal"
msgstr "ターミナル"
@ -1950,7 +2001,7 @@ msgid "Job audit log"
msgstr "ジョブ監査ログ"
#: audits/models.py:51 audits/models.py:95 audits/models.py:166
#: terminal/models/session/session.py:39 terminal/models/session/sharing.py:99
#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:99
msgid "Remote addr"
msgstr "リモートaddr"
@ -2090,14 +2141,14 @@ msgid "Auth Token"
msgstr "認証トークン"
#: audits/signal_handlers/login_log.py:31 authentication/notifications.py:73
#: authentication/views/login.py:74 authentication/views/wecom.py:159
#: authentication/views/login.py:75 authentication/views/wecom.py:159
#: notifications/backends/__init__.py:11 settings/serializers/auth/wecom.py:10
#: users/models/user.py:706 users/models/user.py:814
msgid "WeCom"
msgstr "企業微信"
#: audits/signal_handlers/login_log.py:32 authentication/views/feishu.py:123
#: authentication/views/login.py:86 notifications/backends/__init__.py:14
#: authentication/views/login.py:87 notifications/backends/__init__.py:14
#: settings/serializers/auth/feishu.py:10
#: settings/serializers/auth/feishu.py:13 users/models/user.py:708
#: users/models/user.py:816
@ -2105,7 +2156,7 @@ msgid "FeiShu"
msgstr "本を飛ばす"
#: audits/signal_handlers/login_log.py:33 authentication/views/dingtalk.py:160
#: authentication/views/login.py:80 notifications/backends/__init__.py:12
#: authentication/views/login.py:81 notifications/backends/__init__.py:12
#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:707
#: users/models/user.py:815
msgid "DingTalk"
@ -2981,23 +3032,23 @@ msgstr "本を飛ばすのバインドに成功"
msgid "Failed to get user from FeiShu"
msgstr "本を飛ばすからユーザーを取得できませんでした"
#: authentication/views/login.py:182
#: authentication/views/login.py:183
msgid "Redirecting"
msgstr "リダイレクト"
#: authentication/views/login.py:183
#: authentication/views/login.py:184
msgid "Redirecting to {} authentication"
msgstr "{} 認証へのリダイレクト"
#: authentication/views/login.py:206
msgid "Please enable cookies and try again."
msgstr "クッキーを有効にして、もう一度お試しください。"
#: authentication/views/login.py:207
msgid "Login timeout, please try again."
msgstr "ログインタイムアウト、もう一度お試しください"
#: authentication/views/login.py:247
#: authentication/views/login.py:250
msgid "User email already exists ({})"
msgstr "ユーザー メールボックスは既に存在します ({})"
#: authentication/views/login.py:325
#: authentication/views/login.py:328
msgid ""
"Wait for <b>{}</b> confirm, You also can copy link to her/him <br/>\n"
" Don't close this page"
@ -3005,15 +3056,15 @@ msgstr ""
"<b>{}</b> 確認を待ちます。彼女/彼へのリンクをコピーすることもできます <br/>\n"
" このページを閉じないでください"
#: authentication/views/login.py:330
#: authentication/views/login.py:333
msgid "No ticket found"
msgstr "チケットが見つかりません"
#: authentication/views/login.py:366
#: authentication/views/login.py:369
msgid "Logout success"
msgstr "ログアウト成功"
#: authentication/views/login.py:367
#: authentication/views/login.py:370
msgid "Logout success, return login page"
msgstr "ログアウト成功、ログインページを返す"
@ -3061,7 +3112,7 @@ msgstr "タイミングトリガー"
msgid "Ready"
msgstr "の準備を"
#: common/const/choices.py:16 terminal/const.py:59 tickets/const.py:29
#: common/const/choices.py:16 terminal/const.py:60 tickets/const.py:29
#: tickets/const.py:39
msgid "Pending"
msgstr "未定"
@ -3702,7 +3753,7 @@ msgstr "保存後に実行"
msgid "Job type"
msgstr "タスクの種類"
#: ops/serializers/job.py:57 terminal/serializers/session.py:50
#: ops/serializers/job.py:57 terminal/serializers/session.py:47
msgid "Is finished"
msgstr "終了しました"
@ -4118,7 +4169,7 @@ msgid "My assets"
msgstr "私の資産"
#: rbac/tree.py:56 terminal/models/applet/applet.py:51
#: terminal/models/applet/applet.py:240 terminal/models/applet/host.py:28
#: terminal/models/applet/applet.py:244 terminal/models/applet/host.py:28
#: terminal/serializers/applet.py:15
msgid "Applet"
msgstr "リモートアプリケーション"
@ -4148,23 +4199,23 @@ msgstr "テストの成功"
msgid "Test mail sent to {}, please check"
msgstr "{}に送信されたテストメールを確認してください"
#: settings/api/ldap.py:173
#: settings/api/ldap.py:176
msgid "Synchronization start, please wait."
msgstr "同期開始、お待ちください。"
#: settings/api/ldap.py:177
#: settings/api/ldap.py:180
msgid "Synchronization is running, please wait."
msgstr "同期が実行中です。しばらくお待ちください。"
#: settings/api/ldap.py:182
#: settings/api/ldap.py:185
msgid "Synchronization error: {}"
msgstr "同期エラー: {}"
#: settings/api/ldap.py:220
#: settings/api/ldap.py:223
msgid "Get ldap users is None"
msgstr "Ldapユーザーを取得するにはNone"
#: settings/api/ldap.py:230
#: settings/api/ldap.py:233
msgid "Imported {} users successfully (Organization: {})"
msgstr "{} 人のユーザーを正常にインポートしました (組織: {})"
@ -5078,10 +5129,6 @@ msgstr "ログインcaptchaの有効化"
msgid "Enable captcha to prevent robot authentication"
msgstr "Captchaを有効にしてロボット認証を防止する"
#: settings/serializers/security.py:151
msgid "Security"
msgstr "セキュリティ"
#: settings/serializers/security.py:154
msgid "Enable terminal register"
msgstr "ターミナルレジスタの有効化"
@ -5640,7 +5687,7 @@ msgstr "クリティカル"
msgid "High"
msgstr "高い"
#: terminal/const.py:32 terminal/const.py:66
#: terminal/const.py:32 terminal/const.py:67
#: users/templates/users/reset_password.html:50
msgid "Normal"
msgstr "正常"
@ -5649,19 +5696,19 @@ msgstr "正常"
msgid "Offline"
msgstr "オフライン"
#: terminal/const.py:62
#: terminal/const.py:63
msgid "Mismatch"
msgstr "一致しない"
#: terminal/const.py:67
#: terminal/const.py:68
msgid "Tunnel"
msgstr ""
#: terminal/const.py:72
#: terminal/const.py:73
msgid "Read Only"
msgstr "読み取り専用"
#: terminal/const.py:73
#: terminal/const.py:74
msgid "Writable"
msgstr "書き込み可能"
@ -5717,7 +5764,7 @@ msgstr "カスタムプラットフォームのみをサポート"
msgid "Missing type in platform.yml"
msgstr "platform.ymlにタイプがありません"
#: terminal/models/applet/applet.py:242 terminal/models/applet/host.py:34
#: terminal/models/applet/applet.py:246 terminal/models/applet/host.py:34
#: terminal/models/applet/host.py:134
msgid "Hosting"
msgstr "ホスト マシン"
@ -5786,7 +5833,7 @@ msgstr "エンドポイント"
msgid "IP group"
msgstr "IP グループ"
#: terminal/models/component/endpoint.py:103
#: terminal/models/component/endpoint.py:104
msgid "Endpoint rule"
msgstr "エンドポイントルール"
@ -5864,39 +5911,39 @@ msgstr "セッションのリプレイをアップロードできます"
msgid "Can download session replay"
msgstr "セッション再生をダウンロードできます"
#: terminal/models/session/session.py:35
#: terminal/models/session/session.py:34
msgid "Account id"
msgstr "アカウント ID"
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:104
#: terminal/models/session/session.py:36 terminal/models/session/sharing.py:104
msgid "Login from"
msgstr "ログイン元"
#: terminal/models/session/session.py:42
#: terminal/models/session/session.py:41
msgid "Replay"
msgstr "リプレイ"
#: terminal/models/session/session.py:46
#: terminal/models/session/session.py:45
msgid "Date end"
msgstr "終了日"
#: terminal/models/session/session.py:243
#: terminal/models/session/session.py:240
msgid "Session record"
msgstr "セッション記録"
#: terminal/models/session/session.py:245
#: terminal/models/session/session.py:242
msgid "Can monitor session"
msgstr "セッションを監視できます"
#: terminal/models/session/session.py:246
#: terminal/models/session/session.py:243
msgid "Can share session"
msgstr "セッションを共有できます"
#: terminal/models/session/session.py:247
#: terminal/models/session/session.py:244
msgid "Can terminate session"
msgstr "セッションを終了できます"
#: terminal/models/session/session.py:248
#: terminal/models/session/session.py:245
msgid "Can validate session action perm"
msgstr "セッションアクションのパーマを検証できます"
@ -6104,35 +6151,35 @@ msgstr ""
msgid "Asset IP"
msgstr "資産 IP"
#: terminal/serializers/session.py:25 terminal/serializers/session.py:47
#: terminal/serializers/session.py:22 terminal/serializers/session.py:44
msgid "Can replay"
msgstr "再生できます"
#: terminal/serializers/session.py:26 terminal/serializers/session.py:48
#: terminal/serializers/session.py:23 terminal/serializers/session.py:45
msgid "Can join"
msgstr "参加できます"
#: terminal/serializers/session.py:27 terminal/serializers/session.py:51
#: terminal/serializers/session.py:24 terminal/serializers/session.py:48
msgid "Can terminate"
msgstr "終了できます"
#: terminal/serializers/session.py:43
#: terminal/serializers/session.py:40
msgid "User ID"
msgstr "ユーザーID"
#: terminal/serializers/session.py:44
#: terminal/serializers/session.py:41
msgid "Asset ID"
msgstr "資産ID"
#: terminal/serializers/session.py:45
#: terminal/serializers/session.py:42
msgid "Login from display"
msgstr "表示からのログイン"
#: terminal/serializers/session.py:52
#: terminal/serializers/session.py:49
msgid "Terminal display"
msgstr "ターミナルディスプレイ"
#: terminal/serializers/session.py:57
#: terminal/serializers/session.py:54
msgid "Command amount"
msgstr "コマンド量"
@ -6447,11 +6494,11 @@ msgstr "承認ステップ"
msgid "Relation snapshot"
msgstr "製造オーダスナップショット"
#: tickets/models/ticket/general.py:392
#: tickets/models/ticket/general.py:398
msgid "Please try again"
msgstr "もう一度お試しください"
#: tickets/models/ticket/general.py:461
#: tickets/models/ticket/general.py:467
msgid "Super ticket"
msgstr "スーパーチケット"
@ -7726,3 +7773,6 @@ msgstr "究極のエディション"
#: xpack/plugins/license/models.py:86
msgid "Community edition"
msgstr "コミュニティ版"
#~ msgid "Please enable cookies and try again."
#~ msgstr "クッキーを有効にして、もう一度お試しください。"

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0efb248e80873f34d20f0fc3d4dd5c5a346048cb683c2b6bda3df939697fc52c
size 119261
oid sha256:6cedb6d13bc42a5621b60813fb4db0c094a343568eb3f5678566cbbe7f763228
size 120269

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-15 15:35+0800\n"
"POT-Creation-Date: 2023-06-30 15:41+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -86,7 +86,7 @@ msgstr "更新"
#: accounts/const/account.py:27
#: accounts/serializers/automations/change_secret.py:156 audits/const.py:54
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:19
#: ops/const.py:58 terminal/const.py:61 xpack/plugins/cloud/const.py:41
#: ops/const.py:58 terminal/const.py:62 xpack/plugins/cloud/const.py:41
msgid "Failed"
msgstr "失败"
@ -186,11 +186,11 @@ msgstr "仅创建"
#: accounts/serializers/automations/change_secret.py:112
#: accounts/serializers/automations/change_secret.py:132
#: acls/serializers/base.py:118 assets/models/asset/common.py:93
#: assets/models/asset/common.py:332 assets/models/cmd_filter.py:36
#: assets/models/asset/common.py:331 assets/models/cmd_filter.py:36
#: assets/serializers/domain.py:19 assets/serializers/label.py:27
#: audits/models.py:53 authentication/models/connection_token.py:35
#: perms/models/asset_permission.py:64 perms/serializers/permission.py:34
#: terminal/backends/command/models.py:20 terminal/models/session/session.py:32
#: terminal/backends/command/models.py:20 terminal/models/session/session.py:31
#: terminal/notifications.py:95 terminal/serializers/command.py:17
#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:212
msgid "Asset"
@ -224,7 +224,7 @@ msgstr "来源 ID"
#: acls/serializers/base.py:119 assets/serializers/asset/common.py:125
#: assets/serializers/gateway.py:28 audits/models.py:54 ops/models/base.py:18
#: 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:33
#: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85
msgid "Account"
msgstr "账号"
@ -278,7 +278,7 @@ msgstr "账号备份计划"
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:192
#: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:72 terminal/models/applet/host.py:137
#: terminal/models/session/session.py:45
#: terminal/models/session/session.py:44
#: tickets/models/ticket/apply_application.py:30
#: tickets/models/ticket/apply_asset.py:19
msgid "Date start"
@ -310,7 +310,7 @@ msgstr "原因"
#: accounts/models/automations/backup_account.py:99
#: accounts/serializers/automations/change_secret.py:111
#: accounts/serializers/automations/change_secret.py:134
#: ops/serializers/job.py:56 terminal/serializers/session.py:46
#: ops/serializers/job.py:56 terminal/serializers/session.py:43
msgid "Is success"
msgstr "是否成功"
@ -478,10 +478,10 @@ msgstr "账号验证"
#: applications/models.py:9 assets/models/_user.py:22
#: assets/models/asset/common.py:91 assets/models/asset/common.py:149
#: 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:17 assets/models/label.py:18
#: assets/models/platform.py:13 assets/models/platform.py:81
#: assets/serializers/asset/common.py:145 assets/serializers/platform.py:99
#: assets/serializers/platform.py:199
#: assets/serializers/asset/common.py:145 assets/serializers/platform.py:109
#: assets/serializers/platform.py:209
#: authentication/serializers/connect_token_secret.py:110 ops/mixin.py:21
#: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:92 ops/models/playbook.py:23 ops/serializers/job.py:20
@ -504,7 +504,8 @@ msgstr "特权账号"
#: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39
#: assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:114
#: terminal/models/applet/applet.py:39 users/serializers/user.py:169
#: terminal/models/applet/applet.py:39
#: terminal/models/component/endpoint.py:101 users/serializers/user.py:169
msgid "Is active"
msgstr "激活"
@ -557,7 +558,7 @@ msgstr "账号存在策略"
#: accounts/serializers/account/account.py:180 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:82
#: assets/serializers/asset/common.py:121 assets/serializers/cagegory.py:8
#: assets/serializers/platform.py:117 assets/serializers/platform.py:200
#: assets/serializers/platform.py:127 assets/serializers/platform.py:210
#: perms/serializers/user_permission.py:26 settings/models.py:35
#: tickets/models/ticket/apply_application.py:13
msgid "Category"
@ -568,13 +569,13 @@ msgstr "类别"
#: acls/serializers/command_acl.py:18 applications/models.py:14
#: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:83
#: assets/serializers/asset/common.py:122 assets/serializers/platform.py:101
#: assets/serializers/platform.py:116 audits/serializers.py:48
#: assets/serializers/asset/common.py:122 assets/serializers/platform.py:111
#: assets/serializers/platform.py:126 audits/serializers.py:48
#: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:103
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:38
#: terminal/models/component/storage.py:57
#: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29
#: terminal/serializers/session.py:23 terminal/serializers/storage.py:224
#: terminal/serializers/session.py:20 terminal/serializers/storage.py:224
#: terminal/serializers/storage.py:236 tickets/models/comment.py:26
#: tickets/models/flow.py:56 tickets/models/ticket/apply_application.py:16
#: tickets/models/ticket/general.py:275 tickets/serializers/flow.py:53
@ -640,7 +641,7 @@ msgstr "ID"
#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58
#: perms/serializers/permission.py:30 rbac/builtin.py:122
#: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:19
#: terminal/models/session/session.py:30 terminal/models/session/sharing.py:32
#: terminal/models/session/session.py:29 terminal/models/session/sharing.py:32
#: terminal/notifications.py:96 terminal/notifications.py:144
#: terminal/serializers/command.py:16 tickets/models/comment.py:21
#: users/const.py:14 users/models/user.py:947 users/models/user.py:978
@ -684,9 +685,13 @@ msgstr "密钥密码"
msgid "Spec info"
msgstr "特殊信息"
#: accounts/serializers/account/base.py:81
msgid "Tip: If no username is required for authentication, fill in `null`"
msgstr "提示: 如果认证时不需要用户名,可填写为 null"
#: accounts/serializers/account/base.py:82
msgid ""
"Tip: If no username is required for authentication, fill in `null`, If AD "
"account, like `username@domain`"
msgstr ""
"提示: 如果认证时不需要用户名,可填写为 null, 如果是 AD 账号,格式为 "
"username@domain"
#: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:155 assets/models/automations/base.py:18
@ -725,7 +730,7 @@ msgstr "自动化任务执行历史"
#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53
#: 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
#: terminal/const.py:60 terminal/models/session/sharing.py:107
#: terminal/const.py:61 terminal/models/session/sharing.py:107
#: tickets/views/approve.py:114
msgid "Success"
msgstr "成功"
@ -821,8 +826,8 @@ msgid "Accounts"
msgstr "账号管理"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:55 terminal/const.py:68
#: terminal/models/session/session.py:43 terminal/serializers/command.py:18
#: ops/serializers/job.py:55 terminal/const.py:69
#: terminal/models/session/session.py:42 terminal/serializers/command.py:18
#: terminal/templates/terminal/_msg_command_alert.html:12
#: terminal/templates/terminal/_msg_command_execute_alert.html:10
msgid "Command"
@ -959,11 +964,11 @@ msgstr "应用程序"
msgid "Can match application"
msgstr "匹配应用"
#: assets/api/asset/asset.py:149
#: assets/api/asset/asset.py:153
msgid "Cannot create asset directly, you should create a host or other"
msgstr "不能直接创建资产, 你应该创建主机或其他资产"
#: assets/api/domain.py:60
#: assets/api/domain.py:62
msgid "Number required"
msgstr "需要为数字"
@ -1037,6 +1042,19 @@ msgstr "测试网关"
msgid "Gather facts"
msgstr "收集资产信息"
#: assets/const/base.py:33 audits/const.py:47
#: terminal/serializers/applet_host.py:32
msgid "Disabled"
msgstr "禁用"
#: assets/const/base.py:34 settings/serializers/basic.py:27
msgid "Basic"
msgstr "基本"
#: assets/const/base.py:35 assets/models/asset/web.py:13
msgid "Script"
msgstr "脚本"
#: assets/const/category.py:10 assets/models/asset/host.py:8
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:67
#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17
@ -1099,28 +1117,63 @@ msgstr "防火墙"
msgid "Other"
msgstr "其它"
#: assets/const/types.py:223
#: assets/const/protocol.py:39
msgid "SFTP enabled"
msgstr "SFTP 已启用"
#: assets/const/protocol.py:44
msgid "SFTP home"
msgstr "SFTP 根路径"
#: assets/const/protocol.py:55
msgid "Console"
msgstr "控制台"
#: assets/const/protocol.py:56
msgid "Connect to console session"
msgstr "连接到控制台会话"
#: assets/const/protocol.py:60
msgid "Any"
msgstr "任意"
#: assets/const/protocol.py:62 settings/serializers/security.py:151
msgid "Security"
msgstr "安全"
#: assets/const/protocol.py:63
msgid "Security layer to use for the connection"
msgstr "连接 RDP 使用的安全层"
#: assets/const/protocol.py:87 assets/models/asset/database.py:10
#: settings/serializers/email.py:37
msgid "Use SSL"
msgstr "使用 SSL"
#: assets/const/protocol.py:140
msgid "Auth username"
msgstr "使用用户名认证"
#: assets/const/protocol.py:167 assets/models/asset/web.py:10
msgid "Username selector"
msgstr "用户名选择器"
#: assets/const/protocol.py:172 assets/models/asset/web.py:11
msgid "Password selector"
msgstr "密码选择器"
#: assets/const/protocol.py:177 assets/models/asset/web.py:12
msgid "Submit selector"
msgstr "确认按钮选择器"
#: assets/const/types.py:222
msgid "All types"
msgstr "所有类型"
#: assets/const/web.py:8
#: assets/const/web.py:7
msgid "Website"
msgstr "网站"
#: assets/const/web.py:59 audits/const.py:47
#: terminal/serializers/applet_host.py:32
msgid "Disabled"
msgstr "禁用"
#: assets/const/web.py:60 settings/serializers/basic.py:27
msgid "Basic"
msgstr "基本"
#: assets/const/web.py:61 assets/models/asset/web.py:13
#: assets/serializers/platform.py:40
msgid "Script"
msgstr "脚本"
#: assets/exceptions.py:12
msgid "This function is not supported temporarily"
msgstr "暂时不支持此功能"
@ -1134,20 +1187,20 @@ msgid "SSH public key"
msgstr "SSH公钥"
#: assets/models/_user.py:27 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 assets/models/group.py:23
#: assets/models/cmd_filter.py:88 assets/models/group.py:20
#: common/db/models.py:36 ops/models/adhoc.py:27 ops/models/job.py:111
#: ops/models/playbook.py:26 rbac/models/role.py:37 settings/models.py:38
#: terminal/models/applet/applet.py:44 terminal/models/applet/applet.py:244
#: 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/component/endpoint.py:100
#: terminal/models/session/session.py:47 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
#: xpack/plugins/cloud/models.py:35 xpack/plugins/cloud/models.py:111
msgid "Comment"
msgstr "备注"
#: assets/models/_user.py:28 assets/models/automations/base.py:114
#: assets/models/cmd_filter.py:41 assets/models/group.py:22
#: assets/models/cmd_filter.py:41 assets/models/group.py:19
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:191
#: users/models/user.py:979
msgid "Date created"
@ -1159,7 +1212,7 @@ msgid "Date updated"
msgstr "更新日期"
#: assets/models/_user.py:30 assets/models/cmd_filter.py:44
#: assets/models/cmd_filter.py:91 assets/models/group.py:21
#: assets/models/cmd_filter.py:91 assets/models/group.py:18
#: common/db/models.py:32 users/models/user.py:799
#: users/serializers/group.py:29
msgid "Created by"
@ -1187,8 +1240,8 @@ msgstr "用户名与用户相同"
#: assets/models/_user.py:52 authentication/models/connection_token.py:40
#: authentication/serializers/connect_token_secret.py:111
#: terminal/models/applet/applet.py:41 terminal/serializers/session.py:21
#: terminal/serializers/session.py:42 terminal/serializers/storage.py:68
#: terminal/models/applet/applet.py:41 terminal/serializers/session.py:18
#: terminal/serializers/session.py:39 terminal/serializers/storage.py:68
msgid "Protocol"
msgstr "协议"
@ -1276,19 +1329,19 @@ msgstr "收集资产硬件信息"
msgid "Custom info"
msgstr "自定义属性"
#: assets/models/asset/common.py:335
#: assets/models/asset/common.py:334
msgid "Can refresh asset hardware info"
msgstr "可以更新资产硬件信息"
#: assets/models/asset/common.py:336
#: assets/models/asset/common.py:335
msgid "Can test asset connectivity"
msgstr "可以测试资产连接性"
#: assets/models/asset/common.py:337
#: assets/models/asset/common.py:336
msgid "Can match asset"
msgstr "可以匹配资产"
#: assets/models/asset/common.py:338
#: assets/models/asset/common.py:337
msgid "Can change asset nodes"
msgstr "可以修改资产节点"
@ -1296,11 +1349,6 @@ msgstr "可以修改资产节点"
msgid "Custom asset"
msgstr "自定义资产"
#: assets/models/asset/database.py:10 assets/serializers/platform.py:45
#: settings/serializers/email.py:37
msgid "Use SSL"
msgstr "使用 SSL"
#: assets/models/asset/database.py:11
msgid "CA cert"
msgstr "CA 证书"
@ -1318,22 +1366,9 @@ msgid "Allow invalid cert"
msgstr "忽略证书校验"
#: assets/models/asset/web.py:9 assets/serializers/asset/info/spec.py:16
#: assets/serializers/platform.py:30
msgid "Autofill"
msgstr "自动代填"
#: assets/models/asset/web.py:10 assets/serializers/platform.py:32
msgid "Username selector"
msgstr "用户名选择器"
#: assets/models/asset/web.py:11 assets/serializers/platform.py:35
msgid "Password selector"
msgstr "密码选择器"
#: assets/models/asset/web.py:12 assets/serializers/platform.py:38
msgid "Submit selector"
msgstr "确认按钮选择器"
#: assets/models/automations/base.py:22 ops/models/job.py:187
#: settings/serializers/auth/sms.py:99
msgid "Parameters"
@ -1349,7 +1384,7 @@ msgstr "资产自动化任务"
#: assets/models/automations/base.py:113 audits/models.py:199
#: audits/serializers.py:49 ops/models/base.py:49 ops/models/job.py:184
#: terminal/models/applet/applet.py:243 terminal/models/applet/host.py:136
#: terminal/models/applet/applet.py:247 terminal/models/applet/host.py:136
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
#: terminal/serializers/applet_host.py:107 tickets/models/ticket/general.py:283
#: tickets/serializers/super_ticket.py:13
@ -1412,17 +1447,17 @@ msgstr "收藏的资产"
msgid "Gateway"
msgstr "网关"
#: assets/models/group.py:30
#: assets/models/group.py:27
msgid "Asset group"
msgstr "资产组"
#: assets/models/group.py:34 assets/models/platform.py:17
#: assets/serializers/platform.py:102
#: assets/models/group.py:31 assets/models/platform.py:17
#: assets/serializers/platform.py:112
#: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default"
msgstr "默认"
#: assets/models/group.py:34
#: assets/models/group.py:31
msgid "Default asset group"
msgstr "默认资产组"
@ -1440,7 +1475,7 @@ msgstr "值"
#: assets/models/label.py:40 assets/serializers/asset/common.py:123
#: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13
#: assets/serializers/platform.py:100
#: assets/serializers/platform.py:110
#: authentication/serializers/connect_token_secret.py:121
#: common/serializers/common.py:85 perms/serializers/user_permission.py:28
#: settings/serializers/sms.py:7
@ -1488,7 +1523,8 @@ msgstr "必须的"
msgid "Public"
msgstr "开放的"
#: assets/models/platform.py:19 settings/serializers/settings.py:67
#: assets/models/platform.py:19 assets/serializers/platform.py:48
#: settings/serializers/settings.py:67
#: users/templates/users/reset_password.html:29
msgid "Setting"
msgstr "设置"
@ -1502,11 +1538,11 @@ msgstr "启用"
msgid "Ansible config"
msgstr "Ansible 配置"
#: assets/models/platform.py:34 assets/serializers/platform.py:63
#: assets/models/platform.py:34 assets/serializers/platform.py:32
msgid "Ping enabled"
msgstr "启用资产探活"
#: assets/models/platform.py:35 assets/serializers/platform.py:64
#: assets/models/platform.py:35 assets/serializers/platform.py:33
msgid "Ping method"
msgstr "资产探活方式"
@ -1515,12 +1551,12 @@ msgid "Ping params"
msgstr "资产探活参数"
#: assets/models/platform.py:38 assets/models/platform.py:62
#: assets/serializers/platform.py:65
#: assets/serializers/platform.py:34
msgid "Gather facts enabled"
msgstr "启用收集资产信息"
#: assets/models/platform.py:40 assets/models/platform.py:64
#: assets/serializers/platform.py:66
#: assets/serializers/platform.py:35
msgid "Gather facts method"
msgstr "收集信息方式"
@ -1528,11 +1564,11 @@ msgstr "收集信息方式"
msgid "Gather facts params"
msgstr "收集信息参数"
#: assets/models/platform.py:44 assets/serializers/platform.py:69
#: assets/models/platform.py:44 assets/serializers/platform.py:38
msgid "Change secret enabled"
msgstr "启用改密"
#: assets/models/platform.py:46 assets/serializers/platform.py:70
#: assets/models/platform.py:46 assets/serializers/platform.py:39
msgid "Change secret method"
msgstr "改密方式"
@ -1540,11 +1576,11 @@ msgstr "改密方式"
msgid "Change secret params"
msgstr "改密参数"
#: assets/models/platform.py:50 assets/serializers/platform.py:71
#: assets/models/platform.py:50 assets/serializers/platform.py:40
msgid "Push account enabled"
msgstr "启用账号推送"
#: assets/models/platform.py:52 assets/serializers/platform.py:72
#: assets/models/platform.py:52 assets/serializers/platform.py:41
msgid "Push account method"
msgstr "账号推送方式"
@ -1552,11 +1588,11 @@ msgstr "账号推送方式"
msgid "Push account params"
msgstr "账号推送参数"
#: assets/models/platform.py:56 assets/serializers/platform.py:67
#: assets/models/platform.py:56 assets/serializers/platform.py:36
msgid "Verify account enabled"
msgstr "开启账号验证"
#: assets/models/platform.py:58 assets/serializers/platform.py:68
#: assets/models/platform.py:58 assets/serializers/platform.py:37
msgid "Verify account method"
msgstr "账号验证方式"
@ -1572,23 +1608,23 @@ msgstr "元数据"
msgid "Internal"
msgstr "内置"
#: assets/models/platform.py:89 assets/serializers/platform.py:115
#: assets/models/platform.py:89 assets/serializers/platform.py:125
msgid "Charset"
msgstr "编码"
#: assets/models/platform.py:91 assets/serializers/platform.py:143
#: assets/models/platform.py:91 assets/serializers/platform.py:153
msgid "Domain enabled"
msgstr "启用网域"
#: assets/models/platform.py:93 assets/serializers/platform.py:142
#: assets/models/platform.py:93 assets/serializers/platform.py:152
msgid "Su enabled"
msgstr "启用账号切换"
#: assets/models/platform.py:94 assets/serializers/platform.py:121
#: assets/models/platform.py:94 assets/serializers/platform.py:131
msgid "Su method"
msgstr "账号切换方式"
#: assets/models/platform.py:95 assets/serializers/platform.py:124
#: assets/models/platform.py:95 assets/serializers/platform.py:134
msgid "Custom fields"
msgstr "自定义属性"
@ -1603,7 +1639,7 @@ msgid ""
"type"
msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:118
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:128
#: authentication/serializers/connect_token_secret.py:29
#: authentication/serializers/connect_token_secret.py:72
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99
@ -1719,47 +1755,55 @@ msgstr "值"
msgid "Can't contains: /"
msgstr "不能包含: /"
#: assets/serializers/platform.py:26
msgid "SFTP enabled"
msgstr "SFTP 已启用"
#: assets/serializers/platform.py:27
msgid "SFTP home"
msgstr "SFTP 根路径"
#: assets/serializers/platform.py:42
msgid "Auth with username"
msgstr "使用用户名认证"
#: assets/serializers/platform.py:73
msgid "Gather accounts enabled"
msgstr "启用账号收集"
#: assets/serializers/platform.py:74
#: assets/serializers/platform.py:43
msgid "Gather accounts method"
msgstr "收集账号方式"
#: assets/serializers/platform.py:103
#: assets/serializers/platform.py:60
msgid ""
"This protocol is primary, and it must be set when adding assets. "
"Additionally, there can only be one primary protocol."
msgstr "该协议是主要的,添加资产时必须设置。并且只能有一个主要协议"
#: assets/serializers/platform.py:65
msgid "This protocol is required, and it must be set when adding assets."
msgstr "该协议是必填的,添加资产时必须设置"
#: assets/serializers/platform.py:68
msgid ""
"This protocol is default, when adding assets, it will be displayed by "
"default."
msgstr "该协议是默认的,添加资产时,将默认显示"
#: assets/serializers/platform.py:71
msgid "This protocol is public, asset will show this protocol to user"
msgstr "该协议是公开的,资产将向用户显示该协议并可以连接使用"
#: assets/serializers/platform.py:113
msgid "Help text"
msgstr "帮助"
#: assets/serializers/platform.py:104
#: assets/serializers/platform.py:114
msgid "Choices"
msgstr "选择"
#: assets/serializers/platform.py:119
#: assets/serializers/platform.py:129
msgid "Automation"
msgstr "自动化"
#: assets/serializers/platform.py:144
#: assets/serializers/platform.py:154
msgid "Default Domain"
msgstr "默认网域"
#: assets/serializers/platform.py:153
#: assets/serializers/platform.py:163
msgid "type is required"
msgstr "类型 该字段是必填项。"
#: assets/serializers/platform.py:176
#: assets/serializers/platform.py:186
msgid "Protocols is required"
msgstr "协议是必填的"
@ -1901,7 +1945,7 @@ msgstr "改密"
#: audits/const.py:35 settings/serializers/terminal.py:6
#: terminal/models/applet/host.py:25 terminal/models/component/terminal.py:163
#: terminal/serializers/session.py:49 terminal/serializers/session.py:58
#: terminal/serializers/session.py:46 terminal/serializers/session.py:55
msgid "Terminal"
msgstr "终端"
@ -1939,7 +1983,7 @@ msgid "Job audit log"
msgstr "作业审计日志"
#: audits/models.py:51 audits/models.py:95 audits/models.py:166
#: terminal/models/session/session.py:39 terminal/models/session/sharing.py:99
#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:99
msgid "Remote addr"
msgstr "远端地址"
@ -2079,14 +2123,14 @@ msgid "Auth Token"
msgstr "认证令牌"
#: audits/signal_handlers/login_log.py:31 authentication/notifications.py:73
#: authentication/views/login.py:74 authentication/views/wecom.py:159
#: authentication/views/login.py:75 authentication/views/wecom.py:159
#: notifications/backends/__init__.py:11 settings/serializers/auth/wecom.py:10
#: users/models/user.py:706 users/models/user.py:814
msgid "WeCom"
msgstr "企业微信"
#: audits/signal_handlers/login_log.py:32 authentication/views/feishu.py:123
#: authentication/views/login.py:86 notifications/backends/__init__.py:14
#: authentication/views/login.py:87 notifications/backends/__init__.py:14
#: settings/serializers/auth/feishu.py:10
#: settings/serializers/auth/feishu.py:13 users/models/user.py:708
#: users/models/user.py:816
@ -2094,7 +2138,7 @@ msgid "FeiShu"
msgstr "飞书"
#: audits/signal_handlers/login_log.py:33 authentication/views/dingtalk.py:160
#: authentication/views/login.py:80 notifications/backends/__init__.py:12
#: authentication/views/login.py:81 notifications/backends/__init__.py:12
#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:707
#: users/models/user.py:815
msgid "DingTalk"
@ -2946,23 +2990,23 @@ msgstr "绑定 飞书 成功"
msgid "Failed to get user from FeiShu"
msgstr "从飞书获取用户失败"
#: authentication/views/login.py:182
#: authentication/views/login.py:183
msgid "Redirecting"
msgstr "跳转中"
#: authentication/views/login.py:183
#: authentication/views/login.py:184
msgid "Redirecting to {} authentication"
msgstr "正在跳转到 {} 认证"
#: authentication/views/login.py:206
msgid "Please enable cookies and try again."
msgstr "设置你的浏览器支持cookie"
#: authentication/views/login.py:207
msgid "Login timeout, please try again."
msgstr "登录超时,请重新登录"
#: authentication/views/login.py:247
#: authentication/views/login.py:250
msgid "User email already exists ({})"
msgstr "用户邮箱已存在 ({})"
#: authentication/views/login.py:325
#: authentication/views/login.py:328
msgid ""
"Wait for <b>{}</b> confirm, You also can copy link to her/him <br/>\n"
" Don't close this page"
@ -2970,15 +3014,15 @@ msgstr ""
"等待 <b>{}</b> 确认, 你也可以复制链接发给他/她 <br/>\n"
" 不要关闭本页面"
#: authentication/views/login.py:330
#: authentication/views/login.py:333
msgid "No ticket found"
msgstr "没有发现工单"
#: authentication/views/login.py:366
#: authentication/views/login.py:369
msgid "Logout success"
msgstr "退出登录成功"
#: authentication/views/login.py:367
#: authentication/views/login.py:370
msgid "Logout success, return login page"
msgstr "退出登录成功,返回到登录页面"
@ -3026,7 +3070,7 @@ msgstr "定时触发"
msgid "Ready"
msgstr "准备"
#: common/const/choices.py:16 terminal/const.py:59 tickets/const.py:29
#: common/const/choices.py:16 terminal/const.py:60 tickets/const.py:29
#: tickets/const.py:39
msgid "Pending"
msgstr "待定的"
@ -3660,7 +3704,7 @@ msgstr "保存后执行"
msgid "Job type"
msgstr "任务类型"
#: ops/serializers/job.py:57 terminal/serializers/session.py:50
#: ops/serializers/job.py:57 terminal/serializers/session.py:47
msgid "Is finished"
msgstr "是否完成"
@ -4074,7 +4118,7 @@ msgid "My assets"
msgstr "我的资产"
#: rbac/tree.py:56 terminal/models/applet/applet.py:51
#: terminal/models/applet/applet.py:240 terminal/models/applet/host.py:28
#: terminal/models/applet/applet.py:244 terminal/models/applet/host.py:28
#: terminal/serializers/applet.py:15
msgid "Applet"
msgstr "远程应用"
@ -4104,23 +4148,23 @@ msgstr "测试成功"
msgid "Test mail sent to {}, please check"
msgstr "邮件已经发送{}, 请检查"
#: settings/api/ldap.py:173
#: settings/api/ldap.py:176
msgid "Synchronization start, please wait."
msgstr "同步开始,请稍等"
#: settings/api/ldap.py:177
#: settings/api/ldap.py:180
msgid "Synchronization is running, please wait."
msgstr "同步正在运行,请稍等"
#: settings/api/ldap.py:182
#: settings/api/ldap.py:185
msgid "Synchronization error: {}"
msgstr "同步错误: {}"
#: settings/api/ldap.py:220
#: settings/api/ldap.py:223
msgid "Get ldap users is None"
msgstr "获取 LDAP 用户为 None"
#: settings/api/ldap.py:230
#: settings/api/ldap.py:233
msgid "Imported {} users successfully (Organization: {})"
msgstr "成功导入 {} 个用户 ( 组织: {} )"
@ -5013,10 +5057,6 @@ msgstr "启用登录验证码"
msgid "Enable captcha to prevent robot authentication"
msgstr "开启验证码,防止机器人登录"
#: settings/serializers/security.py:151
msgid "Security"
msgstr "安全"
#: settings/serializers/security.py:154
msgid "Enable terminal register"
msgstr "终端注册"
@ -5558,7 +5598,7 @@ msgstr "严重"
msgid "High"
msgstr "较高"
#: terminal/const.py:32 terminal/const.py:66
#: terminal/const.py:32 terminal/const.py:67
#: users/templates/users/reset_password.html:50
msgid "Normal"
msgstr "正常"
@ -5567,19 +5607,19 @@ msgstr "正常"
msgid "Offline"
msgstr "离线"
#: terminal/const.py:62
#: terminal/const.py:63
msgid "Mismatch"
msgstr "未匹配"
#: terminal/const.py:67
#: terminal/const.py:68
msgid "Tunnel"
msgstr "隧道"
#: terminal/const.py:72
#: terminal/const.py:73
msgid "Read Only"
msgstr "只读"
#: terminal/const.py:73
#: terminal/const.py:74
msgid "Writable"
msgstr "读写"
@ -5635,7 +5675,7 @@ msgstr "只支持自定义平台"
msgid "Missing type in platform.yml"
msgstr "在 platform.yml 中缺少类型"
#: terminal/models/applet/applet.py:242 terminal/models/applet/host.py:34
#: terminal/models/applet/applet.py:246 terminal/models/applet/host.py:34
#: terminal/models/applet/host.py:134
msgid "Hosting"
msgstr "宿主机"
@ -5704,7 +5744,7 @@ msgstr "端点"
msgid "IP group"
msgstr "IP 组"
#: terminal/models/component/endpoint.py:103
#: terminal/models/component/endpoint.py:104
msgid "Endpoint rule"
msgstr "端点规则"
@ -5782,39 +5822,39 @@ msgstr "可以上传会话录像"
msgid "Can download session replay"
msgstr "可以下载会话录像"
#: terminal/models/session/session.py:35
#: terminal/models/session/session.py:34
msgid "Account id"
msgstr "账号 ID"
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:104
#: terminal/models/session/session.py:36 terminal/models/session/sharing.py:104
msgid "Login from"
msgstr "登录来源"
#: terminal/models/session/session.py:42
#: terminal/models/session/session.py:41
msgid "Replay"
msgstr "回放"
#: terminal/models/session/session.py:46
#: terminal/models/session/session.py:45
msgid "Date end"
msgstr "结束日期"
#: terminal/models/session/session.py:243
#: terminal/models/session/session.py:240
msgid "Session record"
msgstr "会话记录"
#: terminal/models/session/session.py:245
#: terminal/models/session/session.py:242
msgid "Can monitor session"
msgstr "可以监控会话"
#: terminal/models/session/session.py:246
#: terminal/models/session/session.py:243
msgid "Can share session"
msgstr "可以分享会话"
#: terminal/models/session/session.py:247
#: terminal/models/session/session.py:244
msgid "Can terminate session"
msgstr "可以终断会话"
#: terminal/models/session/session.py:248
#: terminal/models/session/session.py:245
msgid "Can validate session action perm"
msgstr "可以验证会话动作权限"
@ -6017,35 +6057,35 @@ msgstr "如果不同端点下的资产 IP 有冲突,使用资产标签实现"
msgid "Asset IP"
msgstr "资产 IP"
#: terminal/serializers/session.py:25 terminal/serializers/session.py:47
#: terminal/serializers/session.py:22 terminal/serializers/session.py:44
msgid "Can replay"
msgstr "是否可重放"
#: terminal/serializers/session.py:26 terminal/serializers/session.py:48
#: terminal/serializers/session.py:23 terminal/serializers/session.py:45
msgid "Can join"
msgstr "是否可加入"
#: terminal/serializers/session.py:27 terminal/serializers/session.py:51
#: terminal/serializers/session.py:24 terminal/serializers/session.py:48
msgid "Can terminate"
msgstr "是否可中断"
#: terminal/serializers/session.py:43
#: terminal/serializers/session.py:40
msgid "User ID"
msgstr "用户 ID"
#: terminal/serializers/session.py:44
#: terminal/serializers/session.py:41
msgid "Asset ID"
msgstr "资产 ID"
#: terminal/serializers/session.py:45
#: terminal/serializers/session.py:42
msgid "Login from display"
msgstr "登录来源名称"
#: terminal/serializers/session.py:52
#: terminal/serializers/session.py:49
msgid "Terminal display"
msgstr "终端显示"
#: terminal/serializers/session.py:57
#: terminal/serializers/session.py:54
msgid "Command amount"
msgstr "命令数量"
@ -6356,11 +6396,11 @@ msgstr "审批步骤"
msgid "Relation snapshot"
msgstr "工单快照"
#: tickets/models/ticket/general.py:392
#: tickets/models/ticket/general.py:398
msgid "Please try again"
msgstr "请再次尝试"
#: tickets/models/ticket/general.py:461
#: tickets/models/ticket/general.py:467
msgid "Super ticket"
msgstr "超级工单"
@ -7617,3 +7657,6 @@ msgstr "旗舰版"
#: xpack/plugins/license/models.py:86
msgid "Community edition"
msgstr "社区版"
#~ msgid "Please enable cookies and try again."
#~ msgstr "设置你的浏览器支持cookie"