diff --git a/apps/accounts/api/automations/check_account.py b/apps/accounts/api/automations/check_account.py index 5b1f8df06..5ce21a4bf 100644 --- a/apps/accounts/api/automations/check_account.py +++ b/apps/accounts/api/automations/check_account.py @@ -2,6 +2,10 @@ # from django.db.models import Q, Count from rest_framework.decorators import action +from rest_framework.exceptions import MethodNotAllowed +from operator import itemgetter + +from rest_framework.response import Response from accounts import serializers from accounts.const import AutomationTypes @@ -15,6 +19,8 @@ __all__ = [ 'AccountRiskViewSet', 'CheckAccountEngineViewSet', ] +from ...risk_handlers import RiskHandler + class CheckAccountAutomationViewSet(OrgBulkModelViewSet): model = CheckAccountAutomation @@ -46,6 +52,7 @@ class AccountRiskViewSet(OrgBulkModelViewSet): serializer_classes = { 'default': serializers.AccountRiskSerializer, 'assets': serializers.AssetRiskSerializer, + 'handle': serializers.HandleRiskSerializer } ordering_fields = ( 'asset', 'risk', 'status', 'username', 'date_created' @@ -53,9 +60,15 @@ class AccountRiskViewSet(OrgBulkModelViewSet): ordering = ('-asset', 'date_created') rbac_perms = { 'sync_accounts': 'assets.add_accountrisk', - 'assets': 'accounts.view_accountrisk' + 'assets': 'accounts.view_accountrisk', + 'handle': 'accounts.change_accountrisk' } - http_method_names = ['get', 'head', 'options'] + + def update(self, request, *args, **kwargs): + raise MethodNotAllowed('PUT') + + def create(self, request, *args, **kwargs): + raise MethodNotAllowed('POST') @action(methods=['get'], detail=False, url_path='assets') def assets(self, request, *args, **kwargs): @@ -72,6 +85,32 @@ class AccountRiskViewSet(OrgBulkModelViewSet): ) return self.get_paginated_response_from_queryset(queryset) + @action(methods=['post'], detail=False, url_path='handle') + def handle(self, request, *args, **kwargs): + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + + asset, username, act, risk = itemgetter('asset', 'username', 'action', 'risk')(serializer.validated_data) + handler = RiskHandler(asset=asset, username=username) + data = handler.handle(act, risk) + if not data: + data = {'message': 'Success'} + return Response(data) + + # 处理风险 + + def handle_add_account(self): + pass + + def handle_disable_remote(self): + pass + + def handle_delete_remote(self): + pass + + def handle_delete_both(self): + pass + class CheckAccountEngineViewSet(JMSModelViewSet): search_fields = ('name',) diff --git a/apps/accounts/api/automations/gather_account.py b/apps/accounts/api/automations/gather_account.py index e691d3aa3..5b55befed 100644 --- a/apps/accounts/api/automations/gather_account.py +++ b/apps/accounts/api/automations/gather_account.py @@ -13,18 +13,22 @@ from accounts.filters import GatheredAccountFilterSet from accounts.models import GatherAccountsAutomation, AutomationExecution from accounts.models import GatheredAccount from assets.models import Asset +from accounts.tasks.common import quickstart_automation_by_snapshot from orgs.mixins.api import OrgBulkModelViewSet from .base import AutomationExecutionViewSet __all__ = [ - 'GatherAccountsAutomationViewSet', 'GatherAccountsExecutionViewSet', - 'GatheredAccountViewSet' + "GatherAccountsAutomationViewSet", + "GatherAccountsExecutionViewSet", + "GatheredAccountViewSet", ] +from ...risk_handlers import RiskHandler + class GatherAccountsAutomationViewSet(OrgBulkModelViewSet): model = GatherAccountsAutomation - filterset_fields = ('name',) + filterset_fields = ("name",) search_fields = filterset_fields serializer_class = serializers.GatherAccountAutomationSerializer @@ -47,52 +51,56 @@ class GatherAccountsExecutionViewSet(AutomationExecutionViewSet): class GatheredAccountViewSet(OrgBulkModelViewSet): model = GatheredAccount - search_fields = ('username',) + search_fields = ("username",) filterset_class = GatheredAccountFilterSet + ordering = ("status",) serializer_classes = { - 'default': serializers.GatheredAccountSerializer, - 'status': serializers.GatheredAccountActionSerializer, + "default": serializers.GatheredAccountSerializer, + "status": serializers.GatheredAccountActionSerializer, } rbac_perms = { - 'sync_accounts': 'assets.add_gatheredaccount', - 'discover': 'assets.add_gatheredaccount', - 'status': 'assets.change_gatheredaccount', + "sync_accounts": "assets.add_gatheredaccount", + "discover": "assets.add_gatheredaccount", + "status": "assets.change_gatheredaccount", } - @action(methods=['put'], detail=True, url_path='status') + @action(methods=["put"], detail=True, url_path="status") def status(self, request, *args, **kwargs): instance = self.get_object() - instance.status = request.data.get('status') - instance.save(update_fields=['status']) + instance.status = request.data.get("status") + instance.save(update_fields=["status"]) - if instance.status == 'confirmed': + if instance.status == "confirmed": GatheredAccount.sync_accounts([instance]) return Response(status=status.HTTP_200_OK) - @action(methods=['get'], detail=False, url_path='discover') - def discover(self, request, *args, **kwargs): - asset_id = request.query_params.get('asset_id') - if not asset_id: - return Response(status=status.HTTP_400_BAD_REQUEST, data={'asset_id': 'This field is required.'}) + @action(methods=["post"], detail=False, url_path="delete-remote") + def delete_remote(self, request, *args, **kwargs): + asset_id = request.data.get("asset_id") + username = request.data.get("username") asset = get_object_or_404(Asset, pk=asset_id) + handler = RiskHandler(asset, username) + handler.handle_delete_remote() + return Response(status=status.HTTP_200_OK) + + @action(methods=["get"], detail=False, url_path="discover") + def discover(self, request, *args, **kwargs): + asset_id = request.query_params.get("asset_id") + if not asset_id: + return Response(status=400, data={"asset_id": "This field is required."}) + + get_object_or_404(Asset, pk=asset_id) execution = AutomationExecution() execution.snapshot = { - 'assets': [asset_id], - 'nodes': [], - 'type': 'gather_accounts', - 'is_sync_account': False, - 'check_risk': True, - 'name': 'Adhoc gather accounts: {}'.format(asset_id), + "assets": [asset_id], + "nodes": [], + "type": "gather_accounts", + "is_sync_account": False, + "check_risk": True, + "name": "Adhoc gather accounts: {}".format(asset_id), } execution.save() execution.start() report = execution.manager.gen_report() return HttpResponse(report) - - @action(methods=['post'], detail=False, url_path='sync-accounts') - def sync_accounts(self, request, *args, **kwargs): - gathered_account_ids = request.data.get('gathered_account_ids') - gathered_accounts = self.model.objects.filter(id__in=gathered_account_ids).filter(status='') - self.model.sync_accounts(gathered_accounts) - return Response(status=status.HTTP_201_CREATED) diff --git a/apps/accounts/automations/gather_account/manager.py b/apps/accounts/automations/gather_account/manager.py index 446f00647..74a2457eb 100644 --- a/apps/accounts/automations/gather_account/manager.py +++ b/apps/accounts/automations/gather_account/manager.py @@ -56,7 +56,7 @@ def get_items_diff(ori_account, d): class AnalyseAccountRisk: long_time = timezone.timedelta(days=90) datetime_check_items = [ - {"field": "date_last_login", "risk": "zombie", "delta": long_time}, + {"field": "date_last_login", "risk": "long_time_no_login", "delta": long_time}, { "field": "date_password_change", "risk": "long_time_password", @@ -154,7 +154,7 @@ class AnalyseAccountRisk: else: self._create_risk( dict( - **basic, risk="ghost", details=[{"datetime": self.now.isoformat()}] + **basic, risk="new_found", details=[{"datetime": self.now.isoformat()}] ) ) @@ -227,8 +227,9 @@ class GatherAccountsManager(AccountBasePlaybookManager): for asset_id, username in accounts: self.ori_asset_usernames[str(asset_id)].add(username) - ga_accounts = GatheredAccount.objects.filter(asset__in=assets).prefetch_related( - "asset" + ga_accounts = ( + GatheredAccount.objects.filter(asset__in=assets) + .prefetch_related("asset") ) for account in ga_accounts: self.ori_gathered_usernames[str(account.asset_id)].add(account.username) @@ -315,8 +316,10 @@ class GatherAccountsManager(AccountBasePlaybookManager): .filter(present=True) .update(present=False) ) - queryset.filter(username__in=ori_users).filter(present=False).update( - present=True + ( + queryset.filter(username__in=ori_users) + .filter(present=False) + .update(present=True) ) @bulk_create_decorator(GatheredAccount) diff --git a/apps/accounts/automations/remove_account/manager.py b/apps/accounts/automations/remove_account/manager.py index 38a22538b..a743a6d0e 100644 --- a/apps/accounts/automations/remove_account/manager.py +++ b/apps/accounts/automations/remove_account/manager.py @@ -1,4 +1,5 @@ import os +from collections import defaultdict from copy import deepcopy from django.db.models import QuerySet @@ -12,10 +13,16 @@ logger = get_logger(__name__) class RemoveAccountManager(AccountBasePlaybookManager): + super_accounts = ['root', 'administrator'] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.host_account_mapper = {} + self.host_account_mapper = dict() + self.host_accounts = defaultdict(list) + snapshot_account = self.execution.snapshot.get('accounts', []) + self.snapshot_asset_account_map = defaultdict(list) + for account in snapshot_account: + self.snapshot_asset_account_map[str(account['asset'])].append(account) def prepare_runtime_dir(self): path = super().prepare_runtime_dir() @@ -30,28 +37,22 @@ class RemoveAccountManager(AccountBasePlaybookManager): def method_type(cls): return AutomationTypes.remove_account - def get_gather_accounts(self, privilege_account, gather_accounts: QuerySet): - gather_account_ids = self.execution.snapshot['gather_accounts'] - gather_accounts = gather_accounts.filter(id__in=gather_account_ids) - gather_accounts = gather_accounts.exclude( - username__in=[privilege_account.username, 'root', 'Administrator'] - ) - return gather_accounts - def host_callback(self, host, asset=None, account=None, automation=None, path_dir=None, **kwargs): if host.get('error'): return host - gather_accounts = asset.gatheredaccount_set.all() - gather_accounts = self.get_gather_accounts(account, gather_accounts) - inventory_hosts = [] + accounts_to_remove = self.snapshot_asset_account_map.get(str(asset.id), []) - for gather_account in gather_accounts: + for account in accounts_to_remove: + username = account.get('username') + if not username or username.lower() in self.super_accounts: + print("Super account can not be remove: ", username) + continue h = deepcopy(host) - h['name'] += '(' + gather_account.username + ')' - self.host_account_mapper[h['name']] = (asset, gather_account) - h['account'] = {'username': gather_account.username} + h['name'] += '(' + username + ')' + self.host_account_mapper[h['name']] = account + h['account'] = {'username': username} inventory_hosts.append(h) return inventory_hosts diff --git a/apps/accounts/migrations/0005_account_secret_reset.py b/apps/accounts/migrations/0005_account_secret_reset.py index 32da0b8ee..e58d818c3 100644 --- a/apps/accounts/migrations/0005_account_secret_reset.py +++ b/apps/accounts/migrations/0005_account_secret_reset.py @@ -101,7 +101,7 @@ class Migration(migrations.Migration): name="status", field=models.CharField( blank=True, - choices=[("confirmed", "Confirmed"), ("ignored", "Ignored")], + choices=[("confirmed", "Confirmed"), ("ignored", "Ignored"), ("pending", "Pending")], default="", max_length=32, verbose_name="Status", diff --git a/apps/accounts/migrations/0008_remove_accountrisk_confirmed_accountrisk_status_and_more.py b/apps/accounts/migrations/0008_remove_accountrisk_confirmed_accountrisk_status_and_more.py index fc737791f..1c1a31219 100644 --- a/apps/accounts/migrations/0008_remove_accountrisk_confirmed_accountrisk_status_and_more.py +++ b/apps/accounts/migrations/0008_remove_accountrisk_confirmed_accountrisk_status_and_more.py @@ -19,7 +19,7 @@ class Migration(migrations.Migration): name="status", field=models.CharField( blank=True, - choices=[("confirmed", "Confirmed"), ("ignored", "Ignored")], + choices=[("confirmed", "Confirmed"), ("ignored", "Ignored"), ("pending", "Pending")], default="", max_length=32, verbose_name="Status", diff --git a/apps/accounts/migrations/0015_alter_accountrisk_risk.py b/apps/accounts/migrations/0015_alter_accountrisk_risk.py new file mode 100644 index 000000000..dbe87b13a --- /dev/null +++ b/apps/accounts/migrations/0015_alter_accountrisk_risk.py @@ -0,0 +1,35 @@ +# Generated by Django 4.1.13 on 2024-11-26 08:21 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("accounts", "0014_gatheraccountsautomation_check_risk"), + ] + + operations = [ + migrations.AlterField( + model_name="accountrisk", + name="risk", + field=models.CharField( + choices=[ + ("long_time_no_login", "Long time no login"), + ("new_found", "New found"), + ("groups_changed", "Groups change"), + ("sudoers_changed", "Sudo changed"), + ("authorized_keys_changed", "Authorized keys changed"), + ("account_deleted", "Account delete"), + ("password_expired", "Password expired"), + ("long_time_password", "Long time no change"), + ("weak_password", "Weak password"), + ("password_error", "Password error"), + ("no_admin_account", "No admin account"), + ("others", "Others"), + ], + max_length=128, + verbose_name="Risk", + ), + ), + ] diff --git a/apps/accounts/migrations/0016_alter_accountrisk_status_and_more.py b/apps/accounts/migrations/0016_alter_accountrisk_status_and_more.py new file mode 100644 index 000000000..d6a7f4c8f --- /dev/null +++ b/apps/accounts/migrations/0016_alter_accountrisk_status_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 4.1.13 on 2024-11-27 11:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("accounts", "0015_alter_accountrisk_risk"), + ] + + operations = [ + migrations.AlterField( + model_name="accountrisk", + name="status", + field=models.CharField( + blank=True, + choices=[ + ("", "Pending"), + ("confirmed", "Confirmed"), + ("ignored", "Ignored"), + ], + default="", + max_length=32, + verbose_name="Status", + ), + ), + migrations.AlterField( + model_name="gatheredaccount", + name="status", + field=models.CharField( + blank=True, + choices=[ + ("", "Pending"), + ("confirmed", "Confirmed"), + ("ignored", "Ignored"), + ], + default="", + max_length=32, + verbose_name="Status", + ), + ), + ] diff --git a/apps/accounts/models/automations/check_account.py b/apps/accounts/models/automations/check_account.py index a3d7fc221..73ed30376 100644 --- a/apps/accounts/models/automations/check_account.py +++ b/apps/accounts/models/automations/check_account.py @@ -39,8 +39,8 @@ class CheckAccountAutomation(AccountBaseAutomation): class RiskChoice(TextChoices): # 依赖自动发现的 - zombie = 'zombie', _('Long time no login') # 好久没登录的账号, 禁用、删除 - ghost = 'ghost', _('Not managed') # 未被纳管的账号, 纳管, 删除, 禁用 + long_time_no_login = 'long_time_no_login', _('Long time no login') # 好久没登录的账号, 禁用、删除 + new_found = 'new_found', _('New found') # 未被纳管的账号, 纳管, 删除, 禁用 group_changed = 'groups_changed', _('Groups change') # 组变更, 确认 sudo_changed = 'sudoers_changed', _('Sudo changed') # sudo 变更, 确认 authorized_keys_changed = 'authorized_keys_changed', _('Authorized keys changed') # authorized_keys 变更, 确认 @@ -58,7 +58,7 @@ class AccountRisk(JMSOrgBaseModel): asset = models.ForeignKey('assets.Asset', on_delete=models.CASCADE, related_name='risks', verbose_name=_('Asset')) username = models.CharField(max_length=32, verbose_name=_('Username')) risk = models.CharField(max_length=128, verbose_name=_('Risk'), choices=RiskChoice.choices) - status = models.CharField(max_length=32, choices=ConfirmOrIgnore.choices, default='', blank=True, verbose_name=_('Status')) + status = models.CharField(max_length=32, choices=ConfirmOrIgnore.choices, default=ConfirmOrIgnore.pending, blank=True, verbose_name=_('Status')) details = models.JSONField(default=list, verbose_name=_('Details')) class Meta: diff --git a/apps/accounts/models/automations/gather_account.py b/apps/accounts/models/automations/gather_account.py index 7934c0257..572a891a8 100644 --- a/apps/accounts/models/automations/gather_account.py +++ b/apps/accounts/models/automations/gather_account.py @@ -24,7 +24,7 @@ class GatheredAccount(JMSOrgBaseModel): present = models.BooleanField(default=False, verbose_name=_("Present")) # 系统资产上是否还存在 date_password_change = models.DateTimeField(null=True, verbose_name=_("Date change password")) date_password_expired = models.DateTimeField(null=True, verbose_name=_("Date password expired")) - status = models.CharField(max_length=32, default='', blank=True, choices=ConfirmOrIgnore.choices, verbose_name=_("Status")) + status = models.CharField(max_length=32, default=ConfirmOrIgnore.pending, blank=True, choices=ConfirmOrIgnore.choices, verbose_name=_("Status")) @property def address(self): diff --git a/apps/accounts/risk_handlers.py b/apps/accounts/risk_handlers.py new file mode 100644 index 000000000..98d4855ef --- /dev/null +++ b/apps/accounts/risk_handlers.py @@ -0,0 +1,71 @@ +from django.utils.translation import gettext_lazy as _ + +from accounts.models import GatheredAccount, AccountRisk, SecretType, AutomationExecution + +TYPE_CHOICES = [ + ("ignore", _("Ignore")), + ("disable_remote", _("Disable remote")), + ("delete_remote", _("Delete remote")), + ("delete_both", _("Delete remote")), + ("add_account", _("Add account")), + ("change_password_add", _("Change password and Add")), + ("change_password", _("Change password")), +] + + +class RiskHandler: + def __init__(self, asset, username): + self.asset = asset + self.username = username + + def handle(self, tp, risk=""): + attr = f"handle_{tp}" + if hasattr(self, attr): + return getattr(self, attr)(risk=risk) + else: + raise ValueError(f"Invalid risk type: {tp}") + + def handle_ignore(self, risk=""): + pass + + def handle_add_account(self, risk=""): + data = { + "username": self.username, + "name": self.username, + "secret_type": SecretType.PASSWORD, + "source": "collected", + } + self.asset.accounts.get_or_create(defaults=data, username=self.username) + GatheredAccount.objects.filter(asset=self.asset, username=self.username).update( + present=True, status="confirmed" + ) + ( + AccountRisk.objects.filter(asset=self.asset, username=self.username) + .filter(risk__in=["new_found"]) + .update(status="confirmed") + ) + + def handle_disable_remote(self, risk=""): + pass + + def handle_delete_remote(self, risk=""): + asset = self.asset + execution = AutomationExecution() + execution.snapshot = { + "assets": [str(asset.id)], + "accounts": [{"asset": str(asset.id), "username": self.username}], + "type": "remove_account", + "name": "Remove remote account: {}@{}".format(self.username, asset.name), + } + execution.save() + execution.start() + return execution + + def handle_delete_both(self, risk=""): + pass + + def handle_change_password_add(self, risk=""): + pass + + def handle_change_password(self, risk=""): + pass diff --git a/apps/accounts/serializers/automations/check_account.py b/apps/accounts/serializers/automations/check_account.py index effde3275..dc75f4548 100644 --- a/apps/accounts/serializers/automations/check_account.py +++ b/apps/accounts/serializers/automations/check_account.py @@ -4,36 +4,47 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from accounts.const import AutomationTypes -from accounts.models import CheckAccountAutomation, AccountRisk, RiskChoice, CheckAccountEngine +from accounts.models import ( + CheckAccountAutomation, + AccountRisk, + RiskChoice, + CheckAccountEngine, +) from assets.models import Asset from common.serializers.fields import ObjectRelatedField, LabeledChoiceField from common.utils import get_logger from .base import BaseAutomationSerializer +from accounts.risk_handlers import TYPE_CHOICES logger = get_logger(__file__) __all__ = [ - 'CheckAccountAutomationSerializer', - 'AccountRiskSerializer', - 'CheckAccountEngineSerializer', - 'AssetRiskSerializer', + "CheckAccountAutomationSerializer", + "AccountRiskSerializer", + "CheckAccountEngineSerializer", + "AssetRiskSerializer", + "HandleRiskSerializer", ] class AccountRiskSerializer(serializers.ModelSerializer): - asset = ObjectRelatedField(queryset=Asset.objects.all(), required=False,label=_("Asset")) - risk = LabeledChoiceField(choices=RiskChoice.choices, required=False, read_only=True, label=_("Risk")) + asset = ObjectRelatedField( + queryset=Asset.objects.all(), required=False, label=_("Asset") + ) + risk = LabeledChoiceField( + choices=RiskChoice.choices, required=False, read_only=True, label=_("Risk") + ) class Meta: model = AccountRisk fields = [ - 'id', 'asset', 'username', 'risk', 'status', - 'date_created', 'details', + "id", "asset", "username", "risk", "status", + "date_created", "details", ] @classmethod def setup_eager_loading(cls, queryset): - return queryset.select_related('asset') + return queryset.select_related("asset") class RiskSummarySerializer(serializers.Serializer): @@ -42,10 +53,14 @@ class RiskSummarySerializer(serializers.Serializer): class AssetRiskSerializer(serializers.Serializer): - id = serializers.CharField(max_length=128, required=False, source='asset__id') - name = serializers.CharField(max_length=128, required=False, source='asset__name') - address = serializers.CharField(max_length=128, required=False, source='asset__address') - platform = serializers.CharField(max_length=128, required=False, source='asset__platform__name') + id = serializers.CharField(max_length=128, required=False, source="asset__id") + name = serializers.CharField(max_length=128, required=False, source="asset__name") + address = serializers.CharField( + max_length=128, required=False, source="asset__address" + ) + platform = serializers.CharField( + max_length=128, required=False, source="asset__platform__name" + ) risk_total = serializers.IntegerField() risk_summary = serializers.SerializerMethodField() @@ -53,16 +68,26 @@ class AssetRiskSerializer(serializers.Serializer): def get_risk_summary(obj): summary = {} for risk in RiskChoice.choices: - summary[f'{risk[0]}_count'] = obj.get(f'{risk[0]}_count', 0) + summary[f"{risk[0]}_count"] = obj.get(f"{risk[0]}_count", 0) return summary +class HandleRiskSerializer(serializers.Serializer): + username = serializers.CharField(max_length=128) + asset = serializers.PrimaryKeyRelatedField(queryset=Asset.objects) + action = serializers.ChoiceField(choices=TYPE_CHOICES) + risk = serializers.ChoiceField(choices=RiskChoice.choices, allow_null=True, allow_blank=True) + + class CheckAccountAutomationSerializer(BaseAutomationSerializer): class Meta: model = CheckAccountAutomation read_only_fields = BaseAutomationSerializer.Meta.read_only_fields - fields = BaseAutomationSerializer.Meta.fields \ - + ['engines', 'recipients'] + read_only_fields + fields = ( + BaseAutomationSerializer.Meta.fields + + ["engines", "recipients"] + + read_only_fields + ) extra_kwargs = BaseAutomationSerializer.Meta.extra_kwargs @property @@ -73,8 +98,8 @@ class CheckAccountAutomationSerializer(BaseAutomationSerializer): class CheckAccountEngineSerializer(serializers.ModelSerializer): class Meta: model = CheckAccountEngine - fields = ['id', 'name', 'slug', 'is_active', 'comment'] - read_only_fields = ['slug'] + fields = ["id", "name", "slug", "is_active", "comment"] + read_only_fields = ["slug"] extra_kwargs = { - 'is_active': {'required': False}, + "is_active": {"required": False}, } diff --git a/apps/accounts/tasks/remove_account.py b/apps/accounts/tasks/remove_account.py index 60fe82327..6e1f25de6 100644 --- a/apps/accounts/tasks/remove_account.py +++ b/apps/accounts/tasks/remove_account.py @@ -41,7 +41,7 @@ def remove_accounts_task(gather_account_ids): task_snapshot = { 'assets': [str(i.asset_id) for i in gather_accounts], - 'gather_accounts': [str(i.id) for i in gather_accounts], + 'accounts': [{'asset': str(i.asset_id), 'username': i.username} for i in gather_accounts], } tp = AutomationTypes.remove_account diff --git a/apps/accounts/utils.py b/apps/accounts/utils.py index 9df67daf6..9e2b84e74 100644 --- a/apps/accounts/utils.py +++ b/apps/accounts/utils.py @@ -4,6 +4,7 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from accounts.const import SecretType, DEFAULT_PASSWORD_RULES + from common.utils import ssh_key_gen, random_string from common.utils import validate_ssh_private_key, parse_ssh_private_key_str @@ -26,12 +27,12 @@ class SecretGenerator: rules = copy.deepcopy(DEFAULT_PASSWORD_RULES) rules.update(password_rules) rules = { - 'length': rules['length'], - 'lower': rules['lowercase'], - 'upper': rules['uppercase'], - 'digit': rules['digit'], - 'special_char': rules['symbol'], - 'exclude_chars': rules.get('exclude_symbols', ''), + "length": rules["length"], + "lower": rules["lowercase"], + "upper": rules["uppercase"], + "digit": rules["digit"], + "special_char": rules["symbol"], + "exclude_chars": rules.get("exclude_symbols", ""), } return random_string(**rules) @@ -46,10 +47,12 @@ class SecretGenerator: def validate_password_for_ansible(password): - """ 校验 Ansible 不支持的特殊字符 """ - if password.startswith('{{') and password.endswith('}}'): + """校验 Ansible 不支持的特殊字符""" + if password.startswith("{{") and password.endswith("}}"): raise serializers.ValidationError( - _('If the password starts with {{` and ends with }} `, then the password is not allowed.') + _( + "If the password starts with {{` and ends with }} `, then the password is not allowed." + ) ) diff --git a/apps/assets/tasks/common.py b/apps/assets/tasks/common.py index 1931347b1..977347000 100644 --- a/apps/assets/tasks/common.py +++ b/apps/assets/tasks/common.py @@ -45,3 +45,4 @@ def quickstart_automation(task_name, tp, task_snapshot=None): trigger=Trigger.manual, **data ) execution.start() + return execution diff --git a/apps/common/const/choices.py b/apps/common/const/choices.py index 935c68992..16049fc54 100644 --- a/apps/common/const/choices.py +++ b/apps/common/const/choices.py @@ -76,6 +76,7 @@ class Language(models.TextChoices): class ConfirmOrIgnore(models.TextChoices): + pending = '', _('Pending') confirmed = 'confirmed', _('Confirmed') ignored = 'ignored', _('Ignored') diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index 5162f86db..0a37b8532 100644 --- a/apps/i18n/core/en/LC_MESSAGES/django.po +++ b/apps/i18n/core/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-05 18:32+0800\n" +"POT-Creation-Date: 2024-11-26 16:25+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: accounts/api/automations/base.py:79 tickets/api/ticket.py:132 +#: accounts/api/automations/base.py:81 tickets/api/ticket.py:132 msgid "The parameter 'action' must be [{}]" msgstr "" @@ -36,8 +36,12 @@ msgstr "" #: accounts/automations/backup_account/handlers.py:156 #: accounts/automations/backup_account/handlers.py:295 -#: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:76 +#: accounts/automations/backup_account/manager.py:35 +#: accounts/automations/change_secret/manager.py:227 +#: assets/models/automations/base.py:121 ops/serializers/job.py:52 +#: ops/serializers/job.py:76 #: settings/templates/ldap/_msg_import_ldap_user.html:7 +#: terminal/serializers/session.py:47 msgid "Duration" msgstr "" @@ -64,7 +68,7 @@ msgstr "" #: accounts/automations/backup_account/handlers.py:219 #: accounts/const/automation.py:113 -#: accounts/serializers/automations/change_secret.py:169 +#: accounts/serializers/automations/change_secret.py:168 #: assets/serializers/automations/base.py:52 audits/const.py:64 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 @@ -75,7 +79,7 @@ msgstr "Success" #: accounts/automations/backup_account/handlers.py:221 #: accounts/const/account.py:34 accounts/const/automation.py:112 -#: accounts/serializers/automations/change_secret.py:170 audits/const.py:65 +#: accounts/serializers/automations/change_secret.py:169 audits/const.py:65 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 msgid "Failed" @@ -101,19 +105,22 @@ msgstr "" msgid "An exception occurred during task execution" msgstr "" -#: accounts/automations/backup_account/manager.py:23 +#: accounts/automations/backup_account/manager.py:16 msgid "The account backup plan is being executed" msgstr "" -#: accounts/automations/backup_account/manager.py:37 +#: accounts/automations/backup_account/manager.py:33 +#: accounts/automations/change_secret/manager.py:225 msgid "Plan execution end" msgstr "" -#: accounts/automations/change_secret/manager.py:97 -msgid "No pending accounts found" -msgstr "" +#: accounts/automations/change_secret/manager.py:147 +#, fuzzy +#| msgid "Domains amount" +msgid "! No pending accounts found" +msgstr "Zones amount" -#: accounts/automations/change_secret/manager.py:225 +#: accounts/automations/change_secret/manager.py:218 #, python-format msgid "Success: %s, Failed: %s, Total: %s" msgstr "" @@ -180,7 +187,7 @@ msgid "Local" msgstr "" #: accounts/const/account.py:27 -msgid "Collected" +msgid "Discovery" msgstr "" #: accounts/const/account.py:28 accounts/serializers/account/account.py:28 @@ -341,24 +348,29 @@ msgid "User %s view/export secret" msgstr "" #: accounts/models/account.py:49 -#: accounts/models/automations/check_account.py:54 -#: accounts/models/automations/gather_account.py:26 +#: accounts/models/automations/check_account.py:58 +#: accounts/models/automations/gather_account.py:16 #: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:273 -#: accounts/serializers/account/gathered_account.py:20 -#: accounts/serializers/automations/change_secret.py:114 -#: accounts/serializers/automations/change_secret.py:146 +#: accounts/serializers/automations/change_secret.py:113 +#: accounts/serializers/automations/change_secret.py:145 +#: accounts/serializers/automations/check_account.py:32 +#: accounts/serializers/automations/gather_account.py:43 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 +#: accounts/templates/accounts/check_account_report.html:58 +#: accounts/templates/accounts/gather_account_report.html:65 +#: accounts/templates/accounts/gather_account_report.html:88 +#: accounts/templates/accounts/gather_account_report.html:113 #: acls/serializers/base.py:123 assets/models/asset/common.py:95 #: assets/models/asset/common.py:359 assets/models/cmd_filter.py:36 -#: audits/models.py:58 authentication/models/connection_token.py:36 +#: audits/models.py:58 authentication/models/connection_token.py:39 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: terminal/models/session/session.py:32 terminal/notifications.py:155 #: terminal/serializers/command.py:17 terminal/serializers/session.py:28 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 -#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 +#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:289 msgid "Asset" msgstr "" @@ -408,8 +420,8 @@ msgid "Change secret status" msgstr "" #: accounts/models/account.py:66 -#: accounts/serializers/automations/change_secret.py:116 -#: accounts/serializers/automations/change_secret.py:147 +#: accounts/serializers/automations/change_secret.py:115 +#: accounts/serializers/automations/change_secret.py:146 #: accounts/templates/accounts/change_secret_failed_info.html:12 #: acls/serializers/base.py:124 #: acls/templates/acls/asset_login_reminder.html:10 @@ -484,7 +496,9 @@ msgid "Account backup plan" msgstr "" #: accounts/models/automations/backup_account.py:120 -#: assets/models/automations/base.py:115 audits/models.py:65 +#: accounts/templates/accounts/check_account_report.html:17 +#: accounts/templates/accounts/gather_account_report.html:17 +#: assets/models/automations/base.py:119 audits/models.py:65 #: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:242 #: ops/templates/ops/celery_task_log.html:101 #: perms/models/asset_permission.py:78 settings/serializers/feature.py:25 @@ -509,21 +523,21 @@ msgstr "" #: accounts/models/automations/backup_account.py:131 #: accounts/serializers/account/backup.py:48 #: accounts/serializers/automations/base.py:56 -#: assets/models/automations/base.py:122 -#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:240 -#: xpack/plugins/cloud/serializers/task.py:243 +#: assets/models/automations/base.py:127 +#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:241 +#: xpack/plugins/cloud/serializers/task.py:247 msgid "Trigger mode" msgstr "" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158 -#: xpack/plugins/cloud/models.py:229 +#: xpack/plugins/cloud/models.py:230 msgid "Reason" msgstr "" #: accounts/models/automations/backup_account.py:136 -#: accounts/serializers/automations/change_secret.py:113 -#: accounts/serializers/automations/change_secret.py:148 +#: accounts/serializers/automations/change_secret.py:112 +#: accounts/serializers/automations/change_secret.py:147 #: ops/serializers/job.py:74 terminal/serializers/session.py:52 msgid "Is success" msgstr "Is success" @@ -568,14 +582,19 @@ msgstr "" msgid "Can add push account execution" msgstr "" -#: accounts/models/automations/base.py:54 +#: accounts/models/automations/base.py:57 msgid "SSH key change strategy" msgstr "" +#: accounts/models/automations/base.py:61 +msgid "Check connection after change" +msgstr "" + #: accounts/models/automations/change_secret.py:15 -#: accounts/models/automations/gather_account.py:102 +#: accounts/models/automations/check_account.py:18 +#: accounts/models/automations/gather_account.py:93 #: accounts/serializers/account/backup.py:40 -#: accounts/serializers/automations/change_secret.py:60 +#: accounts/serializers/automations/change_secret.py:59 #: settings/serializers/auth/ldap.py:100 #: settings/serializers/auth/ldap_ha.py:82 settings/serializers/msg.py:45 msgid "Recipient" @@ -585,28 +604,29 @@ msgstr "Recipients" msgid "Change secret automation" msgstr "" -#: accounts/models/automations/change_secret.py:39 +#: accounts/models/automations/change_secret.py:36 msgid "Old secret" msgstr "" -#: accounts/models/automations/change_secret.py:40 +#: accounts/models/automations/change_secret.py:37 msgid "New secret" msgstr "" -#: accounts/models/automations/change_secret.py:41 +#: accounts/models/automations/change_secret.py:38 msgid "Date started" msgstr "" -#: accounts/models/automations/change_secret.py:42 -#: assets/models/automations/base.py:116 ops/models/base.py:56 +#: accounts/models/automations/change_secret.py:39 +#: assets/models/automations/base.py:120 ops/models/base.py:56 #: ops/models/celery.py:90 ops/models/job.py:243 #: terminal/models/applet/host.py:142 msgid "Date finished" msgstr "" -#: accounts/models/automations/change_secret.py:44 -#: accounts/models/automations/gather_account.py:29 -#: assets/models/automations/base.py:113 +#: accounts/models/automations/change_secret.py:41 +#: accounts/models/automations/check_account.py:61 +#: accounts/models/automations/gather_account.py:27 +#: assets/models/automations/base.py:117 #: assets/serializers/automations/base.py:39 audits/models.py:208 #: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:234 #: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140 @@ -615,12 +635,12 @@ msgstr "" #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:147 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: tickets/serializers/super_ticket.py:13 -#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 -#: xpack/plugins/cloud/models.py:292 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:226 +#: xpack/plugins/cloud/models.py:293 msgid "Status" msgstr "" -#: accounts/models/automations/change_secret.py:46 +#: accounts/models/automations/change_secret.py:43 #: accounts/serializers/account/account.py:275 #: accounts/templates/accounts/change_secret_failed_info.html:13 #: assets/const/automation.py:9 @@ -631,70 +651,90 @@ msgstr "" msgid "Error" msgstr "" -#: accounts/models/automations/change_secret.py:50 +#: accounts/models/automations/change_secret.py:47 msgid "Change secret record" msgstr "" +#: accounts/models/automations/check_account.py:17 +msgid "Engines" +msgstr "" + +#: accounts/models/automations/check_account.py:33 +msgid "account check automation" +msgstr "" + +#: accounts/models/automations/check_account.py:35 +msgid "Can view check account execution" +msgstr "" + #: accounts/models/automations/check_account.py:36 -#: accounts/models/automations/gather_account.py:119 -msgid "Gather account automation" -msgstr "" - -#: accounts/models/automations/check_account.py:40 -msgid "Long time no login" -msgstr "" - -#: accounts/models/automations/check_account.py:41 -msgid "Not managed" +msgid "Can add check account execution" msgstr "" #: accounts/models/automations/check_account.py:42 -msgid "Long time no change" +msgid "Long time no login" msgstr "" #: accounts/models/automations/check_account.py:43 +msgid "New found" +msgstr "" + +#: accounts/models/automations/check_account.py:44 +msgid "Groups change" +msgstr "" + +#: accounts/models/automations/check_account.py:45 +msgid "Sudo changed" +msgstr "" + +#: accounts/models/automations/check_account.py:46 +msgid "Authorized keys changed" +msgstr "" + +#: accounts/models/automations/check_account.py:47 +msgid "Account delete" +msgstr "" + +#: accounts/models/automations/check_account.py:48 +#: authentication/errors/const.py:23 +msgid "Password expired" +msgstr "" + +#: accounts/models/automations/check_account.py:49 +msgid "Long time no change" +msgstr "" + +#: accounts/models/automations/check_account.py:51 #, fuzzy #| msgid "Zip encrypt password" msgid "Weak password" msgstr "Passphrase" -#: accounts/models/automations/check_account.py:44 +#: accounts/models/automations/check_account.py:52 msgid "Password error" msgstr "" -#: accounts/models/automations/check_account.py:45 -#: authentication/errors/const.py:23 -msgid "Password expired" -msgstr "" - -#: accounts/models/automations/check_account.py:46 -msgid "Group change" -msgstr "" - -#: accounts/models/automations/check_account.py:47 -msgid "Sudo changed" -msgstr "" - -#: accounts/models/automations/check_account.py:48 -msgid "Account delete" -msgstr "" - -#: accounts/models/automations/check_account.py:49 +#: accounts/models/automations/check_account.py:53 #, fuzzy #| msgid "Domains amount" msgid "No admin account" msgstr "Zones amount" -#: accounts/models/automations/check_account.py:50 +#: accounts/models/automations/check_account.py:54 msgid "Others" msgstr "" -#: accounts/models/automations/check_account.py:55 -#: accounts/models/automations/gather_account.py:27 +#: accounts/models/automations/check_account.py:59 +#: accounts/models/automations/gather_account.py:17 #: accounts/models/automations/push_account.py:15 accounts/models/base.py:65 -#: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19 -#: acls/serializers/base.py:50 audits/models.py:188 authentication/forms.py:21 -#: authentication/forms.py:23 authentication/models/temp_token.py:9 +#: accounts/serializers/account/virtual.py:21 +#: accounts/templates/accounts/check_account_report.html:59 +#: accounts/templates/accounts/gather_account_report.html:66 +#: accounts/templates/accounts/gather_account_report.html:89 +#: accounts/templates/accounts/gather_account_report.html:114 +#: acls/serializers/base.py:19 acls/serializers/base.py:50 audits/models.py:188 +#: authentication/forms.py:21 authentication/forms.py:23 +#: authentication/models/temp_token.py:9 #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 #: terminal/serializers/storage.py:136 users/forms/profile.py:31 @@ -704,37 +744,83 @@ msgstr "" msgid "Username" msgstr "" -#: accounts/models/automations/check_account.py:56 +#: accounts/models/automations/check_account.py:60 +#: accounts/serializers/automations/check_account.py:35 msgid "Risk" msgstr "" -#: accounts/models/automations/check_account.py:57 common/const/choices.py:79 -msgid "Confirmed" +#: accounts/models/automations/check_account.py:62 +msgid "Details" msgstr "" -#: accounts/models/automations/check_account.py:60 +#: accounts/models/automations/check_account.py:65 msgid "Account risk" msgstr "" -#: accounts/models/automations/gather_account.py:16 -#, fuzzy -#| msgid "Is service account" -msgid "Gathered account" -msgstr "Is service account" - -#: accounts/models/automations/gather_account.py:17 -msgid "Diff" +#: accounts/models/automations/check_account.py:96 accounts/models/base.py:64 +#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 +#: acls/models/base.py:96 acls/models/command_acl.py:21 +#: acls/serializers/base.py:35 assets/models/asset/common.py:93 +#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 +#: assets/models/domain.py:19 assets/models/label.py:18 +#: assets/models/platform.py:15 assets/models/platform.py:94 +#: assets/serializers/asset/common.py:171 assets/serializers/platform.py:153 +#: assets/serializers/platform.py:273 +#: authentication/backends/passkey/models.py:10 +#: authentication/models/ssh_key.py:12 +#: authentication/serializers/connect_token_secret.py:113 +#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 +#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 +#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 +#: ops/serializers/job.py:18 orgs/models.py:82 +#: perms/models/asset_permission.py:61 rbac/models/role.py:29 +#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 +#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 +#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:12 +#: terminal/models/component/endpoint.py:109 +#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 +#: terminal/models/component/terminal.py:85 +#: terminal/models/virtualapp/provider.py:10 +#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 +#: users/forms/profile.py:32 users/models/group.py:13 +#: users/models/preference.py:11 users/models/user/__init__.py:57 +#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:309 +#: xpack/plugins/cloud/serializers/task.py:75 +msgid "Name" msgstr "" +#: accounts/models/automations/check_account.py:97 +msgid "Slug" +msgstr "" + +#: accounts/models/automations/check_account.py:98 accounts/models/base.py:70 +#: assets/models/automations/base.py:22 assets/models/cmd_filter.py:39 +#: assets/models/label.py:22 +#: authentication/serializers/connect_token_secret.py:117 +#: terminal/models/applet/applet.py:41 +#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:269 +msgid "Is active" +msgstr "Active" + #: accounts/models/automations/gather_account.py:18 -msgid "Item" +msgid "Address login" msgstr "" #: accounts/models/automations/gather_account.py:19 -#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 -#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 -#: users/models/user/__init__.py:311 -msgid "Date created" +msgid "Date login" +msgstr "" + +#: accounts/models/automations/gather_account.py:20 +msgid "Authorized keys" +msgstr "" + +#: accounts/models/automations/gather_account.py:21 +msgid "Sudoers" +msgstr "" + +#: accounts/models/automations/gather_account.py:22 +#: perms/serializers/permission.py:44 users/serializers/user.py:257 +msgid "Groups" msgstr "" #: accounts/models/automations/gather_account.py:23 @@ -746,34 +832,33 @@ msgid "Present" msgstr "" #: accounts/models/automations/gather_account.py:25 -msgid "Date login" -msgstr "" +#, fuzzy +#| msgid "Zip encrypt password" +msgid "Date change password" +msgstr "Passphrase" -#: accounts/models/automations/gather_account.py:28 -msgid "Address login" -msgstr "" +#: accounts/models/automations/gather_account.py:26 +#, fuzzy +#| msgid "Date password last updated" +msgid "Date password expired" +msgstr "Password updated" -#: accounts/models/automations/gather_account.py:30 -msgid "Authorized keys" -msgstr "" - -#: accounts/models/automations/gather_account.py:31 -msgid "Sudoers" -msgstr "" - -#: accounts/models/automations/gather_account.py:32 -#: perms/serializers/permission.py:44 users/serializers/user.py:257 -msgid "Groups" -msgstr "" - -#: accounts/models/automations/gather_account.py:88 +#: accounts/models/automations/gather_account.py:79 msgid "Gather asset accounts" msgstr "" -#: accounts/models/automations/gather_account.py:100 +#: accounts/models/automations/gather_account.py:91 msgid "Is sync account" msgstr "Is sync account" +#: accounts/models/automations/gather_account.py:94 +msgid "Check risk" +msgstr "" + +#: accounts/models/automations/gather_account.py:112 +msgid "Gather account automation" +msgstr "" + #: accounts/models/automations/push_account.py:14 msgid "Triggers" msgstr "" @@ -824,49 +909,10 @@ msgstr "" msgid "Password rules" msgstr "" -#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20 -#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21 -#: acls/serializers/base.py:35 assets/models/asset/common.py:93 -#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 -#: assets/models/domain.py:19 assets/models/label.py:18 -#: assets/models/platform.py:15 assets/models/platform.py:94 -#: assets/serializers/asset/common.py:171 assets/serializers/platform.py:153 -#: assets/serializers/platform.py:273 -#: authentication/backends/passkey/models.py:10 -#: authentication/models/ssh_key.py:12 -#: authentication/serializers/connect_token_secret.py:113 -#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 -#: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15 -#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 -#: ops/serializers/job.py:18 orgs/models.py:82 -#: perms/models/asset_permission.py:61 rbac/models/role.py:29 -#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 -#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 -#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:12 -#: terminal/models/component/endpoint.py:109 -#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 -#: terminal/models/component/terminal.py:85 -#: terminal/models/virtualapp/provider.py:10 -#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 -#: users/forms/profile.py:32 users/models/group.py:13 -#: users/models/preference.py:11 users/models/user/__init__.py:57 -#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:308 -#: xpack/plugins/cloud/serializers/task.py:75 -msgid "Name" -msgstr "" - #: accounts/models/base.py:69 msgid "Privileged" msgstr "" -#: accounts/models/base.py:70 assets/models/automations/base.py:21 -#: assets/models/cmd_filter.py:39 assets/models/label.py:22 -#: authentication/serializers/connect_token_secret.py:117 -#: terminal/models/applet/applet.py:41 -#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:269 -msgid "Is active" -msgstr "Active" - #: accounts/models/template.py:18 msgid "Auto push" msgstr "" @@ -879,7 +925,7 @@ msgstr "" msgid "Push params" msgstr "" -#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:389 +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:390 msgid "Account template" msgstr "" @@ -982,11 +1028,11 @@ msgstr "" #: accounts/serializers/account/account.py:207 #: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24 -#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20 +#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:21 #: assets/models/cmd_filter.py:74 assets/models/platform.py:96 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:155 #: assets/serializers/platform.py:167 audits/serializers.py:53 -#: audits/serializers.py:170 +#: audits/serializers.py:170 authentication/models/connection_token.py:60 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: terminal/models/component/storage.py:58 @@ -1020,7 +1066,7 @@ msgstr "" #: accounts/serializers/account/account.py:286 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: acls/templates/acls/asset_login_reminder.html:9 -#: assets/models/automations/base.py:19 +#: assets/models/automations/base.py:20 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/platform.py:176 assets/serializers/platform.py:208 #: authentication/api/connection_token.py:410 ops/models/base.py:17 @@ -1063,7 +1109,7 @@ msgstr "" #: acls/templates/acls/user_login_reminder.html:8 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 #: audits/models.py:90 audits/models.py:172 audits/models.py:271 -#: audits/serializers.py:171 authentication/models/connection_token.py:32 +#: audits/serializers.py:171 authentication/models/connection_token.py:35 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 @@ -1096,7 +1142,7 @@ msgid "Executions" msgstr "Executions" #: accounts/serializers/account/backup.py:41 -#: accounts/serializers/automations/change_secret.py:61 +#: accounts/serializers/automations/change_secret.py:60 msgid "Currently only mail sending is supported" msgstr "" @@ -1164,7 +1210,7 @@ msgstr "" #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 -#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:123 msgid "Comment" msgstr "Description" @@ -1190,7 +1236,7 @@ msgid "Name already exists" msgstr "" #: accounts/serializers/automations/base.py:54 -#: assets/models/automations/base.py:118 +#: assets/models/automations/base.py:123 #: assets/serializers/automations/base.py:38 msgid "Automation snapshot" msgstr "" @@ -1199,33 +1245,37 @@ msgstr "" msgid "SSH Key strategy" msgstr "" -#: accounts/serializers/automations/change_secret.py:59 +#: accounts/serializers/automations/change_secret.py:58 msgid "Please enter your account username" msgstr "" -#: accounts/serializers/automations/change_secret.py:63 +#: accounts/serializers/automations/change_secret.py:62 msgid "Notification before execution" msgstr "" -#: accounts/serializers/automations/change_secret.py:65 +#: accounts/serializers/automations/change_secret.py:64 msgid "" "Secret parameter settings, currently only effective for assets of the host " "type." msgstr "" -#: accounts/serializers/automations/change_secret.py:87 +#: accounts/serializers/automations/change_secret.py:86 msgid "* Please enter the correct password length" msgstr "" -#: accounts/serializers/automations/change_secret.py:91 +#: accounts/serializers/automations/change_secret.py:90 msgid "* Password length range 6-30 bits" msgstr "" -#: accounts/serializers/automations/change_secret.py:120 -#: assets/models/automations/base.py:127 +#: accounts/serializers/automations/change_secret.py:119 +#: assets/models/automations/base.py:134 msgid "Automation task execution" msgstr "" +#: accounts/serializers/automations/gather_account.py:27 +msgid "Whether to check the risk of the gathered accounts." +msgstr "" + # msgid "Success" # msgstr "" #: accounts/signal_handlers.py:48 @@ -1349,17 +1399,6 @@ msgstr "" msgid "Remove historical accounts that are out of range." msgstr "" -#: accounts/tasks/scan_account.py:14 -#, fuzzy -#| msgid "Is sync account" -msgid "Scan accounts" -msgstr "Is sync account" - -#: accounts/tasks/scan_account.py:16 assets/tasks/automation.py:27 -#: orgs/tasks.py:11 terminal/tasks.py:33 -msgid "Unused" -msgstr "" - #: accounts/tasks/template.py:11 msgid "Template sync info to related accounts" msgstr "" @@ -1411,6 +1450,8 @@ msgid "Deleted account" msgstr "" #: accounts/templates/accounts/change_secret_failed_info.html:3 +#: accounts/templates/accounts/check_account_report.html:13 +#: accounts/templates/accounts/gather_account_report.html:13 #: terminal/serializers/task.py:10 msgid "Task name" msgstr "" @@ -1429,16 +1470,159 @@ msgid "" "or pushing the account. Please check and handle it in time." msgstr "" -#: accounts/utils.py:52 +#: accounts/templates/accounts/check_account_report.html:4 +#: accounts/templates/accounts/gather_account_report.html:4 +msgid "" +"The following is a summary of the account check tasks. Please review and " +"handle them" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:21 +#: accounts/templates/accounts/gather_account_report.html:21 +#: settings/serializers/feature.py:26 +#: settings/templates/ldap/_msg_import_ldap_user.html:6 +#: terminal/models/session/session.py:46 +msgid "Date end" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:25 +#: accounts/templates/accounts/gather_account_report.html:25 +msgid "Time using" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:29 +#: accounts/templates/accounts/gather_account_report.html:30 +#, fuzzy +#| msgid "Resource count" +msgid "Assets count" +msgstr "Resource count" + +#: accounts/templates/accounts/check_account_report.html:33 +#, fuzzy +#| msgid "Domains amount" +msgid "Account count" +msgstr "Zones amount" + +#: accounts/templates/accounts/check_account_report.html:37 +#, fuzzy +#| msgid "Zip encrypt password" +msgid "Week password count" +msgstr "Passphrase" + +#: accounts/templates/accounts/check_account_report.html:41 +#, fuzzy +#| msgid "Is service account" +msgid "Ok count" +msgstr "Is service account" + +#: accounts/templates/accounts/check_account_report.html:45 +#, fuzzy +#| msgid "Domains amount" +msgid "No password count" +msgstr "Zones amount" + +#: accounts/templates/accounts/check_account_report.html:53 +msgid "Account check details" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:57 +#: accounts/templates/accounts/gather_account_report.html:64 +#: accounts/templates/accounts/gather_account_report.html:87 +#: accounts/templates/accounts/gather_account_report.html:112 +msgid "No." +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:60 +#: accounts/templates/accounts/gather_account_report.html:115 +#: assets/models/automations/base.py:130 ops/models/base.py:51 +#: ops/models/job.py:238 xpack/plugins/cloud/models.py:224 +msgid "Result" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:69 +#, fuzzy +#| msgid "Zip encrypt password" +msgid "Week password" +msgstr "Passphrase" + +#: accounts/templates/accounts/gather_account_report.html:34 +#, fuzzy +#| msgid "Resource count" +msgid "Asset success count" +msgstr "Resource count" + +#: accounts/templates/accounts/gather_account_report.html:38 +#, fuzzy +#| msgid "Is service account" +msgid "Asset failed count" +msgstr "Is service account" + +#: accounts/templates/accounts/gather_account_report.html:42 +msgid "Asset not support count" +msgstr "" + +#: accounts/templates/accounts/gather_account_report.html:47 +#, fuzzy +#| msgid "Domains amount" +msgid "Account new found count" +msgstr "Zones amount" + +#: accounts/templates/accounts/gather_account_report.html:51 +#, fuzzy +#| msgid "Domains amount" +msgid "Account lost count" +msgstr "Zones amount" + +#: accounts/templates/accounts/gather_account_report.html:59 +#, fuzzy +#| msgid "Domains amount" +msgid "New found accounts" +msgstr "Zones amount" + +#: accounts/templates/accounts/gather_account_report.html:82 +#, fuzzy +#| msgid "Is sync account" +msgid "Lost accounts" +msgstr "Is sync account" + +#: accounts/templates/accounts/gather_account_report.html:107 +msgid "New found risks" +msgstr "" + +#: accounts/utils.py:53 msgid "" "If the password starts with {{` and ends with }} `, then the password is not " "allowed." msgstr "" -#: accounts/utils.py:59 +#: accounts/utils.py:61 msgid "private key invalid or passphrase error" msgstr "" +#: accounts/utils.py:66 +msgid "Ignore" +msgstr "" + +#: accounts/utils.py:67 +msgid "Disable remote" +msgstr "" + +#: accounts/utils.py:68 accounts/utils.py:69 +msgid "Delete remote" +msgstr "" + +#: accounts/utils.py:70 accounts/utils.py:72 +#, fuzzy +#| msgid "Is service account" +msgid "Add account" +msgstr "Is service account" + +#: accounts/utils.py:71 +#, fuzzy +#| msgid "Date password last updated" +msgid "Change password and Add" +msgstr "Password updated" + #: acls/apps.py:7 msgid "App Acls" msgstr "ACLs" @@ -1469,12 +1653,12 @@ msgid "Notify and warn" msgstr "" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:315 msgid "Priority" msgstr "" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:316 msgid "1-100, the lower the value will be match first" msgstr "" @@ -1485,7 +1669,7 @@ msgstr "" #: acls/models/base.py:43 assets/models/asset/common.py:171 #: authentication/models/access_key.py:25 -#: authentication/models/connection_token.py:53 +#: authentication/models/connection_token.py:56 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 #: perms/models/asset_permission.py:82 @@ -1501,7 +1685,7 @@ msgstr "Active" msgid "Users" msgstr "" -#: acls/models/base.py:98 assets/models/automations/base.py:17 +#: acls/models/base.py:98 assets/models/automations/base.py:18 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:148 #: assets/serializers/asset/common.py:409 perms/serializers/permission.py:55 #: perms/serializers/user_permission.py:75 rbac/tree.py:35 @@ -1518,7 +1702,7 @@ msgid "Command" msgstr "" #: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 -#: xpack/plugins/cloud/models.py:355 +#: xpack/plugins/cloud/models.py:356 msgid "Regex" msgstr "" @@ -1635,7 +1819,7 @@ msgstr "" #: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8 -#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:390 +#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:391 msgid "IP" msgstr "" @@ -1727,38 +1911,34 @@ msgstr "" msgid "App Assets" msgstr "Assets" -#: assets/automations/base/manager.py:187 -msgid "{} disabled" -msgstr "" - -#: assets/automations/base/manager.py:250 +#: assets/automations/base/manager.py:323 msgid " - Platform {} ansible disabled" msgstr "" -#: assets/automations/base/manager.py:323 +#: assets/automations/base/manager.py:496 msgid ">>> Task preparation phase" msgstr "" -#: assets/automations/base/manager.py:326 +#: assets/automations/base/manager.py:500 #, python-brace-format msgid ">>> Executing tasks in batches, total {runner_count}" msgstr "" -#: assets/automations/base/manager.py:328 +#: assets/automations/base/manager.py:505 msgid ">>> Start executing tasks" msgstr "" -#: assets/automations/base/manager.py:330 +#: assets/automations/base/manager.py:507 msgid ">>> No tasks need to be executed" msgstr "" -#: assets/automations/base/manager.py:335 +#: assets/automations/base/manager.py:511 #, python-brace-format msgid ">>> Begin executing batch {index} of tasks" msgstr "" #: assets/automations/ping_gateway/manager.py:33 -#: authentication/models/connection_token.py:131 +#: authentication/models/connection_token.py:143 msgid "No account" msgstr "" @@ -2018,7 +2198,7 @@ msgstr "" msgid "The database to authenticate against" msgstr "" -#: assets/const/protocol.py:232 authentication/models/connection_token.py:43 +#: assets/const/protocol.py:232 authentication/models/connection_token.py:46 msgid "Connect options" msgstr "" @@ -2093,7 +2273,7 @@ msgstr "" #: assets/serializers/asset/common.py:150 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 -#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 +#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:386 msgid "Platform" msgstr "" @@ -2150,25 +2330,36 @@ msgstr "" msgid "Proxy" msgstr "" -#: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 +#: assets/models/automations/base.py:19 assets/models/cmd_filter.py:32 #: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:386 +#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:387 msgid "Node" msgstr "" -#: assets/models/automations/base.py:22 ops/models/job.py:237 +#: assets/models/automations/base.py:23 ops/models/job.py:237 #: settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "" -#: assets/models/automations/base.py:29 assets/models/automations/base.py:111 +#: assets/models/automations/base.py:33 assets/models/automations/base.py:115 msgid "Automation task" msgstr "" -#: assets/models/automations/base.py:104 +#: assets/models/automations/base.py:108 msgid "Asset automation task" msgstr "" +#: assets/models/automations/base.py:118 assets/models/cmd_filter.py:41 +#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 +#: users/models/user/__init__.py:311 +msgid "Date created" +msgstr "" + +#: assets/models/automations/base.py:129 ops/models/base.py:52 +#: ops/models/job.py:239 xpack/plugins/cloud/manager.py:87 +msgid "Summary" +msgstr "" + #: assets/models/automations/gather_facts.py:15 msgid "Gather asset facts" msgstr "" @@ -2240,7 +2431,7 @@ msgstr "" #: assets/models/label.py:19 assets/models/node.py:539 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:24 -#: authentication/models/connection_token.py:29 +#: authentication/models/connection_token.py:32 #: authentication/serializers/connect_token_secret.py:125 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:36 #: users/models/preference.py:13 @@ -2463,7 +2654,7 @@ msgstr "" #: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 -#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:388 +#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:389 #: xpack/plugins/cloud/serializers/task.py:35 msgid "Protocols" msgstr "" @@ -2714,6 +2905,10 @@ msgstr "" msgid "Asset execute automation" msgstr "" +#: assets/tasks/automation.py:27 orgs/tasks.py:11 terminal/tasks.py:33 +msgid "Unused" +msgstr "" + #: assets/tasks/gather_facts.py:22 assets/tasks/gather_facts.py:34 msgid "Gather assets facts" msgstr "" @@ -3086,7 +3281,7 @@ msgstr "" msgid "%s %s this resource" msgstr "" -#: audits/serializers.py:172 authentication/models/connection_token.py:47 +#: audits/serializers.py:172 authentication/models/connection_token.py:50 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80 #: tickets/models/ticket/apply_application.py:31 #: tickets/models/ticket/apply_asset.py:20 users/models/user/__init__.py:98 @@ -3606,21 +3801,21 @@ msgstr "" msgid "IP group" msgstr "" -#: authentication/models/connection_token.py:38 +#: authentication/models/connection_token.py:41 #: terminal/serializers/storage.py:114 msgid "Account name" msgstr "" -#: authentication/models/connection_token.py:39 +#: authentication/models/connection_token.py:42 msgid "Input username" msgstr "" -#: authentication/models/connection_token.py:40 +#: authentication/models/connection_token.py:43 #: authentication/serializers/connection_token.py:18 msgid "Input secret" msgstr "" -#: authentication/models/connection_token.py:41 +#: authentication/models/connection_token.py:44 #: authentication/serializers/connect_token_secret.py:114 #: settings/serializers/msg.py:28 terminal/models/applet/applet.py:43 #: terminal/models/virtualapp/virtualapp.py:24 @@ -3629,63 +3824,67 @@ msgstr "" msgid "Protocol" msgstr "" -#: authentication/models/connection_token.py:42 +#: authentication/models/connection_token.py:45 msgid "Connect method" msgstr "" -#: authentication/models/connection_token.py:44 +#: authentication/models/connection_token.py:47 msgid "User display" msgstr "" -#: authentication/models/connection_token.py:45 +#: authentication/models/connection_token.py:48 msgid "Asset display" msgstr "" -#: authentication/models/connection_token.py:46 +#: authentication/models/connection_token.py:49 msgid "Reusable" msgstr "" -#: authentication/models/connection_token.py:51 +#: authentication/models/connection_token.py:54 #: perms/models/asset_permission.py:83 msgid "From ticket" msgstr "" -#: authentication/models/connection_token.py:58 +#: authentication/models/connection_token.py:66 msgid "Can expire connection token" msgstr "" -#: authentication/models/connection_token.py:59 +#: authentication/models/connection_token.py:67 msgid "Can reuse connection token" msgstr "" -#: authentication/models/connection_token.py:61 +#: authentication/models/connection_token.py:69 msgid "Connection token" msgstr "" -#: authentication/models/connection_token.py:118 +#: authentication/models/connection_token.py:130 msgid "Connection token inactive" msgstr "" -#: authentication/models/connection_token.py:122 +#: authentication/models/connection_token.py:134 msgid "Connection token expired at: {}" msgstr "" -#: authentication/models/connection_token.py:125 +#: authentication/models/connection_token.py:137 msgid "No user or invalid user" msgstr "" -#: authentication/models/connection_token.py:128 +#: authentication/models/connection_token.py:140 msgid "No asset or inactive asset" msgstr "" -#: authentication/models/connection_token.py:274 +#: authentication/models/connection_token.py:288 msgid "Can view super connection token secret" msgstr "" -#: authentication/models/connection_token.py:276 +#: authentication/models/connection_token.py:290 msgid "Super connection token" msgstr "" +#: authentication/models/connection_token.py:307 +msgid "Admin connection token" +msgstr "" + #: authentication/models/private_token.py:11 msgid "Private Token" msgstr "" @@ -3736,7 +3935,7 @@ msgid "Component" msgstr "" #: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:387 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:388 msgid "Domain" msgstr "" @@ -4234,11 +4433,15 @@ msgstr "" msgid "Canceled" msgstr "" +#: common/const/choices.py:79 +msgid "Confirmed" +msgstr "" + #: common/const/choices.py:80 msgid "Ignored" msgstr "" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:412 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:411 #, python-format msgid "%(name)s was created successfully" msgstr "" @@ -4955,38 +5158,42 @@ msgstr "" msgid "no valid program entry found." msgstr "" -#: ops/mixin.py:30 ops/mixin.py:119 settings/serializers/auth/ldap.py:73 +#: ops/mixin.py:34 ops/mixin.py:166 settings/serializers/auth/ldap.py:73 #: settings/serializers/auth/ldap_ha.py:55 msgid "Periodic run" msgstr "Periodic" -#: ops/mixin.py:32 ops/mixin.py:105 ops/mixin.py:125 +#: ops/mixin.py:36 ops/mixin.py:113 ops/mixin.py:172 #: settings/serializers/auth/ldap.py:80 settings/serializers/auth/ldap_ha.py:62 msgid "Interval" msgstr "" -#: ops/mixin.py:35 ops/mixin.py:103 ops/mixin.py:122 +#: ops/mixin.py:39 ops/mixin.py:111 ops/mixin.py:169 #: settings/serializers/auth/ldap.py:77 settings/serializers/auth/ldap_ha.py:59 msgid "Crontab" msgstr "" -#: ops/mixin.py:39 ops/mixin.py:130 +#: ops/mixin.py:43 ops/mixin.py:177 msgid "Start Datetime" msgstr "" -#: ops/mixin.py:41 ops/mixin.py:132 +#: ops/mixin.py:45 ops/mixin.py:179 msgid "Datetime when the schedule should begin triggering the task to run" msgstr "" -#: ops/mixin.py:136 +#: ops/mixin.py:49 ops/models/base.py:22 ops/serializers/job.py:17 +msgid "Date last run" +msgstr "" + +#: ops/mixin.py:183 msgid "Run period" msgstr "Period" -#: ops/mixin.py:142 +#: ops/mixin.py:189 msgid "* Please enter a valid crontab expression" msgstr "" -#: ops/mixin.py:157 +#: ops/mixin.py:204 msgid "Require interval or crontab setting" msgstr "" @@ -5017,20 +5224,6 @@ msgstr "" msgid "Last execution" msgstr "" -#: ops/models/base.py:22 ops/serializers/job.py:17 -msgid "Date last run" -msgstr "" - -#: ops/models/base.py:51 ops/models/job.py:238 -#: xpack/plugins/cloud/models.py:223 -msgid "Result" -msgstr "" - -#: ops/models/base.py:52 ops/models/job.py:239 -#: xpack/plugins/cloud/manager.py:87 -msgid "Summary" -msgstr "" - #: ops/models/celery.py:16 msgid "Date last publish" msgstr "" @@ -5144,10 +5337,6 @@ msgstr "" msgid "Execute after saving" msgstr "Execute after saving" -#: ops/serializers/job.py:52 terminal/serializers/session.py:47 -msgid "Duration" -msgstr "" - #: ops/serializers/job.py:72 msgid "Job type" msgstr "" @@ -6559,12 +6748,6 @@ msgstr "" msgid "More Link" msgstr "" -#: settings/serializers/feature.py:26 -#: settings/templates/ldap/_msg_import_ldap_user.html:6 -#: terminal/models/session/session.py:46 -msgid "Date end" -msgstr "" - #: settings/serializers/feature.py:39 settings/serializers/feature.py:41 #: settings/serializers/feature.py:42 msgid "Announcement" @@ -8211,7 +8394,7 @@ msgid "Access key secret" msgstr "" #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100 -#: xpack/plugins/cloud/models.py:285 +#: xpack/plugins/cloud/models.py:286 msgid "Region" msgstr "" @@ -9755,7 +9938,7 @@ msgstr "" msgid "Public IP" msgstr "" -#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:359 +#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:360 msgid "Instance name" msgstr "" @@ -9838,49 +10021,49 @@ msgstr "" msgid "Failed to synchronize the instance \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:337 +#: xpack/plugins/cloud/manager.py:336 #, python-format msgid "" "The updated platform of asset \"%s\" is inconsistent with the original " "platform type. Skip platform and protocol updates" msgstr "" -#: xpack/plugins/cloud/manager.py:393 +#: xpack/plugins/cloud/manager.py:392 #, python-format msgid "The asset \"%s\" already exists" msgstr "" -#: xpack/plugins/cloud/manager.py:395 +#: xpack/plugins/cloud/manager.py:394 #, python-format msgid "Update asset \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:398 +#: xpack/plugins/cloud/manager.py:397 #, python-format msgid "Asset \"%s\" has been updated" msgstr "" -#: xpack/plugins/cloud/manager.py:408 +#: xpack/plugins/cloud/manager.py:407 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:429 +#: xpack/plugins/cloud/manager.py:428 #, python-format msgid "Set nodes \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:455 +#: xpack/plugins/cloud/manager.py:454 #, python-format msgid "Set accounts \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:471 +#: xpack/plugins/cloud/manager.py:470 #, python-format msgid "Set protocols \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:485 xpack/plugins/cloud/tasks.py:30 +#: xpack/plugins/cloud/manager.py:484 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "" @@ -9920,133 +10103,133 @@ msgstr "" msgid "IP network segment group" msgstr "" -#: xpack/plugins/cloud/models.py:115 +#: xpack/plugins/cloud/models.py:116 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" +msgid "Preferred IP type" msgstr "" -#: xpack/plugins/cloud/models.py:118 +#: xpack/plugins/cloud/models.py:119 msgid "Always update" msgstr "" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:121 msgid "Fully synchronous" msgstr "" -#: xpack/plugins/cloud/models.py:125 +#: xpack/plugins/cloud/models.py:126 msgid "Date last sync" msgstr "" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/models.py:377 -#: xpack/plugins/cloud/models.py:403 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/models.py:378 +#: xpack/plugins/cloud/models.py:404 msgid "Strategy" msgstr "" -#: xpack/plugins/cloud/models.py:133 xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:134 xpack/plugins/cloud/models.py:222 msgid "Sync instance task" msgstr "" -#: xpack/plugins/cloud/models.py:232 xpack/plugins/cloud/models.py:295 +#: xpack/plugins/cloud/models.py:233 xpack/plugins/cloud/models.py:296 msgid "Date sync" msgstr "" -#: xpack/plugins/cloud/models.py:236 +#: xpack/plugins/cloud/models.py:237 msgid "Sync instance snapshot" msgstr "" -#: xpack/plugins/cloud/models.py:244 +#: xpack/plugins/cloud/models.py:245 msgid "Sync instance task execution" msgstr "" -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/cloud/models.py:276 msgid "Sync task" msgstr "" -#: xpack/plugins/cloud/models.py:279 +#: xpack/plugins/cloud/models.py:280 msgid "Sync instance task history" msgstr "" -#: xpack/plugins/cloud/models.py:282 +#: xpack/plugins/cloud/models.py:283 msgid "Instance" msgstr "" -#: xpack/plugins/cloud/models.py:299 +#: xpack/plugins/cloud/models.py:300 msgid "Sync instance detail" msgstr "" -#: xpack/plugins/cloud/models.py:311 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:312 xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "" -#: xpack/plugins/cloud/models.py:321 +#: xpack/plugins/cloud/models.py:322 msgid "Task strategy" msgstr "" -#: xpack/plugins/cloud/models.py:348 +#: xpack/plugins/cloud/models.py:349 msgid "Equal" msgstr "" -#: xpack/plugins/cloud/models.py:349 +#: xpack/plugins/cloud/models.py:350 msgid "Not Equal" msgstr "" -#: xpack/plugins/cloud/models.py:350 +#: xpack/plugins/cloud/models.py:351 msgid "In" msgstr "" -#: xpack/plugins/cloud/models.py:351 +#: xpack/plugins/cloud/models.py:352 msgid "Contains" msgstr "" -#: xpack/plugins/cloud/models.py:352 +#: xpack/plugins/cloud/models.py:353 msgid "Exclude" msgstr "" -#: xpack/plugins/cloud/models.py:353 +#: xpack/plugins/cloud/models.py:354 msgid "Startswith" msgstr "" -#: xpack/plugins/cloud/models.py:354 +#: xpack/plugins/cloud/models.py:355 msgid "Endswith" msgstr "" -#: xpack/plugins/cloud/models.py:360 +#: xpack/plugins/cloud/models.py:361 msgid "Instance platform" msgstr "" -#: xpack/plugins/cloud/models.py:361 +#: xpack/plugins/cloud/models.py:362 msgid "Instance address" msgstr "" -#: xpack/plugins/cloud/models.py:368 +#: xpack/plugins/cloud/models.py:369 msgid "Rule attr" msgstr "" -#: xpack/plugins/cloud/models.py:372 +#: xpack/plugins/cloud/models.py:373 msgid "Rule match" msgstr "" -#: xpack/plugins/cloud/models.py:374 +#: xpack/plugins/cloud/models.py:375 msgid "Rule value" msgstr "" -#: xpack/plugins/cloud/models.py:381 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:382 xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "" -#: xpack/plugins/cloud/models.py:391 +#: xpack/plugins/cloud/models.py:392 msgid "Name strategy" msgstr "" -#: xpack/plugins/cloud/models.py:398 +#: xpack/plugins/cloud/models.py:399 msgid "Action attr" msgstr "" -#: xpack/plugins/cloud/models.py:400 +#: xpack/plugins/cloud/models.py:401 msgid "Action value" msgstr "" -#: xpack/plugins/cloud/models.py:407 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:408 xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "" @@ -10353,10 +10536,29 @@ msgstr "" msgid "Instance count" msgstr "" -#: xpack/plugins/cloud/tasks.py:44 +#: xpack/plugins/cloud/tasks.py:33 +msgid "" +"\n" +" Execute this task when manually or scheduled cloud synchronization " +"tasks are performed\n" +" " +msgstr "" + +#: xpack/plugins/cloud/tasks.py:52 msgid "Period clean sync instance task execution" msgstr "" +#: xpack/plugins/cloud/tasks.py:54 +msgid "" +"\n" +" Every day, according to the configuration in \"System Settings - " +"Tasks - Regular \n" +" clean-up - Cloud sync task history retention days\" the system will " +"clean up the execution \n" +" records generated by cloud synchronization\n" +" " +msgstr "" + #: xpack/plugins/interface/api.py:52 msgid "Restore default successfully." msgstr "" diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index 3d1302afe..5868c9a9f 100644 --- a/apps/i18n/core/ja/LC_MESSAGES/django.po +++ b/apps/i18n/core/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-05 18:32+0800\n" +"POT-Creation-Date: 2024-11-26 16:24+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: accounts/api/automations/base.py:79 tickets/api/ticket.py:132 +#: accounts/api/automations/base.py:81 tickets/api/ticket.py:132 msgid "The parameter 'action' must be [{}]" msgstr "パラメータ 'action' は [{}] でなければなりません。" @@ -36,8 +36,12 @@ msgstr "アセットまたはアプリケーション関連のバックアップ #: accounts/automations/backup_account/handlers.py:156 #: accounts/automations/backup_account/handlers.py:295 -#: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:76 +#: accounts/automations/backup_account/manager.py:35 +#: accounts/automations/change_secret/manager.py:227 +#: assets/models/automations/base.py:121 ops/serializers/job.py:52 +#: ops/serializers/job.py:76 #: settings/templates/ldap/_msg_import_ldap_user.html:7 +#: terminal/serializers/session.py:47 msgid "Duration" msgstr "時を過ごす" @@ -64,7 +68,7 @@ msgstr "仕上げ" #: accounts/automations/backup_account/handlers.py:219 #: accounts/const/automation.py:113 -#: accounts/serializers/automations/change_secret.py:169 +#: accounts/serializers/automations/change_secret.py:168 #: assets/serializers/automations/base.py:52 audits/const.py:64 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 @@ -75,7 +79,7 @@ msgstr "成功" #: accounts/automations/backup_account/handlers.py:221 #: accounts/const/account.py:34 accounts/const/automation.py:112 -#: accounts/serializers/automations/change_secret.py:170 audits/const.py:65 +#: accounts/serializers/automations/change_secret.py:169 audits/const.py:65 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 msgid "Failed" @@ -101,19 +105,22 @@ msgstr "計画終了" msgid "An exception occurred during task execution" msgstr "タスク実行中に例外が発生しました" -#: accounts/automations/backup_account/manager.py:23 +#: accounts/automations/backup_account/manager.py:16 msgid "The account backup plan is being executed" msgstr "アカウントのバックアップ計画を実行中です" -#: accounts/automations/backup_account/manager.py:37 +#: accounts/automations/backup_account/manager.py:33 +#: accounts/automations/change_secret/manager.py:225 msgid "Plan execution end" msgstr "計画実行終了" -#: accounts/automations/change_secret/manager.py:97 -msgid "No pending accounts found" +#: accounts/automations/change_secret/manager.py:147 +#, fuzzy +#| msgid "No pending accounts found" +msgid "! No pending accounts found" msgstr "保留中のアカウントが見つかりません" -#: accounts/automations/change_secret/manager.py:225 +#: accounts/automations/change_secret/manager.py:218 #, python-format msgid "Success: %s, Failed: %s, Total: %s" msgstr "成功: %s、失敗: %s、合計: %s" @@ -180,8 +187,8 @@ msgid "Local" msgstr "ローカル" #: accounts/const/account.py:27 -msgid "Collected" -msgstr "集めました" +msgid "Discovery" +msgstr "" #: accounts/const/account.py:28 accounts/serializers/account/account.py:28 #: settings/serializers/auth/sms.py:84 @@ -341,24 +348,29 @@ msgid "User %s view/export secret" msgstr "ユーザー %s がパスワードを閲覧/導き出しました" #: accounts/models/account.py:49 -#: accounts/models/automations/check_account.py:54 -#: accounts/models/automations/gather_account.py:26 +#: accounts/models/automations/check_account.py:58 +#: accounts/models/automations/gather_account.py:16 #: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:273 -#: accounts/serializers/account/gathered_account.py:20 -#: accounts/serializers/automations/change_secret.py:114 -#: accounts/serializers/automations/change_secret.py:146 +#: accounts/serializers/automations/change_secret.py:113 +#: accounts/serializers/automations/change_secret.py:145 +#: accounts/serializers/automations/check_account.py:32 +#: accounts/serializers/automations/gather_account.py:43 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 +#: accounts/templates/accounts/check_account_report.html:58 +#: accounts/templates/accounts/gather_account_report.html:65 +#: accounts/templates/accounts/gather_account_report.html:88 +#: accounts/templates/accounts/gather_account_report.html:113 #: acls/serializers/base.py:123 assets/models/asset/common.py:95 #: assets/models/asset/common.py:359 assets/models/cmd_filter.py:36 -#: audits/models.py:58 authentication/models/connection_token.py:36 +#: audits/models.py:58 authentication/models/connection_token.py:39 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: terminal/models/session/session.py:32 terminal/notifications.py:155 #: terminal/serializers/command.py:17 terminal/serializers/session.py:28 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 -#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 +#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:289 msgid "Asset" msgstr "資産" @@ -416,8 +428,8 @@ msgid "Change secret status" msgstr "パスワード変更パラメータ" #: accounts/models/account.py:66 -#: accounts/serializers/automations/change_secret.py:116 -#: accounts/serializers/automations/change_secret.py:147 +#: accounts/serializers/automations/change_secret.py:115 +#: accounts/serializers/automations/change_secret.py:146 #: accounts/templates/accounts/change_secret_failed_info.html:12 #: acls/serializers/base.py:124 #: acls/templates/acls/asset_login_reminder.html:10 @@ -492,7 +504,9 @@ msgid "Account backup plan" msgstr "アカウントバックアップ計画" #: accounts/models/automations/backup_account.py:120 -#: assets/models/automations/base.py:115 audits/models.py:65 +#: accounts/templates/accounts/check_account_report.html:17 +#: accounts/templates/accounts/gather_account_report.html:17 +#: assets/models/automations/base.py:119 audits/models.py:65 #: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:242 #: ops/templates/ops/celery_task_log.html:101 #: perms/models/asset_permission.py:78 settings/serializers/feature.py:25 @@ -517,21 +531,21 @@ msgstr "アカウントのバックアップスナップショット" #: accounts/models/automations/backup_account.py:131 #: accounts/serializers/account/backup.py:48 #: accounts/serializers/automations/base.py:56 -#: assets/models/automations/base.py:122 -#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:240 -#: xpack/plugins/cloud/serializers/task.py:243 +#: assets/models/automations/base.py:127 +#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:241 +#: xpack/plugins/cloud/serializers/task.py:247 msgid "Trigger mode" msgstr "トリガーモード" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158 -#: xpack/plugins/cloud/models.py:229 +#: xpack/plugins/cloud/models.py:230 msgid "Reason" msgstr "理由" #: accounts/models/automations/backup_account.py:136 -#: accounts/serializers/automations/change_secret.py:113 -#: accounts/serializers/automations/change_secret.py:148 +#: accounts/serializers/automations/change_secret.py:112 +#: accounts/serializers/automations/change_secret.py:147 #: ops/serializers/job.py:74 terminal/serializers/session.py:52 msgid "Is success" msgstr "成功は" @@ -576,14 +590,21 @@ msgstr "プッシュ アカウントの実行を表示する" msgid "Can add push account execution" msgstr "プッシュ アカウントの作成の実行" -#: accounts/models/automations/base.py:54 +#: accounts/models/automations/base.py:57 msgid "SSH key change strategy" msgstr "SSHキープッシュ方式" +#: accounts/models/automations/base.py:61 +#, fuzzy +#| msgid "Super connection token" +msgid "Check connection after change" +msgstr "スーパー接続トークン" + #: accounts/models/automations/change_secret.py:15 -#: accounts/models/automations/gather_account.py:102 +#: accounts/models/automations/check_account.py:18 +#: accounts/models/automations/gather_account.py:93 #: accounts/serializers/account/backup.py:40 -#: accounts/serializers/automations/change_secret.py:60 +#: accounts/serializers/automations/change_secret.py:59 #: settings/serializers/auth/ldap.py:100 #: settings/serializers/auth/ldap_ha.py:82 settings/serializers/msg.py:45 msgid "Recipient" @@ -593,28 +614,29 @@ msgstr "受信者" msgid "Change secret automation" msgstr "自動暗号化" -#: accounts/models/automations/change_secret.py:39 +#: accounts/models/automations/change_secret.py:36 msgid "Old secret" msgstr "オリジナルキー" -#: accounts/models/automations/change_secret.py:40 +#: accounts/models/automations/change_secret.py:37 msgid "New secret" msgstr "新しい鍵" -#: accounts/models/automations/change_secret.py:41 +#: accounts/models/automations/change_secret.py:38 msgid "Date started" msgstr "開始日" -#: accounts/models/automations/change_secret.py:42 -#: assets/models/automations/base.py:116 ops/models/base.py:56 +#: accounts/models/automations/change_secret.py:39 +#: assets/models/automations/base.py:120 ops/models/base.py:56 #: ops/models/celery.py:90 ops/models/job.py:243 #: terminal/models/applet/host.py:142 msgid "Date finished" msgstr "終了日" -#: accounts/models/automations/change_secret.py:44 -#: accounts/models/automations/gather_account.py:29 -#: assets/models/automations/base.py:113 +#: accounts/models/automations/change_secret.py:41 +#: accounts/models/automations/check_account.py:61 +#: accounts/models/automations/gather_account.py:27 +#: assets/models/automations/base.py:117 #: assets/serializers/automations/base.py:39 audits/models.py:208 #: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:234 #: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140 @@ -623,12 +645,12 @@ msgstr "終了日" #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:147 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: tickets/serializers/super_ticket.py:13 -#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 -#: xpack/plugins/cloud/models.py:292 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:226 +#: xpack/plugins/cloud/models.py:293 msgid "Status" msgstr "ステータス" -#: accounts/models/automations/change_secret.py:46 +#: accounts/models/automations/change_secret.py:43 #: accounts/serializers/account/account.py:275 #: accounts/templates/accounts/change_secret_failed_info.html:13 #: assets/const/automation.py:9 @@ -639,86 +661,112 @@ msgstr "ステータス" msgid "Error" msgstr "間違い" -#: accounts/models/automations/change_secret.py:50 +#: accounts/models/automations/change_secret.py:47 msgid "Change secret record" msgstr "パスワード レコードの変更" -#: accounts/models/automations/check_account.py:36 -#: accounts/models/automations/gather_account.py:119 -msgid "Gather account automation" -msgstr "自動収集アカウント" +#: accounts/models/automations/check_account.py:17 +msgid "Engines" +msgstr "" -#: accounts/models/automations/check_account.py:40 +#: accounts/models/automations/check_account.py:33 +#, fuzzy +#| msgid "Account execute automation" +msgid "account check automation" +msgstr "アカウント実行の自動化" + +#: accounts/models/automations/check_account.py:35 +#, fuzzy +#| msgid "Can view push account execution" +msgid "Can view check account execution" +msgstr "プッシュ アカウントの実行を表示する" + +#: accounts/models/automations/check_account.py:36 +#, fuzzy +#| msgid "Can add push account execution" +msgid "Can add check account execution" +msgstr "プッシュ アカウントの作成の実行" + +#: accounts/models/automations/check_account.py:42 #, fuzzy #| msgid "Login log" msgid "Long time no login" msgstr "ログインログ" -#: accounts/models/automations/check_account.py:41 -#, fuzzy -#| msgid "Not enabled" -msgid "Not managed" -msgstr "有効化されていません" - -#: accounts/models/automations/check_account.py:42 -#, fuzzy -#| msgid "On perm change" -msgid "Long time no change" -msgstr "権限が変更されたとき" - #: accounts/models/automations/check_account.py:43 #, fuzzy -#| msgid "Set password" -msgid "Weak password" -msgstr "パスワードの設定" +#| msgid "Not found" +msgid "New found" +msgstr "見つかりません" #: accounts/models/automations/check_account.py:44 #, fuzzy -#| msgid "Old password error" -msgid "Password error" -msgstr "古いパスワードエラー" - -#: accounts/models/automations/check_account.py:45 -#: authentication/errors/const.py:23 -msgid "Password expired" -msgstr "パスワード期限切れ" - -#: accounts/models/automations/check_account.py:46 -#, fuzzy #| msgid "After change" -msgid "Group change" +msgid "Groups change" msgstr "変更後" -#: accounts/models/automations/check_account.py:47 +#: accounts/models/automations/check_account.py:45 #, fuzzy #| msgid "Before change" msgid "Sudo changed" msgstr "変更前" -#: accounts/models/automations/check_account.py:48 +#: accounts/models/automations/check_account.py:46 +msgid "Authorized keys changed" +msgstr "" + +#: accounts/models/automations/check_account.py:47 #, fuzzy #| msgid "Account template" msgid "Account delete" msgstr "アカウント テンプレート" +#: accounts/models/automations/check_account.py:48 +#: authentication/errors/const.py:23 +msgid "Password expired" +msgstr "パスワード期限切れ" + #: accounts/models/automations/check_account.py:49 #, fuzzy +#| msgid "On perm change" +msgid "Long time no change" +msgstr "権限が変更されたとき" + +#: accounts/models/automations/check_account.py:51 +#, fuzzy +#| msgid "Set password" +msgid "Weak password" +msgstr "パスワードの設定" + +#: accounts/models/automations/check_account.py:52 +#, fuzzy +#| msgid "Old password error" +msgid "Password error" +msgstr "古いパスワードエラー" + +#: accounts/models/automations/check_account.py:53 +#, fuzzy #| msgid "No account" msgid "No admin account" msgstr "アカウントなし" -#: accounts/models/automations/check_account.py:50 +#: accounts/models/automations/check_account.py:54 #, fuzzy #| msgid "Other" msgid "Others" msgstr "その他" -#: accounts/models/automations/check_account.py:55 -#: accounts/models/automations/gather_account.py:27 +#: accounts/models/automations/check_account.py:59 +#: accounts/models/automations/gather_account.py:17 #: accounts/models/automations/push_account.py:15 accounts/models/base.py:65 -#: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19 -#: acls/serializers/base.py:50 audits/models.py:188 authentication/forms.py:21 -#: authentication/forms.py:23 authentication/models/temp_token.py:9 +#: accounts/serializers/account/virtual.py:21 +#: accounts/templates/accounts/check_account_report.html:59 +#: accounts/templates/accounts/gather_account_report.html:66 +#: accounts/templates/accounts/gather_account_report.html:89 +#: accounts/templates/accounts/gather_account_report.html:114 +#: acls/serializers/base.py:19 acls/serializers/base.py:50 audits/models.py:188 +#: authentication/forms.py:21 authentication/forms.py:23 +#: authentication/models/temp_token.py:9 #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 #: terminal/serializers/storage.py:136 users/forms/profile.py:31 @@ -728,42 +776,88 @@ msgstr "その他" msgid "Username" msgstr "ユーザー名" -#: accounts/models/automations/check_account.py:56 +#: accounts/models/automations/check_account.py:60 +#: accounts/serializers/automations/check_account.py:35 msgid "Risk" msgstr "" -#: accounts/models/automations/check_account.py:57 common/const/choices.py:79 +#: accounts/models/automations/check_account.py:62 #, fuzzy -#| msgid "Confirm" -msgid "Confirmed" -msgstr "確認" +#| msgid "Detail" +msgid "Details" +msgstr "詳細" -#: accounts/models/automations/check_account.py:60 +#: accounts/models/automations/check_account.py:65 #, fuzzy #| msgid "Accounts" msgid "Account risk" msgstr "アカウント" -#: accounts/models/automations/gather_account.py:16 -#, fuzzy -#| msgid "Gather account" -msgid "Gathered account" -msgstr "アカウントを集める" +#: accounts/models/automations/check_account.py:96 accounts/models/base.py:64 +#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 +#: acls/models/base.py:96 acls/models/command_acl.py:21 +#: acls/serializers/base.py:35 assets/models/asset/common.py:93 +#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 +#: assets/models/domain.py:19 assets/models/label.py:18 +#: assets/models/platform.py:15 assets/models/platform.py:94 +#: assets/serializers/asset/common.py:171 assets/serializers/platform.py:153 +#: assets/serializers/platform.py:273 +#: authentication/backends/passkey/models.py:10 +#: authentication/models/ssh_key.py:12 +#: authentication/serializers/connect_token_secret.py:113 +#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 +#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 +#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 +#: ops/serializers/job.py:18 orgs/models.py:82 +#: perms/models/asset_permission.py:61 rbac/models/role.py:29 +#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 +#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 +#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:12 +#: terminal/models/component/endpoint.py:109 +#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 +#: terminal/models/component/terminal.py:85 +#: terminal/models/virtualapp/provider.py:10 +#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 +#: users/forms/profile.py:32 users/models/group.py:13 +#: users/models/preference.py:11 users/models/user/__init__.py:57 +#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:309 +#: xpack/plugins/cloud/serializers/task.py:75 +msgid "Name" +msgstr "名前" -#: accounts/models/automations/gather_account.py:17 -msgid "Diff" +#: accounts/models/automations/check_account.py:97 +msgid "Slug" msgstr "" +#: accounts/models/automations/check_account.py:98 accounts/models/base.py:70 +#: assets/models/automations/base.py:22 assets/models/cmd_filter.py:39 +#: assets/models/label.py:22 +#: authentication/serializers/connect_token_secret.py:117 +#: terminal/models/applet/applet.py:41 +#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:269 +msgid "Is active" +msgstr "アクティブです。" + #: accounts/models/automations/gather_account.py:18 -msgid "Item" -msgstr "" +msgid "Address login" +msgstr "最終ログインアドレス" #: accounts/models/automations/gather_account.py:19 -#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 -#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 -#: users/models/user/__init__.py:311 -msgid "Date created" -msgstr "作成された日付" +msgid "Date login" +msgstr "最終ログイン日" + +#: accounts/models/automations/gather_account.py:20 +msgid "Authorized keys" +msgstr "" + +#: accounts/models/automations/gather_account.py:21 +msgid "Sudoers" +msgstr "" + +#: accounts/models/automations/gather_account.py:22 +#: perms/serializers/permission.py:44 users/serializers/user.py:257 +msgid "Groups" +msgstr "ユーザーグループ" #: accounts/models/automations/gather_account.py:23 #, fuzzy @@ -776,34 +870,33 @@ msgid "Present" msgstr "存在する" #: accounts/models/automations/gather_account.py:25 -msgid "Date login" -msgstr "最終ログイン日" +#, fuzzy +#| msgid "Change password" +msgid "Date change password" +msgstr "パスワードを変更する" -#: accounts/models/automations/gather_account.py:28 -msgid "Address login" -msgstr "最終ログインアドレス" +#: accounts/models/automations/gather_account.py:26 +#, fuzzy +#| msgid "Check password expired" +msgid "Date password expired" +msgstr "パスワードの有効期限が切れていることを確認する" -#: accounts/models/automations/gather_account.py:30 -msgid "Authorized keys" -msgstr "" - -#: accounts/models/automations/gather_account.py:31 -msgid "Sudoers" -msgstr "" - -#: accounts/models/automations/gather_account.py:32 -#: perms/serializers/permission.py:44 users/serializers/user.py:257 -msgid "Groups" -msgstr "ユーザーグループ" - -#: accounts/models/automations/gather_account.py:88 +#: accounts/models/automations/gather_account.py:79 msgid "Gather asset accounts" msgstr "アカウントのコレクション" -#: accounts/models/automations/gather_account.py:100 +#: accounts/models/automations/gather_account.py:91 msgid "Is sync account" msgstr "アカウントを同期するかどうか" +#: accounts/models/automations/gather_account.py:94 +msgid "Check risk" +msgstr "" + +#: accounts/models/automations/gather_account.py:112 +msgid "Gather account automation" +msgstr "自動収集アカウント" + #: accounts/models/automations/push_account.py:14 msgid "Triggers" msgstr "トリガー方式" @@ -854,49 +947,10 @@ msgstr "鍵ポリシー" msgid "Password rules" msgstr "パスワードルール" -#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20 -#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21 -#: acls/serializers/base.py:35 assets/models/asset/common.py:93 -#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 -#: assets/models/domain.py:19 assets/models/label.py:18 -#: assets/models/platform.py:15 assets/models/platform.py:94 -#: assets/serializers/asset/common.py:171 assets/serializers/platform.py:153 -#: assets/serializers/platform.py:273 -#: authentication/backends/passkey/models.py:10 -#: authentication/models/ssh_key.py:12 -#: authentication/serializers/connect_token_secret.py:113 -#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 -#: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15 -#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 -#: ops/serializers/job.py:18 orgs/models.py:82 -#: perms/models/asset_permission.py:61 rbac/models/role.py:29 -#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 -#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 -#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:12 -#: terminal/models/component/endpoint.py:109 -#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 -#: terminal/models/component/terminal.py:85 -#: terminal/models/virtualapp/provider.py:10 -#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 -#: users/forms/profile.py:32 users/models/group.py:13 -#: users/models/preference.py:11 users/models/user/__init__.py:57 -#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:308 -#: xpack/plugins/cloud/serializers/task.py:75 -msgid "Name" -msgstr "名前" - #: accounts/models/base.py:69 msgid "Privileged" msgstr "特権アカウント" -#: accounts/models/base.py:70 assets/models/automations/base.py:21 -#: assets/models/cmd_filter.py:39 assets/models/label.py:22 -#: authentication/serializers/connect_token_secret.py:117 -#: terminal/models/applet/applet.py:41 -#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:269 -msgid "Is active" -msgstr "アクティブです。" - #: accounts/models/template.py:18 msgid "Auto push" msgstr "オートプッシュ" @@ -909,7 +963,7 @@ msgstr "プラットフォーム" msgid "Push params" msgstr "パラメータをプッシュする" -#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:389 +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:390 msgid "Account template" msgstr "アカウント テンプレート" @@ -1022,11 +1076,11 @@ msgstr "カテゴリ" #: accounts/serializers/account/account.py:207 #: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24 -#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20 +#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:21 #: assets/models/cmd_filter.py:74 assets/models/platform.py:96 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:155 #: assets/serializers/platform.py:167 audits/serializers.py:53 -#: audits/serializers.py:170 +#: audits/serializers.py:170 authentication/models/connection_token.py:60 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: terminal/models/component/storage.py:58 @@ -1060,7 +1114,7 @@ msgstr "編集済み" #: accounts/serializers/account/account.py:286 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: acls/templates/acls/asset_login_reminder.html:9 -#: assets/models/automations/base.py:19 +#: assets/models/automations/base.py:20 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/platform.py:176 assets/serializers/platform.py:208 #: authentication/api/connection_token.py:410 ops/models/base.py:17 @@ -1103,7 +1157,7 @@ msgstr "ID" #: acls/templates/acls/user_login_reminder.html:8 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 #: audits/models.py:90 audits/models.py:172 audits/models.py:271 -#: audits/serializers.py:171 authentication/models/connection_token.py:32 +#: audits/serializers.py:171 authentication/models/connection_token.py:35 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 @@ -1136,7 +1190,7 @@ msgid "Executions" msgstr "ジョブ実行" #: accounts/serializers/account/backup.py:41 -#: accounts/serializers/automations/change_secret.py:61 +#: accounts/serializers/automations/change_secret.py:60 msgid "Currently only mail sending is supported" msgstr "現在、メール送信のみがサポートされています" @@ -1206,7 +1260,7 @@ msgstr "关联平台,可以配置推送参数,如果不关联,则使用默 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 -#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:123 msgid "Comment" msgstr "コメント" @@ -1236,7 +1290,7 @@ msgid "Name already exists" msgstr "名前は既に存在します。" #: accounts/serializers/automations/base.py:54 -#: assets/models/automations/base.py:118 +#: assets/models/automations/base.py:123 #: assets/serializers/automations/base.py:38 msgid "Automation snapshot" msgstr "自動スナップショット" @@ -1245,36 +1299,40 @@ msgstr "自動スナップショット" msgid "SSH Key strategy" msgstr "SSHキー戦略" -#: accounts/serializers/automations/change_secret.py:59 +#: accounts/serializers/automations/change_secret.py:58 msgid "Please enter your account username" msgstr "アカウントのユーザー名を入力してください" -#: accounts/serializers/automations/change_secret.py:63 +#: accounts/serializers/automations/change_secret.py:62 #, fuzzy #| msgid "Automation execution" msgid "Notification before execution" msgstr "自動実行" -#: accounts/serializers/automations/change_secret.py:65 +#: accounts/serializers/automations/change_secret.py:64 msgid "" "Secret parameter settings, currently only effective for assets of the host " "type." msgstr "" "パラメータ設定は現在、AIX LINUX UNIX タイプの資産に対してのみ有効です。" -#: accounts/serializers/automations/change_secret.py:87 +#: accounts/serializers/automations/change_secret.py:86 msgid "* Please enter the correct password length" msgstr "* 正しいパスワードの長さを入力してください" -#: accounts/serializers/automations/change_secret.py:91 +#: accounts/serializers/automations/change_secret.py:90 msgid "* Password length range 6-30 bits" msgstr "* パスワードの長さの範囲6-30ビット" -#: accounts/serializers/automations/change_secret.py:120 -#: assets/models/automations/base.py:127 +#: accounts/serializers/automations/change_secret.py:119 +#: assets/models/automations/base.py:134 msgid "Automation task execution" msgstr "自動タスク実行履歴" +#: accounts/serializers/automations/gather_account.py:27 +msgid "Whether to check the risk of the gathered accounts." +msgstr "" + #: accounts/signal_handlers.py:48 #, python-format msgid "Push related accounts to assets: %s, by system" @@ -1396,17 +1454,6 @@ msgstr "" msgid "Remove historical accounts that are out of range." msgstr "範囲外の履歴アカウントを削除する" -#: accounts/tasks/scan_account.py:14 -#, fuzzy -#| msgid "Gather accounts" -msgid "Scan accounts" -msgstr "アカウントのコレクション" - -#: accounts/tasks/scan_account.py:16 assets/tasks/automation.py:27 -#: orgs/tasks.py:11 terminal/tasks.py:33 -msgid "Unused" -msgstr "" - #: accounts/tasks/template.py:11 msgid "Template sync info to related accounts" msgstr "関連するアカウントへの情報の同期" @@ -1458,6 +1505,8 @@ msgid "Deleted account" msgstr "アカウントの削除" #: accounts/templates/accounts/change_secret_failed_info.html:3 +#: accounts/templates/accounts/check_account_report.html:13 +#: accounts/templates/accounts/gather_account_report.html:13 #: terminal/serializers/task.py:10 msgid "Task name" msgstr "タスク名" @@ -1478,17 +1527,172 @@ msgstr "" "こんにちは! アセットの変更またはアカウントのプッシュが失敗する状況は次のとお" "りです。 時間内に確認して対処してください。" -#: accounts/utils.py:52 +#: accounts/templates/accounts/check_account_report.html:4 +#: accounts/templates/accounts/gather_account_report.html:4 +msgid "" +"The following is a summary of the account check tasks. Please review and " +"handle them" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:21 +#: accounts/templates/accounts/gather_account_report.html:21 +#: settings/serializers/feature.py:26 +#: settings/templates/ldap/_msg_import_ldap_user.html:6 +#: terminal/models/session/session.py:46 +msgid "Date end" +msgstr "終了日" + +#: accounts/templates/accounts/check_account_report.html:25 +#: accounts/templates/accounts/gather_account_report.html:25 +msgid "Time using" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:29 +#: accounts/templates/accounts/gather_account_report.html:30 +#, fuzzy +#| msgid "Assets amount" +msgid "Assets count" +msgstr "資産数量" + +#: accounts/templates/accounts/check_account_report.html:33 +#, fuzzy +#| msgid "Accounts create amount" +msgid "Account count" +msgstr "作成するアカウント数" + +#: accounts/templates/accounts/check_account_report.html:37 +#, fuzzy +#| msgid "Recent password count" +msgid "Week password count" +msgstr "繰り返された履歴パスワードの数" + +#: accounts/templates/accounts/check_account_report.html:41 +#, fuzzy +#| msgid "CPU count" +msgid "Ok count" +msgstr "CPU カウント" + +#: accounts/templates/accounts/check_account_report.html:45 +#, fuzzy +#| msgid "Recent password count" +msgid "No password count" +msgstr "繰り返された履歴パスワードの数" + +#: accounts/templates/accounts/check_account_report.html:53 +#, fuzzy +#| msgid "Account Details" +msgid "Account check details" +msgstr "アカウントの詳細" + +#: accounts/templates/accounts/check_account_report.html:57 +#: accounts/templates/accounts/gather_account_report.html:64 +#: accounts/templates/accounts/gather_account_report.html:87 +#: accounts/templates/accounts/gather_account_report.html:112 +#, fuzzy +#| msgid "No" +msgid "No." +msgstr "否" + +#: accounts/templates/accounts/check_account_report.html:60 +#: accounts/templates/accounts/gather_account_report.html:115 +#: assets/models/automations/base.py:130 ops/models/base.py:51 +#: ops/models/job.py:238 xpack/plugins/cloud/models.py:224 +msgid "Result" +msgstr "結果" + +#: accounts/templates/accounts/check_account_report.html:69 +#, fuzzy +#| msgid "Set password" +msgid "Week password" +msgstr "パスワードの設定" + +#: accounts/templates/accounts/gather_account_report.html:34 +#, fuzzy +#| msgid "Assets amount" +msgid "Asset success count" +msgstr "資産数量" + +#: accounts/templates/accounts/gather_account_report.html:38 +#, fuzzy +#| msgid "Assets amount" +msgid "Asset failed count" +msgstr "資産数量" + +#: accounts/templates/accounts/gather_account_report.html:42 +#, fuzzy +#| msgid "Asset not found" +msgid "Asset not support count" +msgstr "資産が存在しません" + +#: accounts/templates/accounts/gather_account_report.html:47 +#, fuzzy +#| msgid "Account not found" +msgid "Account new found count" +msgstr "アカウントが見つかりません" + +#: accounts/templates/accounts/gather_account_report.html:51 +#, fuzzy +#| msgid "Account not found" +msgid "Account lost count" +msgstr "アカウントが見つかりません" + +#: accounts/templates/accounts/gather_account_report.html:59 +#, fuzzy +#| msgid "Test cloud account" +msgid "New found accounts" +msgstr "クラウドアカウントのテスト" + +#: accounts/templates/accounts/gather_account_report.html:82 +#, fuzzy +#| msgid "No account" +msgid "Lost accounts" +msgstr "アカウントなし" + +#: accounts/templates/accounts/gather_account_report.html:107 +msgid "New found risks" +msgstr "" + +#: accounts/utils.py:53 msgid "" "If the password starts with {{` and ends with }} `, then the password is not " "allowed." msgstr "" "パスワードが`{{`で始まり、`}}`で終わる場合、パスワードは許可されません。" -#: accounts/utils.py:59 +#: accounts/utils.py:61 msgid "private key invalid or passphrase error" msgstr "秘密鍵が無効またはpassphraseエラー" +#: accounts/utils.py:66 +#, fuzzy +#| msgid "Ignore case" +msgid "Ignore" +msgstr "家を無視する" + +#: accounts/utils.py:67 +#, fuzzy +#| msgid "Disabled or expired" +msgid "Disable remote" +msgstr "無効または期限切れ" + +#: accounts/utils.py:68 accounts/utils.py:69 +#, fuzzy +#| msgid "Deleted account" +msgid "Delete remote" +msgstr "アカウントの削除" + +#: accounts/utils.py:70 accounts/utils.py:72 +#, fuzzy +#| msgid "Added account" +msgid "Add account" +msgstr "新規アカウント" + +#: accounts/utils.py:71 +#, fuzzy +#| msgid "Change password" +msgid "Change password and Add" +msgstr "パスワードを変更する" + #: acls/apps.py:7 msgid "App Acls" msgstr "Acls" @@ -1519,12 +1723,12 @@ msgid "Notify and warn" msgstr "プロンプトと警告" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:315 msgid "Priority" msgstr "優先順位" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:316 msgid "1-100, the lower the value will be match first" msgstr "1-100、低い値は最初に一致します" @@ -1535,7 +1739,7 @@ msgstr "レビュー担当者" #: acls/models/base.py:43 assets/models/asset/common.py:171 #: authentication/models/access_key.py:25 -#: authentication/models/connection_token.py:53 +#: authentication/models/connection_token.py:56 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 #: perms/models/asset_permission.py:82 @@ -1551,7 +1755,7 @@ msgstr "アクティブ" msgid "Users" msgstr "ユーザー" -#: acls/models/base.py:98 assets/models/automations/base.py:17 +#: acls/models/base.py:98 assets/models/automations/base.py:18 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:148 #: assets/serializers/asset/common.py:409 perms/serializers/permission.py:55 #: perms/serializers/user_permission.py:75 rbac/tree.py:35 @@ -1568,7 +1772,7 @@ msgid "Command" msgstr "コマンド" #: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 -#: xpack/plugins/cloud/models.py:355 +#: xpack/plugins/cloud/models.py:356 msgid "Regex" msgstr "正規情報" @@ -1690,7 +1894,7 @@ msgstr "" #: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8 -#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:390 +#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:391 msgid "IP" msgstr "IP" @@ -1787,38 +1991,34 @@ msgstr "同じレベルのノード名を同じにすることはできません msgid "App Assets" msgstr "アプリ資産" -#: assets/automations/base/manager.py:187 -msgid "{} disabled" -msgstr "{} 無効" - -#: assets/automations/base/manager.py:250 +#: assets/automations/base/manager.py:323 msgid " - Platform {} ansible disabled" msgstr " - プラットフォーム {} ansible 無効" -#: assets/automations/base/manager.py:323 +#: assets/automations/base/manager.py:496 msgid ">>> Task preparation phase" msgstr "タスク準備段階" -#: assets/automations/base/manager.py:326 +#: assets/automations/base/manager.py:500 #, python-brace-format msgid ">>> Executing tasks in batches, total {runner_count}" msgstr ">>> バッチでタスクを実行、合計 {runner_count}" -#: assets/automations/base/manager.py:328 +#: assets/automations/base/manager.py:505 msgid ">>> Start executing tasks" msgstr ">>> タスクの実行を開始" -#: assets/automations/base/manager.py:330 +#: assets/automations/base/manager.py:507 msgid ">>> No tasks need to be executed" msgstr ">>> 実行する必要があるタスクはありません" -#: assets/automations/base/manager.py:335 +#: assets/automations/base/manager.py:511 #, python-brace-format msgid ">>> Begin executing batch {index} of tasks" msgstr ">>> 第 {index} バッチのタスクの実行を開始" #: assets/automations/ping_gateway/manager.py:33 -#: authentication/models/connection_token.py:131 +#: authentication/models/connection_token.py:143 msgid "No account" msgstr "アカウントなし" @@ -2088,7 +2288,7 @@ msgstr "認証データベース" msgid "The database to authenticate against" msgstr "認証するデータベース" -#: assets/const/protocol.py:232 authentication/models/connection_token.py:43 +#: assets/const/protocol.py:232 authentication/models/connection_token.py:46 msgid "Connect options" msgstr "接続アイテム" @@ -2165,7 +2365,7 @@ msgstr "アドレス" #: assets/serializers/asset/common.py:150 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 -#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 +#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:386 msgid "Platform" msgstr "プラットフォーム" @@ -2222,25 +2422,36 @@ msgstr "証明書チェックを無視" msgid "Proxy" msgstr "プロキシー" -#: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 +#: assets/models/automations/base.py:19 assets/models/cmd_filter.py:32 #: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:386 +#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:387 msgid "Node" msgstr "ノード" -#: assets/models/automations/base.py:22 ops/models/job.py:237 +#: assets/models/automations/base.py:23 ops/models/job.py:237 #: settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "パラメータ" -#: assets/models/automations/base.py:29 assets/models/automations/base.py:111 +#: assets/models/automations/base.py:33 assets/models/automations/base.py:115 msgid "Automation task" msgstr "自動化されたタスク" -#: assets/models/automations/base.py:104 +#: assets/models/automations/base.py:108 msgid "Asset automation task" msgstr "アセットの自動化タスク" +#: assets/models/automations/base.py:118 assets/models/cmd_filter.py:41 +#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 +#: users/models/user/__init__.py:311 +msgid "Date created" +msgstr "作成された日付" + +#: assets/models/automations/base.py:129 ops/models/base.py:52 +#: ops/models/job.py:239 xpack/plugins/cloud/manager.py:87 +msgid "Summary" +msgstr "Summary" + #: assets/models/automations/gather_facts.py:15 msgid "Gather asset facts" msgstr "資産情報の収集" @@ -2312,7 +2523,7 @@ msgstr "システム" #: assets/models/label.py:19 assets/models/node.py:539 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:24 -#: authentication/models/connection_token.py:29 +#: authentication/models/connection_token.py:32 #: authentication/serializers/connect_token_secret.py:125 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:36 #: users/models/preference.py:13 @@ -2541,7 +2752,7 @@ msgstr "" #: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 -#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:388 +#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:389 #: xpack/plugins/cloud/serializers/task.py:35 msgid "Protocols" msgstr "プロトコル" @@ -2804,6 +3015,10 @@ msgstr "資産ハードウェア情報の収集" msgid "Asset execute automation" msgstr "アセット実行の自動化" +#: assets/tasks/automation.py:27 orgs/tasks.py:11 terminal/tasks.py:33 +msgid "Unused" +msgstr "" + #: assets/tasks/gather_facts.py:22 assets/tasks/gather_facts.py:34 msgid "Gather assets facts" msgstr "資産情報の収集" @@ -3178,7 +3393,7 @@ msgstr "検証方法" msgid "%s %s this resource" msgstr "ユーザー %s %s が現在のリソースをサブスクライブしました。" -#: audits/serializers.py:172 authentication/models/connection_token.py:47 +#: audits/serializers.py:172 authentication/models/connection_token.py:50 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80 #: tickets/models/ticket/apply_application.py:31 #: tickets/models/ticket/apply_asset.py:20 users/models/user/__init__.py:98 @@ -3718,21 +3933,21 @@ msgstr "パスワードを変更してください" msgid "IP group" msgstr "IP グループ" -#: authentication/models/connection_token.py:38 +#: authentication/models/connection_token.py:41 #: terminal/serializers/storage.py:114 msgid "Account name" msgstr "アカウント名" -#: authentication/models/connection_token.py:39 +#: authentication/models/connection_token.py:42 msgid "Input username" msgstr "カスタム ユーザー名" -#: authentication/models/connection_token.py:40 +#: authentication/models/connection_token.py:43 #: authentication/serializers/connection_token.py:18 msgid "Input secret" msgstr "カスタムパスワード" -#: authentication/models/connection_token.py:41 +#: authentication/models/connection_token.py:44 #: authentication/serializers/connect_token_secret.py:114 #: settings/serializers/msg.py:28 terminal/models/applet/applet.py:43 #: terminal/models/virtualapp/virtualapp.py:24 @@ -3741,63 +3956,69 @@ msgstr "カスタムパスワード" msgid "Protocol" msgstr "プロトコル" -#: authentication/models/connection_token.py:42 +#: authentication/models/connection_token.py:45 msgid "Connect method" msgstr "接続方法" -#: authentication/models/connection_token.py:44 +#: authentication/models/connection_token.py:47 msgid "User display" msgstr "ユーザー表示" -#: authentication/models/connection_token.py:45 +#: authentication/models/connection_token.py:48 msgid "Asset display" msgstr "アセット名" -#: authentication/models/connection_token.py:46 +#: authentication/models/connection_token.py:49 msgid "Reusable" msgstr "再利用可能" -#: authentication/models/connection_token.py:51 +#: authentication/models/connection_token.py:54 #: perms/models/asset_permission.py:83 msgid "From ticket" msgstr "チケットから" -#: authentication/models/connection_token.py:58 +#: authentication/models/connection_token.py:66 msgid "Can expire connection token" msgstr "接続トークンの有効期限を設定できます" -#: authentication/models/connection_token.py:59 +#: authentication/models/connection_token.py:67 msgid "Can reuse connection token" msgstr "接続トークンを再利用できます" -#: authentication/models/connection_token.py:61 +#: authentication/models/connection_token.py:69 msgid "Connection token" msgstr "接続トークン" -#: authentication/models/connection_token.py:118 +#: authentication/models/connection_token.py:130 msgid "Connection token inactive" msgstr "接続トークンがアクティブ化されていません" -#: authentication/models/connection_token.py:122 +#: authentication/models/connection_token.py:134 msgid "Connection token expired at: {}" msgstr "接続トークンの有効期限: {}" -#: authentication/models/connection_token.py:125 +#: authentication/models/connection_token.py:137 msgid "No user or invalid user" msgstr "ユーザーなしまたは期限切れのユーザー" -#: authentication/models/connection_token.py:128 +#: authentication/models/connection_token.py:140 msgid "No asset or inactive asset" msgstr "アセットがないか、有効化されていないアセット" -#: authentication/models/connection_token.py:274 +#: authentication/models/connection_token.py:288 msgid "Can view super connection token secret" msgstr "スーパー接続トークンのシークレットを表示できます" -#: authentication/models/connection_token.py:276 +#: authentication/models/connection_token.py:290 msgid "Super connection token" msgstr "スーパー接続トークン" +#: authentication/models/connection_token.py:307 +#, fuzzy +#| msgid "Connection token" +msgid "Admin connection token" +msgstr "接続トークン" + #: authentication/models/private_token.py:11 msgid "Private Token" msgstr "プライベートトークン" @@ -3848,7 +4069,7 @@ msgid "Component" msgstr "コンポーネント" #: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:387 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:388 msgid "Domain" msgstr "ドメイン" @@ -4364,13 +4585,19 @@ msgstr "ランニング" msgid "Canceled" msgstr "キャンセル" +#: common/const/choices.py:79 +#, fuzzy +#| msgid "Confirm" +msgid "Confirmed" +msgstr "確認" + #: common/const/choices.py:80 #, fuzzy #| msgid "Ignore case" msgid "Ignored" msgstr "家を無視する" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:412 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:411 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s が正常に作成されました" @@ -5122,40 +5349,44 @@ msgstr "プライベートIP" msgid "no valid program entry found." msgstr "利用可能なプログラムポータルがありません" -#: ops/mixin.py:30 ops/mixin.py:119 settings/serializers/auth/ldap.py:73 +#: ops/mixin.py:34 ops/mixin.py:166 settings/serializers/auth/ldap.py:73 #: settings/serializers/auth/ldap_ha.py:55 msgid "Periodic run" msgstr "定期的なパフォーマンス" -#: ops/mixin.py:32 ops/mixin.py:105 ops/mixin.py:125 +#: ops/mixin.py:36 ops/mixin.py:113 ops/mixin.py:172 #: settings/serializers/auth/ldap.py:80 settings/serializers/auth/ldap_ha.py:62 msgid "Interval" msgstr "間隔" -#: ops/mixin.py:35 ops/mixin.py:103 ops/mixin.py:122 +#: ops/mixin.py:39 ops/mixin.py:111 ops/mixin.py:169 #: settings/serializers/auth/ldap.py:77 settings/serializers/auth/ldap_ha.py:59 msgid "Crontab" msgstr "含む" -#: ops/mixin.py:39 ops/mixin.py:130 +#: ops/mixin.py:43 ops/mixin.py:177 #, fuzzy #| msgid "Datetime" msgid "Start Datetime" msgstr "時間" -#: ops/mixin.py:41 ops/mixin.py:132 +#: ops/mixin.py:45 ops/mixin.py:179 msgid "Datetime when the schedule should begin triggering the task to run" msgstr "" -#: ops/mixin.py:136 +#: ops/mixin.py:49 ops/models/base.py:22 ops/serializers/job.py:17 +msgid "Date last run" +msgstr "最終実行日" + +#: ops/mixin.py:183 msgid "Run period" msgstr "ユーザーの実行" -#: ops/mixin.py:142 +#: ops/mixin.py:189 msgid "* Please enter a valid crontab expression" msgstr "* 有効なcrontab式を入力してください" -#: ops/mixin.py:157 +#: ops/mixin.py:204 msgid "Require interval or crontab setting" msgstr "定期的または定期的に設定を行う必要があります" @@ -5186,20 +5417,6 @@ msgstr "アカウント ポリシー" msgid "Last execution" msgstr "最後の実行" -#: ops/models/base.py:22 ops/serializers/job.py:17 -msgid "Date last run" -msgstr "最終実行日" - -#: ops/models/base.py:51 ops/models/job.py:238 -#: xpack/plugins/cloud/models.py:223 -msgid "Result" -msgstr "結果" - -#: ops/models/base.py:52 ops/models/job.py:239 -#: xpack/plugins/cloud/manager.py:87 -msgid "Summary" -msgstr "Summary" - #: ops/models/celery.py:16 msgid "Date last publish" msgstr "発売日" @@ -5313,10 +5530,6 @@ msgstr "最後の実行" msgid "Execute after saving" msgstr "保存後に実行" -#: ops/serializers/job.py:52 terminal/serializers/session.py:47 -msgid "Duration" -msgstr "きかん" - #: ops/serializers/job.py:72 msgid "Job type" msgstr "タスクの種類" @@ -6803,12 +7016,6 @@ msgstr "件名" msgid "More Link" msgstr "もっとURL" -#: settings/serializers/feature.py:26 -#: settings/templates/ldap/_msg_import_ldap_user.html:6 -#: terminal/models/session/session.py:46 -msgid "Date end" -msgstr "終了日" - #: settings/serializers/feature.py:39 settings/serializers/feature.py:41 #: settings/serializers/feature.py:42 msgid "Announcement" @@ -8579,7 +8786,7 @@ msgid "Access key secret" msgstr "アクセスキーシークレット" #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100 -#: xpack/plugins/cloud/models.py:285 +#: xpack/plugins/cloud/models.py:286 msgid "Region" msgstr "リージョン" @@ -10179,7 +10386,7 @@ msgstr "プライベートIP" msgid "Public IP" msgstr "パブリックIP" -#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:359 +#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:360 msgid "Instance name" msgstr "インスタンス名" @@ -10262,7 +10469,7 @@ msgstr "地域 \"%s\" のインスタンスを取得できませんでした、 msgid "Failed to synchronize the instance \"%s\"" msgstr "インスタンス \"%s\" の同期に失敗しました" -#: xpack/plugins/cloud/manager.py:337 +#: xpack/plugins/cloud/manager.py:336 #, python-format msgid "" "The updated platform of asset \"%s\" is inconsistent with the original " @@ -10271,42 +10478,42 @@ msgstr "" "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プ" "ラットフォームとプロトコルの更新をスキップ" -#: xpack/plugins/cloud/manager.py:393 +#: xpack/plugins/cloud/manager.py:392 #, python-format msgid "The asset \"%s\" already exists" msgstr "資産 \"%s\" はすでに存在します" -#: xpack/plugins/cloud/manager.py:395 +#: xpack/plugins/cloud/manager.py:394 #, python-format msgid "Update asset \"%s\"" msgstr "資産の更新 \"%s\"" -#: xpack/plugins/cloud/manager.py:398 +#: xpack/plugins/cloud/manager.py:397 #, python-format msgid "Asset \"%s\" has been updated" msgstr "資産 \"%s\" が更新されました" -#: xpack/plugins/cloud/manager.py:408 +#: xpack/plugins/cloud/manager.py:407 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "資産 \"%s\" の作成準備" -#: xpack/plugins/cloud/manager.py:429 +#: xpack/plugins/cloud/manager.py:428 #, python-format msgid "Set nodes \"%s\"" msgstr "ノード \"%s\" の設定" -#: xpack/plugins/cloud/manager.py:455 +#: xpack/plugins/cloud/manager.py:454 #, python-format msgid "Set accounts \"%s\"" msgstr "アカウント \"%s\" の設定" -#: xpack/plugins/cloud/manager.py:471 +#: xpack/plugins/cloud/manager.py:470 #, python-format msgid "Set protocols \"%s\"" msgstr "プロトコル \"%s\" の設定" -#: xpack/plugins/cloud/manager.py:485 xpack/plugins/cloud/tasks.py:30 +#: xpack/plugins/cloud/manager.py:484 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "同期インスタンス タスクを実行する" @@ -10346,133 +10553,133 @@ msgstr "ホスト名戦略" msgid "IP network segment group" msgstr "IPネットワークセグメントグループ" -#: xpack/plugins/cloud/models.py:115 +#: xpack/plugins/cloud/models.py:116 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同期IPタイプ" +msgid "Preferred IP type" +msgstr "" -#: xpack/plugins/cloud/models.py:118 +#: xpack/plugins/cloud/models.py:119 msgid "Always update" msgstr "常に更新" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:121 msgid "Fully synchronous" msgstr "完全同期" -#: xpack/plugins/cloud/models.py:125 +#: xpack/plugins/cloud/models.py:126 msgid "Date last sync" msgstr "最終同期日" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/models.py:377 -#: xpack/plugins/cloud/models.py:403 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/models.py:378 +#: xpack/plugins/cloud/models.py:404 msgid "Strategy" msgstr "戦略" -#: xpack/plugins/cloud/models.py:133 xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:134 xpack/plugins/cloud/models.py:222 msgid "Sync instance task" msgstr "インスタンスの同期タスク" -#: xpack/plugins/cloud/models.py:232 xpack/plugins/cloud/models.py:295 +#: xpack/plugins/cloud/models.py:233 xpack/plugins/cloud/models.py:296 msgid "Date sync" msgstr "日付の同期" -#: xpack/plugins/cloud/models.py:236 +#: xpack/plugins/cloud/models.py:237 msgid "Sync instance snapshot" msgstr "インスタンススナップショットの同期" -#: xpack/plugins/cloud/models.py:244 +#: xpack/plugins/cloud/models.py:245 msgid "Sync instance task execution" msgstr "インスタンスタスクの同期実行" -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/cloud/models.py:276 msgid "Sync task" msgstr "同期タスク" -#: xpack/plugins/cloud/models.py:279 +#: xpack/plugins/cloud/models.py:280 msgid "Sync instance task history" msgstr "インスタンスタスク履歴の同期" -#: xpack/plugins/cloud/models.py:282 +#: xpack/plugins/cloud/models.py:283 msgid "Instance" msgstr "インスタンス" -#: xpack/plugins/cloud/models.py:299 +#: xpack/plugins/cloud/models.py:300 msgid "Sync instance detail" msgstr "同期インスタンスの詳細" -#: xpack/plugins/cloud/models.py:311 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:312 xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "条件関係" -#: xpack/plugins/cloud/models.py:321 +#: xpack/plugins/cloud/models.py:322 msgid "Task strategy" msgstr "ミッション戦略です" -#: xpack/plugins/cloud/models.py:348 +#: xpack/plugins/cloud/models.py:349 msgid "Equal" msgstr "等しい" -#: xpack/plugins/cloud/models.py:349 +#: xpack/plugins/cloud/models.py:350 msgid "Not Equal" msgstr "不等于" -#: xpack/plugins/cloud/models.py:350 +#: xpack/plugins/cloud/models.py:351 msgid "In" msgstr "で..." -#: xpack/plugins/cloud/models.py:351 +#: xpack/plugins/cloud/models.py:352 msgid "Contains" msgstr "含む" -#: xpack/plugins/cloud/models.py:352 +#: xpack/plugins/cloud/models.py:353 msgid "Exclude" msgstr "除外" -#: xpack/plugins/cloud/models.py:353 +#: xpack/plugins/cloud/models.py:354 msgid "Startswith" msgstr "始まる..." -#: xpack/plugins/cloud/models.py:354 +#: xpack/plugins/cloud/models.py:355 msgid "Endswith" msgstr "終わる..." -#: xpack/plugins/cloud/models.py:360 +#: xpack/plugins/cloud/models.py:361 msgid "Instance platform" msgstr "インスタンス名" -#: xpack/plugins/cloud/models.py:361 +#: xpack/plugins/cloud/models.py:362 msgid "Instance address" msgstr "インスタンスアドレス" -#: xpack/plugins/cloud/models.py:368 +#: xpack/plugins/cloud/models.py:369 msgid "Rule attr" msgstr "ルール属性" -#: xpack/plugins/cloud/models.py:372 +#: xpack/plugins/cloud/models.py:373 msgid "Rule match" msgstr "ルール一致" -#: xpack/plugins/cloud/models.py:374 +#: xpack/plugins/cloud/models.py:375 msgid "Rule value" msgstr "ルール値" -#: xpack/plugins/cloud/models.py:381 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:382 xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "戦略ルール" -#: xpack/plugins/cloud/models.py:391 +#: xpack/plugins/cloud/models.py:392 msgid "Name strategy" msgstr "ホスト名戦略" -#: xpack/plugins/cloud/models.py:398 +#: xpack/plugins/cloud/models.py:399 msgid "Action attr" msgstr "アクション属性" -#: xpack/plugins/cloud/models.py:400 +#: xpack/plugins/cloud/models.py:401 msgid "Action value" msgstr "アクション値" -#: xpack/plugins/cloud/models.py:407 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:408 xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "戦略アクション" @@ -10782,10 +10989,29 @@ msgstr "実行回数" msgid "Instance count" msgstr "インスタンス数" -#: xpack/plugins/cloud/tasks.py:44 +#: xpack/plugins/cloud/tasks.py:33 +msgid "" +"\n" +" Execute this task when manually or scheduled cloud synchronization " +"tasks are performed\n" +" " +msgstr "" + +#: xpack/plugins/cloud/tasks.py:52 msgid "Period clean sync instance task execution" msgstr "同期インスタンス タスクの実行記録を定期的にクリアする" +#: xpack/plugins/cloud/tasks.py:54 +msgid "" +"\n" +" Every day, according to the configuration in \"System Settings - " +"Tasks - Regular \n" +" clean-up - Cloud sync task history retention days\" the system will " +"clean up the execution \n" +" records generated by cloud synchronization\n" +" " +msgstr "" + #: xpack/plugins/interface/api.py:52 msgid "Restore default successfully." msgstr "デフォルトの復元に成功しました。" @@ -10856,6 +11082,30 @@ msgstr "エンタープライズプロフェッショナル版" msgid "Ultimate edition" msgstr "エンタープライズ・フラッグシップ・エディション" +#~ msgid "Collected" +#~ msgstr "集めました" + +#, fuzzy +#~| msgid "Not enabled" +#~ msgid "Not managed" +#~ msgstr "有効化されていません" + +#, fuzzy +#~| msgid "Gather account" +#~ msgid "Gathered account" +#~ msgstr "アカウントを集める" + +#, fuzzy +#~| msgid "Gather accounts" +#~ msgid "Scan accounts" +#~ msgstr "アカウントのコレクション" + +#~ msgid "{} disabled" +#~ msgstr "{} 無効" + +#~ msgid "Sync IP type" +#~ msgstr "同期IPタイプ" + #~ msgid "Clean change secret and push record period description" #~ msgstr "" #~ "システムは、変更タスク、実行レコード、資産、アカウントに関連するものを含" diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index 23d55c74b..bb452e00e 100644 --- a/apps/i18n/core/zh/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-05 18:32+0800\n" +"POT-Creation-Date: 2024-11-26 16:25+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.4.3\n" -#: accounts/api/automations/base.py:79 tickets/api/ticket.py:132 +#: accounts/api/automations/base.py:81 tickets/api/ticket.py:132 msgid "The parameter 'action' must be [{}]" msgstr "参数 'action' 必须是 [{}]" @@ -35,8 +35,12 @@ msgstr "生成资产或应用相关备份信息文件" #: accounts/automations/backup_account/handlers.py:156 #: accounts/automations/backup_account/handlers.py:295 -#: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:76 +#: accounts/automations/backup_account/manager.py:35 +#: accounts/automations/change_secret/manager.py:227 +#: assets/models/automations/base.py:121 ops/serializers/job.py:52 +#: ops/serializers/job.py:76 #: settings/templates/ldap/_msg_import_ldap_user.html:7 +#: terminal/serializers/session.py:47 msgid "Duration" msgstr "花费时间" @@ -63,7 +67,7 @@ msgstr "完成" #: accounts/automations/backup_account/handlers.py:219 #: accounts/const/automation.py:113 -#: accounts/serializers/automations/change_secret.py:169 +#: accounts/serializers/automations/change_secret.py:168 #: assets/serializers/automations/base.py:52 audits/const.py:64 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 @@ -74,7 +78,7 @@ msgstr "成功" #: accounts/automations/backup_account/handlers.py:221 #: accounts/const/account.py:34 accounts/const/automation.py:112 -#: accounts/serializers/automations/change_secret.py:170 audits/const.py:65 +#: accounts/serializers/automations/change_secret.py:169 audits/const.py:65 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 msgid "Failed" @@ -100,19 +104,22 @@ msgstr "任务结束" msgid "An exception occurred during task execution" msgstr "任务运行出现异常" -#: accounts/automations/backup_account/manager.py:23 +#: accounts/automations/backup_account/manager.py:16 msgid "The account backup plan is being executed" msgstr "账号备份计划正在执行" -#: accounts/automations/backup_account/manager.py:37 +#: accounts/automations/backup_account/manager.py:33 +#: accounts/automations/change_secret/manager.py:225 msgid "Plan execution end" msgstr "计划执行结束" -#: accounts/automations/change_secret/manager.py:97 -msgid "No pending accounts found" +#: accounts/automations/change_secret/manager.py:147 +#, fuzzy +#| msgid "No pending accounts found" +msgid "! No pending accounts found" msgstr "未找到待处理帐户" -#: accounts/automations/change_secret/manager.py:225 +#: accounts/automations/change_secret/manager.py:218 #, python-format msgid "Success: %s, Failed: %s, Total: %s" msgstr "成功: %s, 失败: %s, 总数: %s" @@ -179,8 +186,8 @@ msgid "Local" msgstr "数据库" #: accounts/const/account.py:27 -msgid "Collected" -msgstr "收集" +msgid "Discovery" +msgstr "" #: accounts/const/account.py:28 accounts/serializers/account/account.py:28 #: settings/serializers/auth/sms.py:84 @@ -340,24 +347,29 @@ msgid "User %s view/export secret" msgstr "用户 %s 查看/导出 了密码" #: accounts/models/account.py:49 -#: accounts/models/automations/check_account.py:54 -#: accounts/models/automations/gather_account.py:26 +#: accounts/models/automations/check_account.py:58 +#: accounts/models/automations/gather_account.py:16 #: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:273 -#: accounts/serializers/account/gathered_account.py:20 -#: accounts/serializers/automations/change_secret.py:114 -#: accounts/serializers/automations/change_secret.py:146 +#: accounts/serializers/automations/change_secret.py:113 +#: accounts/serializers/automations/change_secret.py:145 +#: accounts/serializers/automations/check_account.py:32 +#: accounts/serializers/automations/gather_account.py:43 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 +#: accounts/templates/accounts/check_account_report.html:58 +#: accounts/templates/accounts/gather_account_report.html:65 +#: accounts/templates/accounts/gather_account_report.html:88 +#: accounts/templates/accounts/gather_account_report.html:113 #: acls/serializers/base.py:123 assets/models/asset/common.py:95 #: assets/models/asset/common.py:359 assets/models/cmd_filter.py:36 -#: audits/models.py:58 authentication/models/connection_token.py:36 +#: audits/models.py:58 authentication/models/connection_token.py:39 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: terminal/models/session/session.py:32 terminal/notifications.py:155 #: terminal/serializers/command.py:17 terminal/serializers/session.py:28 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 -#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 +#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:289 msgid "Asset" msgstr "资产" @@ -415,8 +427,8 @@ msgid "Change secret status" msgstr "改密参数" #: accounts/models/account.py:66 -#: accounts/serializers/automations/change_secret.py:116 -#: accounts/serializers/automations/change_secret.py:147 +#: accounts/serializers/automations/change_secret.py:115 +#: accounts/serializers/automations/change_secret.py:146 #: accounts/templates/accounts/change_secret_failed_info.html:12 #: acls/serializers/base.py:124 #: acls/templates/acls/asset_login_reminder.html:10 @@ -491,7 +503,9 @@ msgid "Account backup plan" msgstr "账号备份计划" #: accounts/models/automations/backup_account.py:120 -#: assets/models/automations/base.py:115 audits/models.py:65 +#: accounts/templates/accounts/check_account_report.html:17 +#: accounts/templates/accounts/gather_account_report.html:17 +#: assets/models/automations/base.py:119 audits/models.py:65 #: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:242 #: ops/templates/ops/celery_task_log.html:101 #: perms/models/asset_permission.py:78 settings/serializers/feature.py:25 @@ -516,21 +530,21 @@ msgstr "账号备份快照" #: accounts/models/automations/backup_account.py:131 #: accounts/serializers/account/backup.py:48 #: accounts/serializers/automations/base.py:56 -#: assets/models/automations/base.py:122 -#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:240 -#: xpack/plugins/cloud/serializers/task.py:243 +#: assets/models/automations/base.py:127 +#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:241 +#: xpack/plugins/cloud/serializers/task.py:247 msgid "Trigger mode" msgstr "触发模式" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158 -#: xpack/plugins/cloud/models.py:229 +#: xpack/plugins/cloud/models.py:230 msgid "Reason" msgstr "原因" #: accounts/models/automations/backup_account.py:136 -#: accounts/serializers/automations/change_secret.py:113 -#: accounts/serializers/automations/change_secret.py:148 +#: accounts/serializers/automations/change_secret.py:112 +#: accounts/serializers/automations/change_secret.py:147 #: ops/serializers/job.py:74 terminal/serializers/session.py:52 msgid "Is success" msgstr "是否成功" @@ -575,14 +589,21 @@ msgstr "查看推送账号执行" msgid "Can add push account execution" msgstr "创建推送账号执行" -#: accounts/models/automations/base.py:54 +#: accounts/models/automations/base.py:57 msgid "SSH key change strategy" msgstr "SSH 密钥推送方式" +#: accounts/models/automations/base.py:61 +#, fuzzy +#| msgid "Super connection token" +msgid "Check connection after change" +msgstr "超级连接令牌" + #: accounts/models/automations/change_secret.py:15 -#: accounts/models/automations/gather_account.py:102 +#: accounts/models/automations/check_account.py:18 +#: accounts/models/automations/gather_account.py:93 #: accounts/serializers/account/backup.py:40 -#: accounts/serializers/automations/change_secret.py:60 +#: accounts/serializers/automations/change_secret.py:59 #: settings/serializers/auth/ldap.py:100 #: settings/serializers/auth/ldap_ha.py:82 settings/serializers/msg.py:45 msgid "Recipient" @@ -592,28 +613,29 @@ msgstr "收件人" msgid "Change secret automation" msgstr "自动化改密" -#: accounts/models/automations/change_secret.py:39 +#: accounts/models/automations/change_secret.py:36 msgid "Old secret" msgstr "原密钥" -#: accounts/models/automations/change_secret.py:40 +#: accounts/models/automations/change_secret.py:37 msgid "New secret" msgstr "新密钥" -#: accounts/models/automations/change_secret.py:41 +#: accounts/models/automations/change_secret.py:38 msgid "Date started" msgstr "开始日期" -#: accounts/models/automations/change_secret.py:42 -#: assets/models/automations/base.py:116 ops/models/base.py:56 +#: accounts/models/automations/change_secret.py:39 +#: assets/models/automations/base.py:120 ops/models/base.py:56 #: ops/models/celery.py:90 ops/models/job.py:243 #: terminal/models/applet/host.py:142 msgid "Date finished" msgstr "结束日期" -#: accounts/models/automations/change_secret.py:44 -#: accounts/models/automations/gather_account.py:29 -#: assets/models/automations/base.py:113 +#: accounts/models/automations/change_secret.py:41 +#: accounts/models/automations/check_account.py:61 +#: accounts/models/automations/gather_account.py:27 +#: assets/models/automations/base.py:117 #: assets/serializers/automations/base.py:39 audits/models.py:208 #: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:234 #: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140 @@ -622,12 +644,12 @@ msgstr "结束日期" #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:147 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: tickets/serializers/super_ticket.py:13 -#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 -#: xpack/plugins/cloud/models.py:292 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:226 +#: xpack/plugins/cloud/models.py:293 msgid "Status" msgstr "状态" -#: accounts/models/automations/change_secret.py:46 +#: accounts/models/automations/change_secret.py:43 #: accounts/serializers/account/account.py:275 #: accounts/templates/accounts/change_secret_failed_info.html:13 #: assets/const/automation.py:9 @@ -638,66 +660,98 @@ msgstr "状态" msgid "Error" msgstr "错误" -#: accounts/models/automations/change_secret.py:50 +#: accounts/models/automations/change_secret.py:47 msgid "Change secret record" msgstr "改密记录" -#: accounts/models/automations/check_account.py:36 -#: accounts/models/automations/gather_account.py:119 -msgid "Gather account automation" -msgstr "自动化账号发现" +#: accounts/models/automations/check_account.py:17 +msgid "Engines" +msgstr "" -#: accounts/models/automations/check_account.py:40 +#: accounts/models/automations/check_account.py:33 +#, fuzzy +#| msgid "Account execute automation" +msgid "account check automation" +msgstr "账号执行自动化" + +#: accounts/models/automations/check_account.py:35 +#, fuzzy +#| msgid "Can view push account execution" +msgid "Can view check account execution" +msgstr "查看推送账号执行" + +#: accounts/models/automations/check_account.py:36 +#, fuzzy +#| msgid "Can add push account execution" +msgid "Can add check account execution" +msgstr "创建推送账号执行" + +#: accounts/models/automations/check_account.py:42 msgid "Long time no login" msgstr "长时间未登录" -#: accounts/models/automations/check_account.py:41 -msgid "Not managed" -msgstr "新发现" - -#: accounts/models/automations/check_account.py:42 -msgid "Long time no change" -msgstr "长时间未改密" - #: accounts/models/automations/check_account.py:43 -msgid "Weak password" -msgstr "弱密码" +#, fuzzy +#| msgid "Not found" +msgid "New found" +msgstr "没有发现" #: accounts/models/automations/check_account.py:44 -msgid "Password error" -msgstr "密码错误" +#, fuzzy +#| msgid "Group change" +msgid "Groups change" +msgstr "组变更" #: accounts/models/automations/check_account.py:45 +msgid "Sudo changed" +msgstr "Sudo变更" + +#: accounts/models/automations/check_account.py:46 +#, fuzzy +#| msgid "Authorized keys" +msgid "Authorized keys changed" +msgstr "认证密钥" + +#: accounts/models/automations/check_account.py:47 +msgid "Account delete" +msgstr "账号已删除" + +#: accounts/models/automations/check_account.py:48 #: authentication/errors/const.py:23 msgid "Password expired" msgstr "密码已过期" -#: accounts/models/automations/check_account.py:46 -msgid "Group change" -msgstr "组变更" - -#: accounts/models/automations/check_account.py:47 -msgid "Sudo changed" -msgstr "Sudo变更" - -#: accounts/models/automations/check_account.py:48 -msgid "Account delete" -msgstr "账号已删除" - #: accounts/models/automations/check_account.py:49 +msgid "Long time no change" +msgstr "长时间未改密" + +#: accounts/models/automations/check_account.py:51 +msgid "Weak password" +msgstr "弱密码" + +#: accounts/models/automations/check_account.py:52 +msgid "Password error" +msgstr "密码错误" + +#: accounts/models/automations/check_account.py:53 msgid "No admin account" msgstr "没有管理账号" -#: accounts/models/automations/check_account.py:50 +#: accounts/models/automations/check_account.py:54 msgid "Others" msgstr "其它" -#: accounts/models/automations/check_account.py:55 -#: accounts/models/automations/gather_account.py:27 +#: accounts/models/automations/check_account.py:59 +#: accounts/models/automations/gather_account.py:17 #: accounts/models/automations/push_account.py:15 accounts/models/base.py:65 -#: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19 -#: acls/serializers/base.py:50 audits/models.py:188 authentication/forms.py:21 -#: authentication/forms.py:23 authentication/models/temp_token.py:9 +#: accounts/serializers/account/virtual.py:21 +#: accounts/templates/accounts/check_account_report.html:59 +#: accounts/templates/accounts/gather_account_report.html:66 +#: accounts/templates/accounts/gather_account_report.html:89 +#: accounts/templates/accounts/gather_account_report.html:114 +#: acls/serializers/base.py:19 acls/serializers/base.py:50 audits/models.py:188 +#: authentication/forms.py:21 authentication/forms.py:23 +#: authentication/models/temp_token.py:9 #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 #: terminal/serializers/storage.py:136 users/forms/profile.py:31 @@ -707,38 +761,86 @@ msgstr "其它" msgid "Username" msgstr "用户名" -#: accounts/models/automations/check_account.py:56 +#: accounts/models/automations/check_account.py:60 +#: accounts/serializers/automations/check_account.py:35 msgid "Risk" msgstr "风险" -#: accounts/models/automations/check_account.py:57 common/const/choices.py:79 -msgid "Confirmed" -msgstr "确认" +#: accounts/models/automations/check_account.py:62 +#, fuzzy +#| msgid "Detail" +msgid "Details" +msgstr "详情" -#: accounts/models/automations/check_account.py:60 +#: accounts/models/automations/check_account.py:65 msgid "Account risk" msgstr "账号风险" -#: accounts/models/automations/gather_account.py:16 -msgid "Gathered account" -msgstr "发现账号" +#: accounts/models/automations/check_account.py:96 accounts/models/base.py:64 +#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 +#: acls/models/base.py:96 acls/models/command_acl.py:21 +#: acls/serializers/base.py:35 assets/models/asset/common.py:93 +#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 +#: assets/models/domain.py:19 assets/models/label.py:18 +#: assets/models/platform.py:15 assets/models/platform.py:94 +#: assets/serializers/asset/common.py:171 assets/serializers/platform.py:153 +#: assets/serializers/platform.py:273 +#: authentication/backends/passkey/models.py:10 +#: authentication/models/ssh_key.py:12 +#: authentication/serializers/connect_token_secret.py:113 +#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 +#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 +#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 +#: ops/serializers/job.py:18 orgs/models.py:82 +#: perms/models/asset_permission.py:61 rbac/models/role.py:29 +#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 +#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 +#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:12 +#: terminal/models/component/endpoint.py:109 +#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 +#: terminal/models/component/terminal.py:85 +#: terminal/models/virtualapp/provider.py:10 +#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 +#: users/forms/profile.py:32 users/models/group.py:13 +#: users/models/preference.py:11 users/models/user/__init__.py:57 +#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:309 +#: xpack/plugins/cloud/serializers/task.py:75 +msgid "Name" +msgstr "名称" -#: accounts/models/automations/gather_account.py:17 -msgid "Diff" -msgstr "差异" +#: accounts/models/automations/check_account.py:97 +msgid "Slug" +msgstr "" + +#: accounts/models/automations/check_account.py:98 accounts/models/base.py:70 +#: assets/models/automations/base.py:22 assets/models/cmd_filter.py:39 +#: assets/models/label.py:22 +#: authentication/serializers/connect_token_secret.py:117 +#: terminal/models/applet/applet.py:41 +#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:269 +msgid "Is active" +msgstr "激活" #: accounts/models/automations/gather_account.py:18 -msgid "Item" -msgstr "项" +msgid "Address login" +msgstr "最后登录地址" -# msgid "Comment" -# msgstr "备注" #: accounts/models/automations/gather_account.py:19 -#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 -#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 -#: users/models/user/__init__.py:311 -msgid "Date created" -msgstr "创建日期" +msgid "Date login" +msgstr "最后登录日期" + +#: accounts/models/automations/gather_account.py:20 +msgid "Authorized keys" +msgstr "认证密钥" + +#: accounts/models/automations/gather_account.py:21 +msgid "Sudoers" +msgstr "" + +#: accounts/models/automations/gather_account.py:22 +#: perms/serializers/permission.py:44 users/serializers/user.py:257 +msgid "Groups" +msgstr "用户组" #: accounts/models/automations/gather_account.py:23 msgid "Remote present" @@ -749,34 +851,33 @@ msgid "Present" msgstr "存在" #: accounts/models/automations/gather_account.py:25 -msgid "Date login" -msgstr "最后登录日期" +#, fuzzy +#| msgid "Change password" +msgid "Date change password" +msgstr "改密" -#: accounts/models/automations/gather_account.py:28 -msgid "Address login" -msgstr "最后登录地址" +#: accounts/models/automations/gather_account.py:26 +#, fuzzy +#| msgid "Check password expired" +msgid "Date password expired" +msgstr "校验密码已过期" -#: accounts/models/automations/gather_account.py:30 -msgid "Authorized keys" -msgstr "认证密钥" - -#: accounts/models/automations/gather_account.py:31 -msgid "Sudoers" -msgstr "" - -#: accounts/models/automations/gather_account.py:32 -#: perms/serializers/permission.py:44 users/serializers/user.py:257 -msgid "Groups" -msgstr "用户组" - -#: accounts/models/automations/gather_account.py:88 +#: accounts/models/automations/gather_account.py:79 msgid "Gather asset accounts" msgstr "账号发现" -#: accounts/models/automations/gather_account.py:100 +#: accounts/models/automations/gather_account.py:91 msgid "Is sync account" msgstr "是否同步账号" +#: accounts/models/automations/gather_account.py:94 +msgid "Check risk" +msgstr "" + +#: accounts/models/automations/gather_account.py:112 +msgid "Gather account automation" +msgstr "自动化账号发现" + #: accounts/models/automations/push_account.py:14 msgid "Triggers" msgstr "触发方式" @@ -827,49 +928,10 @@ msgstr "密文策略" msgid "Password rules" msgstr "密码规则" -#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20 -#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21 -#: acls/serializers/base.py:35 assets/models/asset/common.py:93 -#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 -#: assets/models/domain.py:19 assets/models/label.py:18 -#: assets/models/platform.py:15 assets/models/platform.py:94 -#: assets/serializers/asset/common.py:171 assets/serializers/platform.py:153 -#: assets/serializers/platform.py:273 -#: authentication/backends/passkey/models.py:10 -#: authentication/models/ssh_key.py:12 -#: authentication/serializers/connect_token_secret.py:113 -#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 -#: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15 -#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 -#: ops/serializers/job.py:18 orgs/models.py:82 -#: perms/models/asset_permission.py:61 rbac/models/role.py:29 -#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 -#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 -#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:12 -#: terminal/models/component/endpoint.py:109 -#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 -#: terminal/models/component/terminal.py:85 -#: terminal/models/virtualapp/provider.py:10 -#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 -#: users/forms/profile.py:32 users/models/group.py:13 -#: users/models/preference.py:11 users/models/user/__init__.py:57 -#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:308 -#: xpack/plugins/cloud/serializers/task.py:75 -msgid "Name" -msgstr "名称" - #: accounts/models/base.py:69 msgid "Privileged" msgstr "特权账号" -#: accounts/models/base.py:70 assets/models/automations/base.py:21 -#: assets/models/cmd_filter.py:39 assets/models/label.py:22 -#: authentication/serializers/connect_token_secret.py:117 -#: terminal/models/applet/applet.py:41 -#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:269 -msgid "Is active" -msgstr "激活" - #: accounts/models/template.py:18 msgid "Auto push" msgstr "自动推送" @@ -882,7 +944,7 @@ msgstr "平台" msgid "Push params" msgstr "账号推送参数" -#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:389 +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:390 msgid "Account template" msgstr "账号模板" @@ -994,11 +1056,11 @@ msgstr "类别" #: accounts/serializers/account/account.py:207 #: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24 -#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20 +#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:21 #: assets/models/cmd_filter.py:74 assets/models/platform.py:96 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:155 #: assets/serializers/platform.py:167 audits/serializers.py:53 -#: audits/serializers.py:170 +#: audits/serializers.py:170 authentication/models/connection_token.py:60 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: terminal/models/component/storage.py:58 @@ -1032,7 +1094,7 @@ msgstr "已修改" #: accounts/serializers/account/account.py:286 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: acls/templates/acls/asset_login_reminder.html:9 -#: assets/models/automations/base.py:19 +#: assets/models/automations/base.py:20 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/platform.py:176 assets/serializers/platform.py:208 #: authentication/api/connection_token.py:410 ops/models/base.py:17 @@ -1075,7 +1137,7 @@ msgstr "ID" #: acls/templates/acls/user_login_reminder.html:8 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 #: audits/models.py:90 audits/models.py:172 audits/models.py:271 -#: audits/serializers.py:171 authentication/models/connection_token.py:32 +#: audits/serializers.py:171 authentication/models/connection_token.py:35 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 @@ -1108,7 +1170,7 @@ msgid "Executions" msgstr "执行次数" #: accounts/serializers/account/backup.py:41 -#: accounts/serializers/automations/change_secret.py:61 +#: accounts/serializers/automations/change_secret.py:60 msgid "Currently only mail sending is supported" msgstr "当前只支持邮件发送" @@ -1178,7 +1240,7 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 -#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:123 msgid "Comment" msgstr "备注" @@ -1207,7 +1269,7 @@ msgid "Name already exists" msgstr "名称已存在" #: accounts/serializers/automations/base.py:54 -#: assets/models/automations/base.py:118 +#: assets/models/automations/base.py:123 #: assets/serializers/automations/base.py:38 msgid "Automation snapshot" msgstr "自动化快照" @@ -1216,35 +1278,39 @@ msgstr "自动化快照" msgid "SSH Key strategy" msgstr "SSH 密钥更改方式" -#: accounts/serializers/automations/change_secret.py:59 +#: accounts/serializers/automations/change_secret.py:58 msgid "Please enter your account username" msgstr "请输入您的账户用户名" -#: accounts/serializers/automations/change_secret.py:63 +#: accounts/serializers/automations/change_secret.py:62 #, fuzzy #| msgid "Automation execution" msgid "Notification before execution" msgstr "自动化执行" -#: accounts/serializers/automations/change_secret.py:65 +#: accounts/serializers/automations/change_secret.py:64 msgid "" "Secret parameter settings, currently only effective for assets of the host " "type." msgstr "参数设置,目前只对 AIX LINUX UNIX 类型的资产有效。" -#: accounts/serializers/automations/change_secret.py:87 +#: accounts/serializers/automations/change_secret.py:86 msgid "* Please enter the correct password length" msgstr "* 请输入正确的密码长度" -#: accounts/serializers/automations/change_secret.py:91 +#: accounts/serializers/automations/change_secret.py:90 msgid "* Password length range 6-30 bits" msgstr "* 密码长度范围 6-30 位" -#: accounts/serializers/automations/change_secret.py:120 -#: assets/models/automations/base.py:127 +#: accounts/serializers/automations/change_secret.py:119 +#: assets/models/automations/base.py:134 msgid "Automation task execution" msgstr "自动化任务执行历史" +#: accounts/serializers/automations/gather_account.py:27 +msgid "Whether to check the risk of the gathered accounts." +msgstr "" + #: accounts/signal_handlers.py:48 #, python-format msgid "Push related accounts to assets: %s, by system" @@ -1386,17 +1452,6 @@ msgstr "" msgid "Remove historical accounts that are out of range." msgstr "删除超出范围的历史帐户。" -#: accounts/tasks/scan_account.py:14 -#, fuzzy -#| msgid "Gather accounts" -msgid "Scan accounts" -msgstr "账号发现" - -#: accounts/tasks/scan_account.py:16 assets/tasks/automation.py:27 -#: orgs/tasks.py:11 terminal/tasks.py:33 -msgid "Unused" -msgstr "未使用" - #: accounts/tasks/template.py:11 msgid "Template sync info to related accounts" msgstr "同步信息到关联的账号" @@ -1454,6 +1509,8 @@ msgid "Deleted account" msgstr "删除账号" #: accounts/templates/accounts/change_secret_failed_info.html:3 +#: accounts/templates/accounts/check_account_report.html:13 +#: accounts/templates/accounts/gather_account_report.html:13 #: terminal/serializers/task.py:10 msgid "Task name" msgstr "任务名称" @@ -1472,16 +1529,171 @@ msgid "" "or pushing the account. Please check and handle it in time." msgstr "你好! 以下是资产改密或推送账户失败的情况。 请及时检查并处理。" -#: accounts/utils.py:52 +#: accounts/templates/accounts/check_account_report.html:4 +#: accounts/templates/accounts/gather_account_report.html:4 +msgid "" +"The following is a summary of the account check tasks. Please review and " +"handle them" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:21 +#: accounts/templates/accounts/gather_account_report.html:21 +#: settings/serializers/feature.py:26 +#: settings/templates/ldap/_msg_import_ldap_user.html:6 +#: terminal/models/session/session.py:46 +msgid "Date end" +msgstr "结束日期" + +#: accounts/templates/accounts/check_account_report.html:25 +#: accounts/templates/accounts/gather_account_report.html:25 +msgid "Time using" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:29 +#: accounts/templates/accounts/gather_account_report.html:30 +#, fuzzy +#| msgid "Assets amount" +msgid "Assets count" +msgstr "资产数量" + +#: accounts/templates/accounts/check_account_report.html:33 +#, fuzzy +#| msgid "Accounts create amount" +msgid "Account count" +msgstr "创建账号数量" + +#: accounts/templates/accounts/check_account_report.html:37 +#, fuzzy +#| msgid "Recent password count" +msgid "Week password count" +msgstr "不能设置近几次密码" + +#: accounts/templates/accounts/check_account_report.html:41 +#, fuzzy +#| msgid "CPU count" +msgid "Ok count" +msgstr "CPU数量" + +#: accounts/templates/accounts/check_account_report.html:45 +#, fuzzy +#| msgid "Recent password count" +msgid "No password count" +msgstr "不能设置近几次密码" + +#: accounts/templates/accounts/check_account_report.html:53 +#, fuzzy +#| msgid "Account Details" +msgid "Account check details" +msgstr "账号" + +#: accounts/templates/accounts/check_account_report.html:57 +#: accounts/templates/accounts/gather_account_report.html:64 +#: accounts/templates/accounts/gather_account_report.html:87 +#: accounts/templates/accounts/gather_account_report.html:112 +#, fuzzy +#| msgid "No" +msgid "No." +msgstr "否" + +#: accounts/templates/accounts/check_account_report.html:60 +#: accounts/templates/accounts/gather_account_report.html:115 +#: assets/models/automations/base.py:130 ops/models/base.py:51 +#: ops/models/job.py:238 xpack/plugins/cloud/models.py:224 +msgid "Result" +msgstr "结果" + +#: accounts/templates/accounts/check_account_report.html:69 +#, fuzzy +#| msgid "Weak password" +msgid "Week password" +msgstr "弱密码" + +#: accounts/templates/accounts/gather_account_report.html:34 +#, fuzzy +#| msgid "Assets amount" +msgid "Asset success count" +msgstr "资产数量" + +#: accounts/templates/accounts/gather_account_report.html:38 +#, fuzzy +#| msgid "Assets amount" +msgid "Asset failed count" +msgstr "资产数量" + +#: accounts/templates/accounts/gather_account_report.html:42 +#, fuzzy +#| msgid "Asset not found" +msgid "Asset not support count" +msgstr "资产不存在" + +#: accounts/templates/accounts/gather_account_report.html:47 +#, fuzzy +#| msgid "Account not found" +msgid "Account new found count" +msgstr "账号未找到" + +#: accounts/templates/accounts/gather_account_report.html:51 +#, fuzzy +#| msgid "Account not found" +msgid "Account lost count" +msgstr "账号未找到" + +#: accounts/templates/accounts/gather_account_report.html:59 +#, fuzzy +#| msgid "Test cloud account" +msgid "New found accounts" +msgstr "测试云账号" + +#: accounts/templates/accounts/gather_account_report.html:82 +#, fuzzy +#| msgid "No account" +msgid "Lost accounts" +msgstr "没有账号" + +#: accounts/templates/accounts/gather_account_report.html:107 +msgid "New found risks" +msgstr "" + +#: accounts/utils.py:53 msgid "" "If the password starts with {{` and ends with }} `, then the password is not " "allowed." msgstr "如果密码以 `{{` 开始,并且以 `}}` 结束,则该密码是不允许的。" -#: accounts/utils.py:59 +#: accounts/utils.py:61 msgid "private key invalid or passphrase error" msgstr "密钥不合法或密钥密码错误" +#: accounts/utils.py:66 +#, fuzzy +#| msgid "Ignore case" +msgid "Ignore" +msgstr "忽略大小写" + +#: accounts/utils.py:67 +#, fuzzy +#| msgid "Disabled or expired" +msgid "Disable remote" +msgstr "禁用或失效" + +#: accounts/utils.py:68 accounts/utils.py:69 +#, fuzzy +#| msgid "Deleted account" +msgid "Delete remote" +msgstr "删除账号" + +#: accounts/utils.py:70 accounts/utils.py:72 +#, fuzzy +#| msgid "Added account" +msgid "Add account" +msgstr "新增账号" + +#: accounts/utils.py:71 +#, fuzzy +#| msgid "Change password" +msgid "Change password and Add" +msgstr "改密" + #: acls/apps.py:7 msgid "App Acls" msgstr "访问控制" @@ -1512,12 +1724,12 @@ msgid "Notify and warn" msgstr "提示并告警" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:315 msgid "Priority" msgstr "优先级" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:316 msgid "1-100, the lower the value will be match first" msgstr "优先级可选范围为 1-100 (数值越小越优先)" @@ -1528,7 +1740,7 @@ msgstr "审批人" #: acls/models/base.py:43 assets/models/asset/common.py:171 #: authentication/models/access_key.py:25 -#: authentication/models/connection_token.py:53 +#: authentication/models/connection_token.py:56 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 #: perms/models/asset_permission.py:82 @@ -1544,7 +1756,7 @@ msgstr "激活中" msgid "Users" msgstr "用户" -#: acls/models/base.py:98 assets/models/automations/base.py:17 +#: acls/models/base.py:98 assets/models/automations/base.py:18 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:148 #: assets/serializers/asset/common.py:409 perms/serializers/permission.py:55 #: perms/serializers/user_permission.py:75 rbac/tree.py:35 @@ -1561,7 +1773,7 @@ msgid "Command" msgstr "命令" #: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 -#: xpack/plugins/cloud/models.py:355 +#: xpack/plugins/cloud/models.py:356 msgid "Regex" msgstr "正则表达式" @@ -1682,7 +1894,7 @@ msgstr "" #: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8 -#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:390 +#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:391 msgid "IP" msgstr "IP" @@ -1776,38 +1988,34 @@ msgstr "同级别节点名字不能重复" msgid "App Assets" msgstr "资产管理" -#: assets/automations/base/manager.py:187 -msgid "{} disabled" -msgstr "{} 已禁用" - -#: assets/automations/base/manager.py:250 +#: assets/automations/base/manager.py:323 msgid " - Platform {} ansible disabled" msgstr " - 平台 {} Ansible 已禁用, 无法执行任务" -#: assets/automations/base/manager.py:323 +#: assets/automations/base/manager.py:496 msgid ">>> Task preparation phase" msgstr ">>> 任务准备阶段" -#: assets/automations/base/manager.py:326 +#: assets/automations/base/manager.py:500 #, python-brace-format msgid ">>> Executing tasks in batches, total {runner_count}" msgstr ">>> 分次执行任务,总共 {runner_count}" -#: assets/automations/base/manager.py:328 +#: assets/automations/base/manager.py:505 msgid ">>> Start executing tasks" msgstr ">>> 开始执行任务" -#: assets/automations/base/manager.py:330 +#: assets/automations/base/manager.py:507 msgid ">>> No tasks need to be executed" msgstr ">>> 没有需要执行的任务" -#: assets/automations/base/manager.py:335 +#: assets/automations/base/manager.py:511 #, python-brace-format msgid ">>> Begin executing batch {index} of tasks" msgstr ">>> 开始执行第 {index} 批任务" #: assets/automations/ping_gateway/manager.py:33 -#: authentication/models/connection_token.py:131 +#: authentication/models/connection_token.py:143 msgid "No account" msgstr "没有账号" @@ -2073,7 +2281,7 @@ msgstr "认证数据库" msgid "The database to authenticate against" msgstr "要进行身份验证的数据库" -#: assets/const/protocol.py:232 authentication/models/connection_token.py:43 +#: assets/const/protocol.py:232 authentication/models/connection_token.py:46 msgid "Connect options" msgstr "连接项" @@ -2149,7 +2357,7 @@ msgstr "地址" #: assets/serializers/asset/common.py:150 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 -#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 +#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:386 msgid "Platform" msgstr "平台" @@ -2206,25 +2414,38 @@ msgstr "忽略证书校验" msgid "Proxy" msgstr "代理" -#: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 +#: assets/models/automations/base.py:19 assets/models/cmd_filter.py:32 #: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:386 +#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:387 msgid "Node" msgstr "节点" -#: assets/models/automations/base.py:22 ops/models/job.py:237 +#: assets/models/automations/base.py:23 ops/models/job.py:237 #: settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "参数" -#: assets/models/automations/base.py:29 assets/models/automations/base.py:111 +#: assets/models/automations/base.py:33 assets/models/automations/base.py:115 msgid "Automation task" msgstr "自动化任务" -#: assets/models/automations/base.py:104 +#: assets/models/automations/base.py:108 msgid "Asset automation task" msgstr "资产自动化任务" +# msgid "Comment" +# msgstr "备注" +#: assets/models/automations/base.py:118 assets/models/cmd_filter.py:41 +#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 +#: users/models/user/__init__.py:311 +msgid "Date created" +msgstr "创建日期" + +#: assets/models/automations/base.py:129 ops/models/base.py:52 +#: ops/models/job.py:239 xpack/plugins/cloud/manager.py:87 +msgid "Summary" +msgstr "汇总" + #: assets/models/automations/gather_facts.py:15 msgid "Gather asset facts" msgstr "收集资产信息" @@ -2296,7 +2517,7 @@ msgstr "系统" #: assets/models/label.py:19 assets/models/node.py:539 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:24 -#: authentication/models/connection_token.py:29 +#: authentication/models/connection_token.py:32 #: authentication/serializers/connect_token_secret.py:125 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:36 #: users/models/preference.py:13 @@ -2521,7 +2742,7 @@ msgstr "节点路径,格式为 [\"/组织/节点名\"], 如果节点不存在 #: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 -#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:388 +#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:389 #: xpack/plugins/cloud/serializers/task.py:35 msgid "Protocols" msgstr "协议组" @@ -2776,6 +2997,10 @@ msgstr "收集资产硬件信息" msgid "Asset execute automation" msgstr "资产执行自动化" +#: assets/tasks/automation.py:27 orgs/tasks.py:11 terminal/tasks.py:33 +msgid "Unused" +msgstr "未使用" + #: assets/tasks/gather_facts.py:22 assets/tasks/gather_facts.py:34 msgid "Gather assets facts" msgstr "收集资产信息" @@ -3159,7 +3384,7 @@ msgstr "认证方式" msgid "%s %s this resource" msgstr "用户 %s %s 了当前资源" -#: audits/serializers.py:172 authentication/models/connection_token.py:47 +#: audits/serializers.py:172 authentication/models/connection_token.py:50 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80 #: tickets/models/ticket/apply_application.py:31 #: tickets/models/ticket/apply_asset.py:20 users/models/user/__init__.py:98 @@ -3688,21 +3913,21 @@ msgstr "请修改密码" msgid "IP group" msgstr "IPグループ" -#: authentication/models/connection_token.py:38 +#: authentication/models/connection_token.py:41 #: terminal/serializers/storage.py:114 msgid "Account name" msgstr "账号名称" -#: authentication/models/connection_token.py:39 +#: authentication/models/connection_token.py:42 msgid "Input username" msgstr "自定义用户名" -#: authentication/models/connection_token.py:40 +#: authentication/models/connection_token.py:43 #: authentication/serializers/connection_token.py:18 msgid "Input secret" msgstr "自定义密码" -#: authentication/models/connection_token.py:41 +#: authentication/models/connection_token.py:44 #: authentication/serializers/connect_token_secret.py:114 #: settings/serializers/msg.py:28 terminal/models/applet/applet.py:43 #: terminal/models/virtualapp/virtualapp.py:24 @@ -3711,63 +3936,69 @@ msgstr "自定义密码" msgid "Protocol" msgstr "协议" -#: authentication/models/connection_token.py:42 +#: authentication/models/connection_token.py:45 msgid "Connect method" msgstr "连接方式" -#: authentication/models/connection_token.py:44 +#: authentication/models/connection_token.py:47 msgid "User display" msgstr "用户名称" -#: authentication/models/connection_token.py:45 +#: authentication/models/connection_token.py:48 msgid "Asset display" msgstr "资产名称" -#: authentication/models/connection_token.py:46 +#: authentication/models/connection_token.py:49 msgid "Reusable" msgstr "可以重复使用" -#: authentication/models/connection_token.py:51 +#: authentication/models/connection_token.py:54 #: perms/models/asset_permission.py:83 msgid "From ticket" msgstr "来自工单" -#: authentication/models/connection_token.py:58 +#: authentication/models/connection_token.py:66 msgid "Can expire connection token" msgstr "可以失效连接令牌" -#: authentication/models/connection_token.py:59 +#: authentication/models/connection_token.py:67 msgid "Can reuse connection token" msgstr "可以复用连接令牌" -#: authentication/models/connection_token.py:61 +#: authentication/models/connection_token.py:69 msgid "Connection token" msgstr "连接令牌" -#: authentication/models/connection_token.py:118 +#: authentication/models/connection_token.py:130 msgid "Connection token inactive" msgstr "连接令牌未激活" -#: authentication/models/connection_token.py:122 +#: authentication/models/connection_token.py:134 msgid "Connection token expired at: {}" msgstr "连接令牌过期: {}" -#: authentication/models/connection_token.py:125 +#: authentication/models/connection_token.py:137 msgid "No user or invalid user" msgstr "没有用户或用户失效" -#: authentication/models/connection_token.py:128 +#: authentication/models/connection_token.py:140 msgid "No asset or inactive asset" msgstr "没有资产或资产未激活" -#: authentication/models/connection_token.py:274 +#: authentication/models/connection_token.py:288 msgid "Can view super connection token secret" msgstr "可以查看超级连接令牌密文" -#: authentication/models/connection_token.py:276 +#: authentication/models/connection_token.py:290 msgid "Super connection token" msgstr "超级连接令牌" +#: authentication/models/connection_token.py:307 +#, fuzzy +#| msgid "Connection token" +msgid "Admin connection token" +msgstr "连接令牌" + #: authentication/models/private_token.py:11 msgid "Private Token" msgstr "私有令牌" @@ -3818,7 +4049,7 @@ msgid "Component" msgstr "组件" #: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:387 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:388 msgid "Domain" msgstr "网域" @@ -4321,13 +4552,17 @@ msgstr "运行中" msgid "Canceled" msgstr "取消" +#: common/const/choices.py:79 +msgid "Confirmed" +msgstr "确认" + #: common/const/choices.py:80 #, fuzzy #| msgid "Ignore case" msgid "Ignored" msgstr "忽略大小写" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:412 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:411 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s 创建成功" @@ -5065,40 +5300,44 @@ msgstr "私有" msgid "no valid program entry found." msgstr "没有可用程序入口" -#: ops/mixin.py:30 ops/mixin.py:119 settings/serializers/auth/ldap.py:73 +#: ops/mixin.py:34 ops/mixin.py:166 settings/serializers/auth/ldap.py:73 #: settings/serializers/auth/ldap_ha.py:55 msgid "Periodic run" msgstr "周期执行" -#: ops/mixin.py:32 ops/mixin.py:105 ops/mixin.py:125 +#: ops/mixin.py:36 ops/mixin.py:113 ops/mixin.py:172 #: settings/serializers/auth/ldap.py:80 settings/serializers/auth/ldap_ha.py:62 msgid "Interval" msgstr "间隔" -#: ops/mixin.py:35 ops/mixin.py:103 ops/mixin.py:122 +#: ops/mixin.py:39 ops/mixin.py:111 ops/mixin.py:169 #: settings/serializers/auth/ldap.py:77 settings/serializers/auth/ldap_ha.py:59 msgid "Crontab" msgstr "Crontab" -#: ops/mixin.py:39 ops/mixin.py:130 +#: ops/mixin.py:43 ops/mixin.py:177 #, fuzzy #| msgid "Datetime" msgid "Start Datetime" msgstr "日期" -#: ops/mixin.py:41 ops/mixin.py:132 +#: ops/mixin.py:45 ops/mixin.py:179 msgid "Datetime when the schedule should begin triggering the task to run" msgstr "" -#: ops/mixin.py:136 +#: ops/mixin.py:49 ops/models/base.py:22 ops/serializers/job.py:17 +msgid "Date last run" +msgstr "最后运行日期" + +#: ops/mixin.py:183 msgid "Run period" msgstr "执行周期" -#: ops/mixin.py:142 +#: ops/mixin.py:189 msgid "* Please enter a valid crontab expression" msgstr "* 请输入有效的 crontab 表达式" -#: ops/mixin.py:157 +#: ops/mixin.py:204 msgid "Require interval or crontab setting" msgstr "需要周期或定期设置" @@ -5129,20 +5368,6 @@ msgstr "账号策略" msgid "Last execution" msgstr "最后执行" -#: ops/models/base.py:22 ops/serializers/job.py:17 -msgid "Date last run" -msgstr "最后运行日期" - -#: ops/models/base.py:51 ops/models/job.py:238 -#: xpack/plugins/cloud/models.py:223 -msgid "Result" -msgstr "结果" - -#: ops/models/base.py:52 ops/models/job.py:239 -#: xpack/plugins/cloud/manager.py:87 -msgid "Summary" -msgstr "汇总" - #: ops/models/celery.py:16 msgid "Date last publish" msgstr "发布日期" @@ -5256,10 +5481,6 @@ msgstr "下次执行时间" msgid "Execute after saving" msgstr "保存后执行" -#: ops/serializers/job.py:52 terminal/serializers/session.py:47 -msgid "Duration" -msgstr "时长" - #: ops/serializers/job.py:72 msgid "Job type" msgstr "任务类型" @@ -6736,12 +6957,6 @@ msgstr "主题" msgid "More Link" msgstr "更多信息 URL" -#: settings/serializers/feature.py:26 -#: settings/templates/ldap/_msg_import_ldap_user.html:6 -#: terminal/models/session/session.py:46 -msgid "Date end" -msgstr "结束日期" - #: settings/serializers/feature.py:39 settings/serializers/feature.py:41 #: settings/serializers/feature.py:42 msgid "Announcement" @@ -8461,7 +8676,7 @@ msgid "Access key secret" msgstr "Access key secret(SK)" #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100 -#: xpack/plugins/cloud/models.py:285 +#: xpack/plugins/cloud/models.py:286 msgid "Region" msgstr "地域" @@ -10057,7 +10272,7 @@ msgstr "私有IP" msgid "Public IP" msgstr "公网IP" -#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:359 +#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:360 msgid "Instance name" msgstr "实例名称" @@ -10140,49 +10355,49 @@ msgstr "获取区域 \"%s\" 的实例错误,错误:%s" msgid "Failed to synchronize the instance \"%s\"" msgstr "无法同步实例 %s" -#: xpack/plugins/cloud/manager.py:337 +#: xpack/plugins/cloud/manager.py:336 #, python-format msgid "" "The updated platform of asset \"%s\" is inconsistent with the original " "platform type. Skip platform and protocol updates" msgstr "资产“%s”的更新平台与原平台类型不一致。跳过平台和协议更新" -#: xpack/plugins/cloud/manager.py:393 +#: xpack/plugins/cloud/manager.py:392 #, python-format msgid "The asset \"%s\" already exists" msgstr "资产 \"%s\" 已存在" -#: xpack/plugins/cloud/manager.py:395 +#: xpack/plugins/cloud/manager.py:394 #, python-format msgid "Update asset \"%s\"" msgstr "更新资产 \"%s\"" -#: xpack/plugins/cloud/manager.py:398 +#: xpack/plugins/cloud/manager.py:397 #, python-format msgid "Asset \"%s\" has been updated" msgstr "资产 \"%s\" 已更新" -#: xpack/plugins/cloud/manager.py:408 +#: xpack/plugins/cloud/manager.py:407 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "准备创建资产 %s" -#: xpack/plugins/cloud/manager.py:429 +#: xpack/plugins/cloud/manager.py:428 #, python-format msgid "Set nodes \"%s\"" msgstr "删除节点: \"%s\"" -#: xpack/plugins/cloud/manager.py:455 +#: xpack/plugins/cloud/manager.py:454 #, python-format msgid "Set accounts \"%s\"" msgstr "删除账号: %s" -#: xpack/plugins/cloud/manager.py:471 +#: xpack/plugins/cloud/manager.py:470 #, python-format msgid "Set protocols \"%s\"" msgstr "设置协议 \"%s\"" -#: xpack/plugins/cloud/manager.py:485 xpack/plugins/cloud/tasks.py:30 +#: xpack/plugins/cloud/manager.py:484 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "执行同步实例任务" @@ -10222,133 +10437,133 @@ msgstr "主机名策略" msgid "IP network segment group" msgstr "IP网段组" -#: xpack/plugins/cloud/models.py:115 +#: xpack/plugins/cloud/models.py:116 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同步IP类型" +msgid "Preferred IP type" +msgstr "" -#: xpack/plugins/cloud/models.py:118 +#: xpack/plugins/cloud/models.py:119 msgid "Always update" msgstr "总是更新" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:121 msgid "Fully synchronous" msgstr "完全同步" -#: xpack/plugins/cloud/models.py:125 +#: xpack/plugins/cloud/models.py:126 msgid "Date last sync" msgstr "最后同步日期" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/models.py:377 -#: xpack/plugins/cloud/models.py:403 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/models.py:378 +#: xpack/plugins/cloud/models.py:404 msgid "Strategy" msgstr "策略" -#: xpack/plugins/cloud/models.py:133 xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:134 xpack/plugins/cloud/models.py:222 msgid "Sync instance task" msgstr "同步实例任务" -#: xpack/plugins/cloud/models.py:232 xpack/plugins/cloud/models.py:295 +#: xpack/plugins/cloud/models.py:233 xpack/plugins/cloud/models.py:296 msgid "Date sync" msgstr "同步日期" -#: xpack/plugins/cloud/models.py:236 +#: xpack/plugins/cloud/models.py:237 msgid "Sync instance snapshot" msgstr "同步实例快照" -#: xpack/plugins/cloud/models.py:244 +#: xpack/plugins/cloud/models.py:245 msgid "Sync instance task execution" msgstr "同步实例任务执行" -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/cloud/models.py:276 msgid "Sync task" msgstr "同步任务" -#: xpack/plugins/cloud/models.py:279 +#: xpack/plugins/cloud/models.py:280 msgid "Sync instance task history" msgstr "同步实例任务历史" -#: xpack/plugins/cloud/models.py:282 +#: xpack/plugins/cloud/models.py:283 msgid "Instance" msgstr "实例" -#: xpack/plugins/cloud/models.py:299 +#: xpack/plugins/cloud/models.py:300 msgid "Sync instance detail" msgstr "同步实例详情" -#: xpack/plugins/cloud/models.py:311 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:312 xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "条件关系" -#: xpack/plugins/cloud/models.py:321 +#: xpack/plugins/cloud/models.py:322 msgid "Task strategy" msgstr "任务策略" -#: xpack/plugins/cloud/models.py:348 +#: xpack/plugins/cloud/models.py:349 msgid "Equal" msgstr "等于" -#: xpack/plugins/cloud/models.py:349 +#: xpack/plugins/cloud/models.py:350 msgid "Not Equal" msgstr "不等于" -#: xpack/plugins/cloud/models.py:350 +#: xpack/plugins/cloud/models.py:351 msgid "In" msgstr "在...中" -#: xpack/plugins/cloud/models.py:351 +#: xpack/plugins/cloud/models.py:352 msgid "Contains" msgstr "包含" -#: xpack/plugins/cloud/models.py:352 +#: xpack/plugins/cloud/models.py:353 msgid "Exclude" msgstr "排除" -#: xpack/plugins/cloud/models.py:353 +#: xpack/plugins/cloud/models.py:354 msgid "Startswith" msgstr "以...开头" -#: xpack/plugins/cloud/models.py:354 +#: xpack/plugins/cloud/models.py:355 msgid "Endswith" msgstr "以...结尾" -#: xpack/plugins/cloud/models.py:360 +#: xpack/plugins/cloud/models.py:361 msgid "Instance platform" msgstr "实例平台" -#: xpack/plugins/cloud/models.py:361 +#: xpack/plugins/cloud/models.py:362 msgid "Instance address" msgstr "实例地址" -#: xpack/plugins/cloud/models.py:368 +#: xpack/plugins/cloud/models.py:369 msgid "Rule attr" msgstr "规则属性" -#: xpack/plugins/cloud/models.py:372 +#: xpack/plugins/cloud/models.py:373 msgid "Rule match" msgstr "规则匹配" -#: xpack/plugins/cloud/models.py:374 +#: xpack/plugins/cloud/models.py:375 msgid "Rule value" msgstr "规则值" -#: xpack/plugins/cloud/models.py:381 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:382 xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "条件" -#: xpack/plugins/cloud/models.py:391 +#: xpack/plugins/cloud/models.py:392 msgid "Name strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:398 +#: xpack/plugins/cloud/models.py:399 msgid "Action attr" msgstr "动作属性" -#: xpack/plugins/cloud/models.py:400 +#: xpack/plugins/cloud/models.py:401 msgid "Action value" msgstr "动作值" -#: xpack/plugins/cloud/models.py:407 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:408 xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "动作" @@ -10657,10 +10872,34 @@ msgstr "执行次数" msgid "Instance count" msgstr "实例个数" -#: xpack/plugins/cloud/tasks.py:44 +#: xpack/plugins/cloud/tasks.py:33 +msgid "" +"\n" +" Execute this task when manually or scheduled cloud synchronization " +"tasks are performed\n" +" " +msgstr "" +"\n" +"手动,定时执行云同步任务时执行该任务" + +#: xpack/plugins/cloud/tasks.py:52 msgid "Period clean sync instance task execution" msgstr "定期清除同步实例任务执行记录" +#: xpack/plugins/cloud/tasks.py:54 +msgid "" +"\n" +" Every day, according to the configuration in \"System Settings - " +"Tasks - Regular \n" +" clean-up - Cloud sync task history retention days\" the system will " +"clean up the execution \n" +" records generated by cloud synchronization\n" +" " +msgstr "" +"\n" +"每天根据系统设置-任务列表-定期清理配置-云同步记录配置,对云同步产生的执行记录" +"进行清理" + #: xpack/plugins/interface/api.py:52 msgid "Restore default successfully." msgstr "恢复默认成功!" @@ -10731,30 +10970,34 @@ msgstr "企业专业版" msgid "Ultimate edition" msgstr "企业旗舰版" +#~ msgid "Collected" +#~ msgstr "收集" + +#~ msgid "Not managed" +#~ msgstr "新发现" + +#~ msgid "Gathered account" +#~ msgstr "发现账号" + +#~ msgid "Diff" +#~ msgstr "差异" + +#~ msgid "Item" +#~ msgstr "项" + +#, fuzzy +#~| msgid "Gather accounts" +#~ msgid "Scan accounts" +#~ msgstr "账号发现" + +#~ msgid "{} disabled" +#~ msgstr "{} 已禁用" + +#~ msgid "Sync IP type" +#~ msgstr "同步IP类型" + #~ msgid "Gather assets accounts" #~ msgstr "收集资产上的账号" #~ msgid "Range {} to {}" #~ msgstr "输入在 {} - {} 范围之间" - -#~ msgid "" -#~ "\n" -#~ " Execute this task when manually or scheduled cloud " -#~ "synchronization tasks are performed\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ "手动,定时执行云同步任务时执行该任务" - -#~ msgid "" -#~ "\n" -#~ " Every day, according to the configuration in \"System Settings - " -#~ "Tasks - Regular \n" -#~ " clean-up - Cloud sync task history retention days\" the system " -#~ "will clean up the execution \n" -#~ " records generated by cloud synchronization\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ "每天根据系统设置-任务列表-定期清理配置-云同步记录配置,对云同步产生的执行" -#~ "记录进行清理" diff --git a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po index 8512b1e4e..9ea3b8e05 100644 --- a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-05 18:32+0800\n" +"POT-Creation-Date: 2024-11-26 16:25+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -19,7 +19,7 @@ msgstr "" "X-ZhConverter: 繁化姬 dict-74c8d060-r1048 @ 2024/04/07 18:19:20 | https://" "zhconvert.org\n" -#: accounts/api/automations/base.py:79 tickets/api/ticket.py:132 +#: accounts/api/automations/base.py:81 tickets/api/ticket.py:132 msgid "The parameter 'action' must be [{}]" msgstr "參數 'action' 必須是 [{}]" @@ -37,8 +37,12 @@ msgstr "生成與資產或應用程序相關的備份信息文件" #: accounts/automations/backup_account/handlers.py:156 #: accounts/automations/backup_account/handlers.py:295 -#: accounts/automations/backup_account/manager.py:40 ops/serializers/job.py:76 +#: accounts/automations/backup_account/manager.py:35 +#: accounts/automations/change_secret/manager.py:227 +#: assets/models/automations/base.py:121 ops/serializers/job.py:52 +#: ops/serializers/job.py:76 #: settings/templates/ldap/_msg_import_ldap_user.html:7 +#: terminal/serializers/session.py:47 msgid "Duration" msgstr "花費時間" @@ -65,7 +69,7 @@ msgstr "完成" #: accounts/automations/backup_account/handlers.py:219 #: accounts/const/automation.py:113 -#: accounts/serializers/automations/change_secret.py:169 +#: accounts/serializers/automations/change_secret.py:168 #: assets/serializers/automations/base.py:52 audits/const.py:64 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 @@ -76,7 +80,7 @@ msgstr "成功" #: accounts/automations/backup_account/handlers.py:221 #: accounts/const/account.py:34 accounts/const/automation.py:112 -#: accounts/serializers/automations/change_secret.py:170 audits/const.py:65 +#: accounts/serializers/automations/change_secret.py:169 audits/const.py:65 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 msgid "Failed" @@ -102,19 +106,22 @@ msgstr "Action結束" msgid "An exception occurred during task execution" msgstr "任務執行出現異常" -#: accounts/automations/backup_account/manager.py:23 +#: accounts/automations/backup_account/manager.py:16 msgid "The account backup plan is being executed" msgstr "帳號備份計劃正在執行" -#: accounts/automations/backup_account/manager.py:37 +#: accounts/automations/backup_account/manager.py:33 +#: accounts/automations/change_secret/manager.py:225 msgid "Plan execution end" msgstr "計劃執行結束" -#: accounts/automations/change_secret/manager.py:97 -msgid "No pending accounts found" +#: accounts/automations/change_secret/manager.py:147 +#, fuzzy +#| msgid "No pending accounts found" +msgid "! No pending accounts found" msgstr "未找到待處理帳戶" -#: accounts/automations/change_secret/manager.py:225 +#: accounts/automations/change_secret/manager.py:218 #, python-format msgid "Success: %s, Failed: %s, Total: %s" msgstr "成功: %s, 失敗: %s, 總數: %s" @@ -181,8 +188,8 @@ msgid "Local" msgstr "資料庫" #: accounts/const/account.py:27 -msgid "Collected" -msgstr "收集" +msgid "Discovery" +msgstr "" #: accounts/const/account.py:28 accounts/serializers/account/account.py:28 #: settings/serializers/auth/sms.py:84 @@ -342,24 +349,29 @@ msgid "User %s view/export secret" msgstr "用戶 %s 查看/匯出 了密碼" #: accounts/models/account.py:49 -#: accounts/models/automations/check_account.py:54 -#: accounts/models/automations/gather_account.py:26 +#: accounts/models/automations/check_account.py:58 +#: accounts/models/automations/gather_account.py:16 #: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:273 -#: accounts/serializers/account/gathered_account.py:20 -#: accounts/serializers/automations/change_secret.py:114 -#: accounts/serializers/automations/change_secret.py:146 +#: accounts/serializers/automations/change_secret.py:113 +#: accounts/serializers/automations/change_secret.py:145 +#: accounts/serializers/automations/check_account.py:32 +#: accounts/serializers/automations/gather_account.py:43 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 +#: accounts/templates/accounts/check_account_report.html:58 +#: accounts/templates/accounts/gather_account_report.html:65 +#: accounts/templates/accounts/gather_account_report.html:88 +#: accounts/templates/accounts/gather_account_report.html:113 #: acls/serializers/base.py:123 assets/models/asset/common.py:95 #: assets/models/asset/common.py:359 assets/models/cmd_filter.py:36 -#: audits/models.py:58 authentication/models/connection_token.py:36 +#: audits/models.py:58 authentication/models/connection_token.py:39 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: terminal/models/session/session.py:32 terminal/notifications.py:155 #: terminal/serializers/command.py:17 terminal/serializers/session.py:28 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 -#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 +#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:289 msgid "Asset" msgstr "資產" @@ -417,8 +429,8 @@ msgid "Change secret status" msgstr "改密參數" #: accounts/models/account.py:66 -#: accounts/serializers/automations/change_secret.py:116 -#: accounts/serializers/automations/change_secret.py:147 +#: accounts/serializers/automations/change_secret.py:115 +#: accounts/serializers/automations/change_secret.py:146 #: accounts/templates/accounts/change_secret_failed_info.html:12 #: acls/serializers/base.py:124 #: acls/templates/acls/asset_login_reminder.html:10 @@ -493,7 +505,9 @@ msgid "Account backup plan" msgstr "帳號備份計劃" #: accounts/models/automations/backup_account.py:120 -#: assets/models/automations/base.py:115 audits/models.py:65 +#: accounts/templates/accounts/check_account_report.html:17 +#: accounts/templates/accounts/gather_account_report.html:17 +#: assets/models/automations/base.py:119 audits/models.py:65 #: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:242 #: ops/templates/ops/celery_task_log.html:101 #: perms/models/asset_permission.py:78 settings/serializers/feature.py:25 @@ -518,21 +532,21 @@ msgstr "帳號備份快照" #: accounts/models/automations/backup_account.py:131 #: accounts/serializers/account/backup.py:48 #: accounts/serializers/automations/base.py:56 -#: assets/models/automations/base.py:122 -#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:240 -#: xpack/plugins/cloud/serializers/task.py:243 +#: assets/models/automations/base.py:127 +#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:241 +#: xpack/plugins/cloud/serializers/task.py:247 msgid "Trigger mode" msgstr "觸發模式" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158 -#: xpack/plugins/cloud/models.py:229 +#: xpack/plugins/cloud/models.py:230 msgid "Reason" msgstr "原因" #: accounts/models/automations/backup_account.py:136 -#: accounts/serializers/automations/change_secret.py:113 -#: accounts/serializers/automations/change_secret.py:148 +#: accounts/serializers/automations/change_secret.py:112 +#: accounts/serializers/automations/change_secret.py:147 #: ops/serializers/job.py:74 terminal/serializers/session.py:52 msgid "Is success" msgstr "是否成功" @@ -577,14 +591,21 @@ msgstr "查看推送帳號執行" msgid "Can add push account execution" msgstr "創建推送帳號執行" -#: accounts/models/automations/base.py:54 +#: accounts/models/automations/base.py:57 msgid "SSH key change strategy" msgstr "SSH 金鑰推送方式" +#: accounts/models/automations/base.py:61 +#, fuzzy +#| msgid "Super connection token" +msgid "Check connection after change" +msgstr "超級連接令牌" + #: accounts/models/automations/change_secret.py:15 -#: accounts/models/automations/gather_account.py:102 +#: accounts/models/automations/check_account.py:18 +#: accounts/models/automations/gather_account.py:93 #: accounts/serializers/account/backup.py:40 -#: accounts/serializers/automations/change_secret.py:60 +#: accounts/serializers/automations/change_secret.py:59 #: settings/serializers/auth/ldap.py:100 #: settings/serializers/auth/ldap_ha.py:82 settings/serializers/msg.py:45 msgid "Recipient" @@ -594,28 +615,29 @@ msgstr "收件人" msgid "Change secret automation" msgstr "自動化改密" -#: accounts/models/automations/change_secret.py:39 +#: accounts/models/automations/change_secret.py:36 msgid "Old secret" msgstr "原金鑰" -#: accounts/models/automations/change_secret.py:40 +#: accounts/models/automations/change_secret.py:37 msgid "New secret" msgstr "新金鑰" -#: accounts/models/automations/change_secret.py:41 +#: accounts/models/automations/change_secret.py:38 msgid "Date started" msgstr "開始日期" -#: accounts/models/automations/change_secret.py:42 -#: assets/models/automations/base.py:116 ops/models/base.py:56 +#: accounts/models/automations/change_secret.py:39 +#: assets/models/automations/base.py:120 ops/models/base.py:56 #: ops/models/celery.py:90 ops/models/job.py:243 #: terminal/models/applet/host.py:142 msgid "Date finished" msgstr "結束日期" -#: accounts/models/automations/change_secret.py:44 -#: accounts/models/automations/gather_account.py:29 -#: assets/models/automations/base.py:113 +#: accounts/models/automations/change_secret.py:41 +#: accounts/models/automations/check_account.py:61 +#: accounts/models/automations/gather_account.py:27 +#: assets/models/automations/base.py:117 #: assets/serializers/automations/base.py:39 audits/models.py:208 #: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:234 #: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140 @@ -624,12 +646,12 @@ msgstr "結束日期" #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:147 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: tickets/serializers/super_ticket.py:13 -#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 -#: xpack/plugins/cloud/models.py:292 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:226 +#: xpack/plugins/cloud/models.py:293 msgid "Status" msgstr "狀態" -#: accounts/models/automations/change_secret.py:46 +#: accounts/models/automations/change_secret.py:43 #: accounts/serializers/account/account.py:275 #: accounts/templates/accounts/change_secret_failed_info.html:13 #: assets/const/automation.py:9 @@ -640,86 +662,112 @@ msgstr "狀態" msgid "Error" msgstr "錯誤" -#: accounts/models/automations/change_secret.py:50 +#: accounts/models/automations/change_secret.py:47 msgid "Change secret record" msgstr "改密記錄" -#: accounts/models/automations/check_account.py:36 -#: accounts/models/automations/gather_account.py:119 -msgid "Gather account automation" -msgstr "自動化收集帳號" +#: accounts/models/automations/check_account.py:17 +msgid "Engines" +msgstr "" -#: accounts/models/automations/check_account.py:40 +#: accounts/models/automations/check_account.py:33 +#, fuzzy +#| msgid "Account execute automation" +msgid "account check automation" +msgstr "帳號執行自動化" + +#: accounts/models/automations/check_account.py:35 +#, fuzzy +#| msgid "Can view push account execution" +msgid "Can view check account execution" +msgstr "查看推送帳號執行" + +#: accounts/models/automations/check_account.py:36 +#, fuzzy +#| msgid "Can add push account execution" +msgid "Can add check account execution" +msgstr "創建推送帳號執行" + +#: accounts/models/automations/check_account.py:42 #, fuzzy #| msgid "Login log" msgid "Long time no login" msgstr "登錄日誌" -#: accounts/models/automations/check_account.py:41 -#, fuzzy -#| msgid "Not enabled" -msgid "Not managed" -msgstr "未啟用" - -#: accounts/models/automations/check_account.py:42 -#, fuzzy -#| msgid "On perm change" -msgid "Long time no change" -msgstr "授權變更時" - #: accounts/models/automations/check_account.py:43 #, fuzzy -#| msgid "Set password" -msgid "Weak password" -msgstr "設置密碼" +#| msgid "Not found" +msgid "New found" +msgstr "沒有發現" #: accounts/models/automations/check_account.py:44 #, fuzzy -#| msgid "Old password error" -msgid "Password error" -msgstr "原來密碼錯誤" - -#: accounts/models/automations/check_account.py:45 -#: authentication/errors/const.py:23 -msgid "Password expired" -msgstr "密碼已過期" - -#: accounts/models/automations/check_account.py:46 -#, fuzzy #| msgid "After change" -msgid "Group change" +msgid "Groups change" msgstr "變更後" -#: accounts/models/automations/check_account.py:47 +#: accounts/models/automations/check_account.py:45 #, fuzzy #| msgid "Before change" msgid "Sudo changed" msgstr "變更前" -#: accounts/models/automations/check_account.py:48 +#: accounts/models/automations/check_account.py:46 +msgid "Authorized keys changed" +msgstr "" + +#: accounts/models/automations/check_account.py:47 #, fuzzy #| msgid "Account template" msgid "Account delete" msgstr "帳號模板" +#: accounts/models/automations/check_account.py:48 +#: authentication/errors/const.py:23 +msgid "Password expired" +msgstr "密碼已過期" + #: accounts/models/automations/check_account.py:49 #, fuzzy +#| msgid "On perm change" +msgid "Long time no change" +msgstr "授權變更時" + +#: accounts/models/automations/check_account.py:51 +#, fuzzy +#| msgid "Set password" +msgid "Weak password" +msgstr "設置密碼" + +#: accounts/models/automations/check_account.py:52 +#, fuzzy +#| msgid "Old password error" +msgid "Password error" +msgstr "原來密碼錯誤" + +#: accounts/models/automations/check_account.py:53 +#, fuzzy #| msgid "No account" msgid "No admin account" msgstr "沒有帳號" -#: accounts/models/automations/check_account.py:50 +#: accounts/models/automations/check_account.py:54 #, fuzzy #| msgid "Other" msgid "Others" msgstr "其它" -#: accounts/models/automations/check_account.py:55 -#: accounts/models/automations/gather_account.py:27 +#: accounts/models/automations/check_account.py:59 +#: accounts/models/automations/gather_account.py:17 #: accounts/models/automations/push_account.py:15 accounts/models/base.py:65 -#: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19 -#: acls/serializers/base.py:50 audits/models.py:188 authentication/forms.py:21 -#: authentication/forms.py:23 authentication/models/temp_token.py:9 +#: accounts/serializers/account/virtual.py:21 +#: accounts/templates/accounts/check_account_report.html:59 +#: accounts/templates/accounts/gather_account_report.html:66 +#: accounts/templates/accounts/gather_account_report.html:89 +#: accounts/templates/accounts/gather_account_report.html:114 +#: acls/serializers/base.py:19 acls/serializers/base.py:50 audits/models.py:188 +#: authentication/forms.py:21 authentication/forms.py:23 +#: authentication/models/temp_token.py:9 #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 #: terminal/serializers/storage.py:136 users/forms/profile.py:31 @@ -729,44 +777,88 @@ msgstr "其它" msgid "Username" msgstr "使用者名稱" -#: accounts/models/automations/check_account.py:56 +#: accounts/models/automations/check_account.py:60 +#: accounts/serializers/automations/check_account.py:35 msgid "Risk" msgstr "" -#: accounts/models/automations/check_account.py:57 common/const/choices.py:79 +#: accounts/models/automations/check_account.py:62 #, fuzzy -#| msgid "Confirm" -msgid "Confirmed" -msgstr "確認" +#| msgid "Detail" +msgid "Details" +msgstr "詳情" -#: accounts/models/automations/check_account.py:60 +#: accounts/models/automations/check_account.py:65 #, fuzzy #| msgid "Accounts" msgid "Account risk" msgstr "帳號管理" -#: accounts/models/automations/gather_account.py:16 -#, fuzzy -#| msgid "Gather account" -msgid "Gathered account" -msgstr "收集帳號" +#: accounts/models/automations/check_account.py:96 accounts/models/base.py:64 +#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 +#: acls/models/base.py:96 acls/models/command_acl.py:21 +#: acls/serializers/base.py:35 assets/models/asset/common.py:93 +#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 +#: assets/models/domain.py:19 assets/models/label.py:18 +#: assets/models/platform.py:15 assets/models/platform.py:94 +#: assets/serializers/asset/common.py:171 assets/serializers/platform.py:153 +#: assets/serializers/platform.py:273 +#: authentication/backends/passkey/models.py:10 +#: authentication/models/ssh_key.py:12 +#: authentication/serializers/connect_token_secret.py:113 +#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 +#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 +#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 +#: ops/serializers/job.py:18 orgs/models.py:82 +#: perms/models/asset_permission.py:61 rbac/models/role.py:29 +#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 +#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 +#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:12 +#: terminal/models/component/endpoint.py:109 +#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 +#: terminal/models/component/terminal.py:85 +#: terminal/models/virtualapp/provider.py:10 +#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 +#: users/forms/profile.py:32 users/models/group.py:13 +#: users/models/preference.py:11 users/models/user/__init__.py:57 +#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:309 +#: xpack/plugins/cloud/serializers/task.py:75 +msgid "Name" +msgstr "名稱" -#: accounts/models/automations/gather_account.py:17 -msgid "Diff" +#: accounts/models/automations/check_account.py:97 +msgid "Slug" msgstr "" +#: accounts/models/automations/check_account.py:98 accounts/models/base.py:70 +#: assets/models/automations/base.py:22 assets/models/cmd_filter.py:39 +#: assets/models/label.py:22 +#: authentication/serializers/connect_token_secret.py:117 +#: terminal/models/applet/applet.py:41 +#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:269 +msgid "Is active" +msgstr "啟用" + #: accounts/models/automations/gather_account.py:18 -msgid "Item" +msgid "Address login" +msgstr "最後登入地址" + +#: accounts/models/automations/gather_account.py:19 +msgid "Date login" +msgstr "登錄日期" + +#: accounts/models/automations/gather_account.py:20 +msgid "Authorized keys" msgstr "" -# msgid "Comment" -# msgstr "備註" -#: accounts/models/automations/gather_account.py:19 -#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 -#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 -#: users/models/user/__init__.py:311 -msgid "Date created" -msgstr "創建日期" +#: accounts/models/automations/gather_account.py:21 +msgid "Sudoers" +msgstr "" + +#: accounts/models/automations/gather_account.py:22 +#: perms/serializers/permission.py:44 users/serializers/user.py:257 +msgid "Groups" +msgstr "使用者群組" #: accounts/models/automations/gather_account.py:23 #, fuzzy @@ -779,34 +871,33 @@ msgid "Present" msgstr "存在" #: accounts/models/automations/gather_account.py:25 -msgid "Date login" -msgstr "登錄日期" +#, fuzzy +#| msgid "Change password" +msgid "Date change password" +msgstr "改密" -#: accounts/models/automations/gather_account.py:28 -msgid "Address login" -msgstr "最後登入地址" +#: accounts/models/automations/gather_account.py:26 +#, fuzzy +#| msgid "Check password expired" +msgid "Date password expired" +msgstr "校驗密碼已過期" -#: accounts/models/automations/gather_account.py:30 -msgid "Authorized keys" -msgstr "" - -#: accounts/models/automations/gather_account.py:31 -msgid "Sudoers" -msgstr "" - -#: accounts/models/automations/gather_account.py:32 -#: perms/serializers/permission.py:44 users/serializers/user.py:257 -msgid "Groups" -msgstr "使用者群組" - -#: accounts/models/automations/gather_account.py:88 +#: accounts/models/automations/gather_account.py:79 msgid "Gather asset accounts" msgstr "收集帳號" -#: accounts/models/automations/gather_account.py:100 +#: accounts/models/automations/gather_account.py:91 msgid "Is sync account" msgstr "是否同步帳號" +#: accounts/models/automations/gather_account.py:94 +msgid "Check risk" +msgstr "" + +#: accounts/models/automations/gather_account.py:112 +msgid "Gather account automation" +msgstr "自動化收集帳號" + #: accounts/models/automations/push_account.py:14 msgid "Triggers" msgstr "觸發方式" @@ -857,49 +948,10 @@ msgstr "密文策略" msgid "Password rules" msgstr "密碼規則" -#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20 -#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21 -#: acls/serializers/base.py:35 assets/models/asset/common.py:93 -#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 -#: assets/models/domain.py:19 assets/models/label.py:18 -#: assets/models/platform.py:15 assets/models/platform.py:94 -#: assets/serializers/asset/common.py:171 assets/serializers/platform.py:153 -#: assets/serializers/platform.py:273 -#: authentication/backends/passkey/models.py:10 -#: authentication/models/ssh_key.py:12 -#: authentication/serializers/connect_token_secret.py:113 -#: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 -#: ops/mixin.py:28 ops/models/adhoc.py:19 ops/models/celery.py:15 -#: ops/models/celery.py:81 ops/models/job.py:142 ops/models/playbook.py:30 -#: ops/serializers/job.py:18 orgs/models.py:82 -#: perms/models/asset_permission.py:61 rbac/models/role.py:29 -#: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 -#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 -#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:12 -#: terminal/models/component/endpoint.py:109 -#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 -#: terminal/models/component/terminal.py:85 -#: terminal/models/virtualapp/provider.py:10 -#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 -#: users/forms/profile.py:32 users/models/group.py:13 -#: users/models/preference.py:11 users/models/user/__init__.py:57 -#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:308 -#: xpack/plugins/cloud/serializers/task.py:75 -msgid "Name" -msgstr "名稱" - #: accounts/models/base.py:69 msgid "Privileged" msgstr "特權帳號" -#: accounts/models/base.py:70 assets/models/automations/base.py:21 -#: assets/models/cmd_filter.py:39 assets/models/label.py:22 -#: authentication/serializers/connect_token_secret.py:117 -#: terminal/models/applet/applet.py:41 -#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:269 -msgid "Is active" -msgstr "啟用" - #: accounts/models/template.py:18 msgid "Auto push" msgstr "自動推送" @@ -912,7 +964,7 @@ msgstr "系統平台" msgid "Push params" msgstr "帳號推送參數" -#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:389 +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:390 msgid "Account template" msgstr "帳號模板" @@ -1024,11 +1076,11 @@ msgstr "類別" #: accounts/serializers/account/account.py:207 #: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24 -#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20 +#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:21 #: assets/models/cmd_filter.py:74 assets/models/platform.py:96 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:155 #: assets/serializers/platform.py:167 audits/serializers.py:53 -#: audits/serializers.py:170 +#: audits/serializers.py:170 authentication/models/connection_token.py:60 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: terminal/models/component/storage.py:58 @@ -1062,7 +1114,7 @@ msgstr "已修改" #: accounts/serializers/account/account.py:286 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: acls/templates/acls/asset_login_reminder.html:9 -#: assets/models/automations/base.py:19 +#: assets/models/automations/base.py:20 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/platform.py:176 assets/serializers/platform.py:208 #: authentication/api/connection_token.py:410 ops/models/base.py:17 @@ -1105,7 +1157,7 @@ msgstr "ID" #: acls/templates/acls/user_login_reminder.html:8 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 #: audits/models.py:90 audits/models.py:172 audits/models.py:271 -#: audits/serializers.py:171 authentication/models/connection_token.py:32 +#: audits/serializers.py:171 authentication/models/connection_token.py:35 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 @@ -1138,7 +1190,7 @@ msgid "Executions" msgstr "執行次數" #: accounts/serializers/account/backup.py:41 -#: accounts/serializers/automations/change_secret.py:61 +#: accounts/serializers/automations/change_secret.py:60 msgid "Currently only mail sending is supported" msgstr "當前只支持郵件發送" @@ -1208,7 +1260,7 @@ msgstr "關聯平台,可配置推送參數,如果不關聯,將使用默認 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 -#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:123 msgid "Comment" msgstr "備註" @@ -1237,7 +1289,7 @@ msgid "Name already exists" msgstr "名稱已存在" #: accounts/serializers/automations/base.py:54 -#: assets/models/automations/base.py:118 +#: assets/models/automations/base.py:123 #: assets/serializers/automations/base.py:38 msgid "Automation snapshot" msgstr "自動化快照" @@ -1246,35 +1298,39 @@ msgstr "自動化快照" msgid "SSH Key strategy" msgstr "SSH 金鑰更改方式" -#: accounts/serializers/automations/change_secret.py:59 +#: accounts/serializers/automations/change_secret.py:58 msgid "Please enter your account username" msgstr "請輸入您的帳戶使用者名稱" -#: accounts/serializers/automations/change_secret.py:63 +#: accounts/serializers/automations/change_secret.py:62 #, fuzzy #| msgid "Automation execution" msgid "Notification before execution" msgstr "自動化執行" -#: accounts/serializers/automations/change_secret.py:65 +#: accounts/serializers/automations/change_secret.py:64 msgid "" "Secret parameter settings, currently only effective for assets of the host " "type." msgstr "參數設置,目前只對 AIX LINUX UNIX 類型的資產有效。" -#: accounts/serializers/automations/change_secret.py:87 +#: accounts/serializers/automations/change_secret.py:86 msgid "* Please enter the correct password length" msgstr "* 請輸入正確的密碼長度" -#: accounts/serializers/automations/change_secret.py:91 +#: accounts/serializers/automations/change_secret.py:90 msgid "* Password length range 6-30 bits" msgstr "* 密碼長度範圍 6-30 位" -#: accounts/serializers/automations/change_secret.py:120 -#: assets/models/automations/base.py:127 +#: accounts/serializers/automations/change_secret.py:119 +#: assets/models/automations/base.py:134 msgid "Automation task execution" msgstr "自動化任務執行歷史" +#: accounts/serializers/automations/gather_account.py:27 +msgid "Whether to check the risk of the gathered accounts." +msgstr "" + #: accounts/signal_handlers.py:48 #, python-format msgid "Push related accounts to assets: %s, by system" @@ -1396,17 +1452,6 @@ msgstr "" msgid "Remove historical accounts that are out of range." msgstr "刪除超出範圍的歷史帳戶。" -#: accounts/tasks/scan_account.py:14 -#, fuzzy -#| msgid "Gather accounts" -msgid "Scan accounts" -msgstr "收集帳號" - -#: accounts/tasks/scan_account.py:16 assets/tasks/automation.py:27 -#: orgs/tasks.py:11 terminal/tasks.py:33 -msgid "Unused" -msgstr "" - #: accounts/tasks/template.py:11 msgid "Template sync info to related accounts" msgstr "同步資訊到關聯的帳號" @@ -1458,6 +1503,8 @@ msgid "Deleted account" msgstr "刪除帳號" #: accounts/templates/accounts/change_secret_failed_info.html:3 +#: accounts/templates/accounts/check_account_report.html:13 +#: accounts/templates/accounts/gather_account_report.html:13 #: terminal/serializers/task.py:10 msgid "Task name" msgstr "任務名稱" @@ -1476,16 +1523,171 @@ msgid "" "or pushing the account. Please check and handle it in time." msgstr "你好! 以下是資產改密或推送帳戶失敗的情況。 請及時檢查並處理。" -#: accounts/utils.py:52 +#: accounts/templates/accounts/check_account_report.html:4 +#: accounts/templates/accounts/gather_account_report.html:4 +msgid "" +"The following is a summary of the account check tasks. Please review and " +"handle them" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:21 +#: accounts/templates/accounts/gather_account_report.html:21 +#: settings/serializers/feature.py:26 +#: settings/templates/ldap/_msg_import_ldap_user.html:6 +#: terminal/models/session/session.py:46 +msgid "Date end" +msgstr "結束日期" + +#: accounts/templates/accounts/check_account_report.html:25 +#: accounts/templates/accounts/gather_account_report.html:25 +msgid "Time using" +msgstr "" + +#: accounts/templates/accounts/check_account_report.html:29 +#: accounts/templates/accounts/gather_account_report.html:30 +#, fuzzy +#| msgid "Assets amount" +msgid "Assets count" +msgstr "資產數量" + +#: accounts/templates/accounts/check_account_report.html:33 +#, fuzzy +#| msgid "Accounts create amount" +msgid "Account count" +msgstr "創建帳號數量" + +#: accounts/templates/accounts/check_account_report.html:37 +#, fuzzy +#| msgid "Recent password count" +msgid "Week password count" +msgstr "不能設定近幾次密碼" + +#: accounts/templates/accounts/check_account_report.html:41 +#, fuzzy +#| msgid "CPU count" +msgid "Ok count" +msgstr "CPU數量" + +#: accounts/templates/accounts/check_account_report.html:45 +#, fuzzy +#| msgid "Recent password count" +msgid "No password count" +msgstr "不能設定近幾次密碼" + +#: accounts/templates/accounts/check_account_report.html:53 +#, fuzzy +#| msgid "Account Details" +msgid "Account check details" +msgstr "帳號" + +#: accounts/templates/accounts/check_account_report.html:57 +#: accounts/templates/accounts/gather_account_report.html:64 +#: accounts/templates/accounts/gather_account_report.html:87 +#: accounts/templates/accounts/gather_account_report.html:112 +#, fuzzy +#| msgid "No" +msgid "No." +msgstr "否" + +#: accounts/templates/accounts/check_account_report.html:60 +#: accounts/templates/accounts/gather_account_report.html:115 +#: assets/models/automations/base.py:130 ops/models/base.py:51 +#: ops/models/job.py:238 xpack/plugins/cloud/models.py:224 +msgid "Result" +msgstr "結果" + +#: accounts/templates/accounts/check_account_report.html:69 +#, fuzzy +#| msgid "Set password" +msgid "Week password" +msgstr "設置密碼" + +#: accounts/templates/accounts/gather_account_report.html:34 +#, fuzzy +#| msgid "Assets amount" +msgid "Asset success count" +msgstr "資產數量" + +#: accounts/templates/accounts/gather_account_report.html:38 +#, fuzzy +#| msgid "Assets amount" +msgid "Asset failed count" +msgstr "資產數量" + +#: accounts/templates/accounts/gather_account_report.html:42 +#, fuzzy +#| msgid "Asset not found" +msgid "Asset not support count" +msgstr "資產不存在" + +#: accounts/templates/accounts/gather_account_report.html:47 +#, fuzzy +#| msgid "Account not found" +msgid "Account new found count" +msgstr "帳號未找到" + +#: accounts/templates/accounts/gather_account_report.html:51 +#, fuzzy +#| msgid "Account not found" +msgid "Account lost count" +msgstr "帳號未找到" + +#: accounts/templates/accounts/gather_account_report.html:59 +#, fuzzy +#| msgid "Test cloud account" +msgid "New found accounts" +msgstr "測試雲帳號" + +#: accounts/templates/accounts/gather_account_report.html:82 +#, fuzzy +#| msgid "No account" +msgid "Lost accounts" +msgstr "沒有帳號" + +#: accounts/templates/accounts/gather_account_report.html:107 +msgid "New found risks" +msgstr "" + +#: accounts/utils.py:53 msgid "" "If the password starts with {{` and ends with }} `, then the password is not " "allowed." msgstr "如果密碼以 `{{` 開始,並且以 `}}` 結束,則該密碼是不允許的。" -#: accounts/utils.py:59 +#: accounts/utils.py:61 msgid "private key invalid or passphrase error" msgstr "金鑰不合法或金鑰密碼錯誤" +#: accounts/utils.py:66 +#, fuzzy +#| msgid "Ignore case" +msgid "Ignore" +msgstr "忽略大小寫" + +#: accounts/utils.py:67 +#, fuzzy +#| msgid "Disabled or expired" +msgid "Disable remote" +msgstr "禁用或失效" + +#: accounts/utils.py:68 accounts/utils.py:69 +#, fuzzy +#| msgid "Deleted account" +msgid "Delete remote" +msgstr "刪除帳號" + +#: accounts/utils.py:70 accounts/utils.py:72 +#, fuzzy +#| msgid "Added account" +msgid "Add account" +msgstr "新增帳號" + +#: accounts/utils.py:71 +#, fuzzy +#| msgid "Change password" +msgid "Change password and Add" +msgstr "改密" + #: acls/apps.py:7 msgid "App Acls" msgstr "存取控制" @@ -1516,12 +1718,12 @@ msgid "Notify and warn" msgstr "提示並警告" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:315 msgid "Priority" msgstr "優先度" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:316 msgid "1-100, the lower the value will be match first" msgstr "優先度可選範圍為 1-100 (數值越小越優先)" @@ -1532,7 +1734,7 @@ msgstr "審批人" #: acls/models/base.py:43 assets/models/asset/common.py:171 #: authentication/models/access_key.py:25 -#: authentication/models/connection_token.py:53 +#: authentication/models/connection_token.py:56 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 #: perms/models/asset_permission.py:82 @@ -1548,7 +1750,7 @@ msgstr "啟用中" msgid "Users" msgstr "用戶管理" -#: acls/models/base.py:98 assets/models/automations/base.py:17 +#: acls/models/base.py:98 assets/models/automations/base.py:18 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:148 #: assets/serializers/asset/common.py:409 perms/serializers/permission.py:55 #: perms/serializers/user_permission.py:75 rbac/tree.py:35 @@ -1565,7 +1767,7 @@ msgid "Command" msgstr "命令" #: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 -#: xpack/plugins/cloud/models.py:355 +#: xpack/plugins/cloud/models.py:356 msgid "Regex" msgstr "正則表達式" @@ -1686,7 +1888,7 @@ msgstr "" #: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8 -#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:390 +#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:391 msgid "IP" msgstr "IP" @@ -1780,38 +1982,34 @@ msgstr "同級別節點名字不能重複" msgid "App Assets" msgstr "資產管理" -#: assets/automations/base/manager.py:187 -msgid "{} disabled" -msgstr "{} 已禁用" - -#: assets/automations/base/manager.py:250 +#: assets/automations/base/manager.py:323 msgid " - Platform {} ansible disabled" msgstr " - 平台 {} Ansible 已禁用, 無法執行任務" -#: assets/automations/base/manager.py:323 +#: assets/automations/base/manager.py:496 msgid ">>> Task preparation phase" msgstr ">>> 任務準備階段" -#: assets/automations/base/manager.py:326 +#: assets/automations/base/manager.py:500 #, python-brace-format msgid ">>> Executing tasks in batches, total {runner_count}" msgstr ">>> 分次執行任務,總共 {runner_count}" -#: assets/automations/base/manager.py:328 +#: assets/automations/base/manager.py:505 msgid ">>> Start executing tasks" msgstr ">>> 開始執行任務" -#: assets/automations/base/manager.py:330 +#: assets/automations/base/manager.py:507 msgid ">>> No tasks need to be executed" msgstr ">>> 沒有需要執行的任務" -#: assets/automations/base/manager.py:335 +#: assets/automations/base/manager.py:511 #, python-brace-format msgid ">>> Begin executing batch {index} of tasks" msgstr ">>> 開始執行第 {index} 批任務" #: assets/automations/ping_gateway/manager.py:33 -#: authentication/models/connection_token.py:131 +#: authentication/models/connection_token.py:143 msgid "No account" msgstr "沒有帳號" @@ -2077,7 +2275,7 @@ msgstr "認證資料庫" msgid "The database to authenticate against" msgstr "要進行身份驗證的資料庫" -#: assets/const/protocol.py:232 authentication/models/connection_token.py:43 +#: assets/const/protocol.py:232 authentication/models/connection_token.py:46 msgid "Connect options" msgstr "連接項" @@ -2153,7 +2351,7 @@ msgstr "地址" #: assets/serializers/asset/common.py:150 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 -#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 +#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:386 msgid "Platform" msgstr "系統平台" @@ -2210,25 +2408,38 @@ msgstr "忽略證書校驗" msgid "Proxy" msgstr "代理" -#: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 +#: assets/models/automations/base.py:19 assets/models/cmd_filter.py:32 #: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:386 +#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:387 msgid "Node" msgstr "節點" -#: assets/models/automations/base.py:22 ops/models/job.py:237 +#: assets/models/automations/base.py:23 ops/models/job.py:237 #: settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "參數" -#: assets/models/automations/base.py:29 assets/models/automations/base.py:111 +#: assets/models/automations/base.py:33 assets/models/automations/base.py:115 msgid "Automation task" msgstr "自動化任務" -#: assets/models/automations/base.py:104 +#: assets/models/automations/base.py:108 msgid "Asset automation task" msgstr "資產自動化任務" +# msgid "Comment" +# msgstr "備註" +#: assets/models/automations/base.py:118 assets/models/cmd_filter.py:41 +#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:241 +#: users/models/user/__init__.py:311 +msgid "Date created" +msgstr "創建日期" + +#: assets/models/automations/base.py:129 ops/models/base.py:52 +#: ops/models/job.py:239 xpack/plugins/cloud/manager.py:87 +msgid "Summary" +msgstr "匯總" + #: assets/models/automations/gather_facts.py:15 msgid "Gather asset facts" msgstr "收集資產資訊" @@ -2300,7 +2511,7 @@ msgstr "系統" #: assets/models/label.py:19 assets/models/node.py:539 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:24 -#: authentication/models/connection_token.py:29 +#: authentication/models/connection_token.py:32 #: authentication/serializers/connect_token_secret.py:125 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:36 #: users/models/preference.py:13 @@ -2525,7 +2736,7 @@ msgstr "節點路徑,格式為 [\"/組織/節點名稱\"], 如果節點不存 #: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 -#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:388 +#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:389 #: xpack/plugins/cloud/serializers/task.py:35 msgid "Protocols" msgstr "協議組" @@ -2780,6 +2991,10 @@ msgstr "收集資產硬體資訊" msgid "Asset execute automation" msgstr "資產執行自動化" +#: assets/tasks/automation.py:27 orgs/tasks.py:11 terminal/tasks.py:33 +msgid "Unused" +msgstr "" + #: assets/tasks/gather_facts.py:22 assets/tasks/gather_facts.py:34 msgid "Gather assets facts" msgstr "收集資產資訊" @@ -3152,7 +3367,7 @@ msgstr "认证代币描述" msgid "%s %s this resource" msgstr "用户 %s %s 了当前资源" -#: audits/serializers.py:172 authentication/models/connection_token.py:47 +#: audits/serializers.py:172 authentication/models/connection_token.py:50 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80 #: tickets/models/ticket/apply_application.py:31 #: tickets/models/ticket/apply_asset.py:20 users/models/user/__init__.py:98 @@ -3675,21 +3890,21 @@ msgstr "請修改密碼" msgid "IP group" msgstr "IPグループ" -#: authentication/models/connection_token.py:38 +#: authentication/models/connection_token.py:41 #: terminal/serializers/storage.py:114 msgid "Account name" msgstr "帳號名稱" -#: authentication/models/connection_token.py:39 +#: authentication/models/connection_token.py:42 msgid "Input username" msgstr "自訂使用者名稱" -#: authentication/models/connection_token.py:40 +#: authentication/models/connection_token.py:43 #: authentication/serializers/connection_token.py:18 msgid "Input secret" msgstr "自訂密碼" -#: authentication/models/connection_token.py:41 +#: authentication/models/connection_token.py:44 #: authentication/serializers/connect_token_secret.py:114 #: settings/serializers/msg.py:28 terminal/models/applet/applet.py:43 #: terminal/models/virtualapp/virtualapp.py:24 @@ -3698,63 +3913,69 @@ msgstr "自訂密碼" msgid "Protocol" msgstr "協議" -#: authentication/models/connection_token.py:42 +#: authentication/models/connection_token.py:45 msgid "Connect method" msgstr "連接方式" -#: authentication/models/connection_token.py:44 +#: authentication/models/connection_token.py:47 msgid "User display" msgstr "使用者名稱" -#: authentication/models/connection_token.py:45 +#: authentication/models/connection_token.py:48 msgid "Asset display" msgstr "資產名稱" -#: authentication/models/connection_token.py:46 +#: authentication/models/connection_token.py:49 msgid "Reusable" msgstr "可以重複使用" -#: authentication/models/connection_token.py:51 +#: authentication/models/connection_token.py:54 #: perms/models/asset_permission.py:83 msgid "From ticket" msgstr "來自工單" -#: authentication/models/connection_token.py:58 +#: authentication/models/connection_token.py:66 msgid "Can expire connection token" msgstr "可以失效連接令牌" -#: authentication/models/connection_token.py:59 +#: authentication/models/connection_token.py:67 msgid "Can reuse connection token" msgstr "可以復用連接令牌" -#: authentication/models/connection_token.py:61 +#: authentication/models/connection_token.py:69 msgid "Connection token" msgstr "連接令牌" -#: authentication/models/connection_token.py:118 +#: authentication/models/connection_token.py:130 msgid "Connection token inactive" msgstr "連接令牌未啟用" -#: authentication/models/connection_token.py:122 +#: authentication/models/connection_token.py:134 msgid "Connection token expired at: {}" msgstr "連接令牌過期: {}" -#: authentication/models/connection_token.py:125 +#: authentication/models/connection_token.py:137 msgid "No user or invalid user" msgstr "沒有用戶或用戶失效" -#: authentication/models/connection_token.py:128 +#: authentication/models/connection_token.py:140 msgid "No asset or inactive asset" msgstr "沒有資產或資產未啟用" -#: authentication/models/connection_token.py:274 +#: authentication/models/connection_token.py:288 msgid "Can view super connection token secret" msgstr "可以查看超級連接令牌密文" -#: authentication/models/connection_token.py:276 +#: authentication/models/connection_token.py:290 msgid "Super connection token" msgstr "超級連接令牌" +#: authentication/models/connection_token.py:307 +#, fuzzy +#| msgid "Connection token" +msgid "Admin connection token" +msgstr "連接令牌" + #: authentication/models/private_token.py:11 msgid "Private Token" msgstr "私有令牌" @@ -3805,7 +4026,7 @@ msgid "Component" msgstr "組件" #: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:387 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:388 msgid "Domain" msgstr "網域" @@ -4306,13 +4527,19 @@ msgstr "運行中" msgid "Canceled" msgstr "取消" +#: common/const/choices.py:79 +#, fuzzy +#| msgid "Confirm" +msgid "Confirmed" +msgstr "確認" + #: common/const/choices.py:80 #, fuzzy #| msgid "Ignore case" msgid "Ignored" msgstr "忽略大小寫" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:412 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:411 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s 創建成功" @@ -5045,40 +5272,44 @@ msgstr "私有IP" msgid "no valid program entry found." msgstr "沒有可用程序入口" -#: ops/mixin.py:30 ops/mixin.py:119 settings/serializers/auth/ldap.py:73 +#: ops/mixin.py:34 ops/mixin.py:166 settings/serializers/auth/ldap.py:73 #: settings/serializers/auth/ldap_ha.py:55 msgid "Periodic run" msgstr "週期性執行" -#: ops/mixin.py:32 ops/mixin.py:105 ops/mixin.py:125 +#: ops/mixin.py:36 ops/mixin.py:113 ops/mixin.py:172 #: settings/serializers/auth/ldap.py:80 settings/serializers/auth/ldap_ha.py:62 msgid "Interval" msgstr "間隔" -#: ops/mixin.py:35 ops/mixin.py:103 ops/mixin.py:122 +#: ops/mixin.py:39 ops/mixin.py:111 ops/mixin.py:169 #: settings/serializers/auth/ldap.py:77 settings/serializers/auth/ldap_ha.py:59 msgid "Crontab" msgstr "Crontab" -#: ops/mixin.py:39 ops/mixin.py:130 +#: ops/mixin.py:43 ops/mixin.py:177 #, fuzzy #| msgid "Datetime" msgid "Start Datetime" msgstr "日期" -#: ops/mixin.py:41 ops/mixin.py:132 +#: ops/mixin.py:45 ops/mixin.py:179 msgid "Datetime when the schedule should begin triggering the task to run" msgstr "" -#: ops/mixin.py:136 +#: ops/mixin.py:49 ops/models/base.py:22 ops/serializers/job.py:17 +msgid "Date last run" +msgstr "最後運行日期" + +#: ops/mixin.py:183 msgid "Run period" msgstr "執行週期" -#: ops/mixin.py:142 +#: ops/mixin.py:189 msgid "* Please enter a valid crontab expression" msgstr "* 請輸入有效的 crontab 表達式" -#: ops/mixin.py:157 +#: ops/mixin.py:204 msgid "Require interval or crontab setting" msgstr "需要週期或定期設定" @@ -5111,20 +5342,6 @@ msgstr "帳號策略" msgid "Last execution" msgstr "最後執行" -#: ops/models/base.py:22 ops/serializers/job.py:17 -msgid "Date last run" -msgstr "最後運行日期" - -#: ops/models/base.py:51 ops/models/job.py:238 -#: xpack/plugins/cloud/models.py:223 -msgid "Result" -msgstr "結果" - -#: ops/models/base.py:52 ops/models/job.py:239 -#: xpack/plugins/cloud/manager.py:87 -msgid "Summary" -msgstr "匯總" - #: ops/models/celery.py:16 msgid "Date last publish" msgstr "發布日期" @@ -5238,10 +5455,6 @@ msgstr "下次Action時間" msgid "Execute after saving" msgstr "儲存後Action" -#: ops/serializers/job.py:52 terminal/serializers/session.py:47 -msgid "Duration" -msgstr "時長" - #: ops/serializers/job.py:72 msgid "Job type" msgstr "任務類型" @@ -6705,12 +6918,6 @@ msgstr "主題" msgid "More Link" msgstr "更多資訊 URL" -#: settings/serializers/feature.py:26 -#: settings/templates/ldap/_msg_import_ldap_user.html:6 -#: terminal/models/session/session.py:46 -msgid "Date end" -msgstr "結束日期" - #: settings/serializers/feature.py:39 settings/serializers/feature.py:41 #: settings/serializers/feature.py:42 msgid "Announcement" @@ -8425,7 +8632,7 @@ msgid "Access key secret" msgstr "Access key secret(SK)" #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100 -#: xpack/plugins/cloud/models.py:285 +#: xpack/plugins/cloud/models.py:286 msgid "Region" msgstr "地域" @@ -10001,7 +10208,7 @@ msgstr "私有IP" msgid "Public IP" msgstr "公網IP" -#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:359 +#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:360 msgid "Instance name" msgstr "實例名稱" @@ -10085,7 +10292,7 @@ msgstr "" msgid "Failed to synchronize the instance \"%s\"" msgstr "Unable to synchronize instance %s" -#: xpack/plugins/cloud/manager.py:337 +#: xpack/plugins/cloud/manager.py:336 #, python-format msgid "" "The updated platform of asset \"%s\" is inconsistent with the original " @@ -10094,42 +10301,42 @@ msgstr "" "The update platform of asset \"%s\" is not consistent with the original " "platform type. Skip platform and protocol updates" -#: xpack/plugins/cloud/manager.py:393 +#: xpack/plugins/cloud/manager.py:392 #, python-format msgid "The asset \"%s\" already exists" msgstr "\"資產 \"%s\" 已存在" -#: xpack/plugins/cloud/manager.py:395 +#: xpack/plugins/cloud/manager.py:394 #, python-format msgid "Update asset \"%s\"" msgstr "更新資產 \"%s\"" -#: xpack/plugins/cloud/manager.py:398 +#: xpack/plugins/cloud/manager.py:397 #, python-format msgid "Asset \"%s\" has been updated" msgstr "資產 \"%s\" 已更新" -#: xpack/plugins/cloud/manager.py:408 +#: xpack/plugins/cloud/manager.py:407 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "Preparing to create asset %s" -#: xpack/plugins/cloud/manager.py:429 +#: xpack/plugins/cloud/manager.py:428 #, python-format msgid "Set nodes \"%s\"" msgstr "Delete Node: \"%s\"" -#: xpack/plugins/cloud/manager.py:455 +#: xpack/plugins/cloud/manager.py:454 #, python-format msgid "Set accounts \"%s\"" msgstr "刪除帳號: %s" -#: xpack/plugins/cloud/manager.py:471 +#: xpack/plugins/cloud/manager.py:470 #, python-format msgid "Set protocols \"%s\"" msgstr "設定協議 \"%s\"" -#: xpack/plugins/cloud/manager.py:485 xpack/plugins/cloud/tasks.py:30 +#: xpack/plugins/cloud/manager.py:484 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "執行同步實例任務" @@ -10169,133 +10376,133 @@ msgstr "主機名策略" msgid "IP network segment group" msgstr "IP網段組" -#: xpack/plugins/cloud/models.py:115 +#: xpack/plugins/cloud/models.py:116 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同步IP類型" +msgid "Preferred IP type" +msgstr "" -#: xpack/plugins/cloud/models.py:118 +#: xpack/plugins/cloud/models.py:119 msgid "Always update" msgstr "總是更新" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:121 msgid "Fully synchronous" msgstr "完全同步" -#: xpack/plugins/cloud/models.py:125 +#: xpack/plugins/cloud/models.py:126 msgid "Date last sync" msgstr "最後同步日期" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/models.py:377 -#: xpack/plugins/cloud/models.py:403 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/models.py:378 +#: xpack/plugins/cloud/models.py:404 msgid "Strategy" msgstr "策略" -#: xpack/plugins/cloud/models.py:133 xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:134 xpack/plugins/cloud/models.py:222 msgid "Sync instance task" msgstr "同步實例任務" -#: xpack/plugins/cloud/models.py:232 xpack/plugins/cloud/models.py:295 +#: xpack/plugins/cloud/models.py:233 xpack/plugins/cloud/models.py:296 msgid "Date sync" msgstr "同步日期" -#: xpack/plugins/cloud/models.py:236 +#: xpack/plugins/cloud/models.py:237 msgid "Sync instance snapshot" msgstr "同步實例快照" -#: xpack/plugins/cloud/models.py:244 +#: xpack/plugins/cloud/models.py:245 msgid "Sync instance task execution" msgstr "同步實例任務執行" -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/cloud/models.py:276 msgid "Sync task" msgstr "同步任務" -#: xpack/plugins/cloud/models.py:279 +#: xpack/plugins/cloud/models.py:280 msgid "Sync instance task history" msgstr "同步實例任務歷史" -#: xpack/plugins/cloud/models.py:282 +#: xpack/plugins/cloud/models.py:283 msgid "Instance" msgstr "實例" -#: xpack/plugins/cloud/models.py:299 +#: xpack/plugins/cloud/models.py:300 msgid "Sync instance detail" msgstr "同步實例詳情" -#: xpack/plugins/cloud/models.py:311 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:312 xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "條件關係" -#: xpack/plugins/cloud/models.py:321 +#: xpack/plugins/cloud/models.py:322 msgid "Task strategy" msgstr "任務策略" -#: xpack/plugins/cloud/models.py:348 +#: xpack/plugins/cloud/models.py:349 msgid "Equal" msgstr "等於" -#: xpack/plugins/cloud/models.py:349 +#: xpack/plugins/cloud/models.py:350 msgid "Not Equal" msgstr "不等於" -#: xpack/plugins/cloud/models.py:350 +#: xpack/plugins/cloud/models.py:351 msgid "In" msgstr "在...中" -#: xpack/plugins/cloud/models.py:351 +#: xpack/plugins/cloud/models.py:352 msgid "Contains" msgstr "包含" -#: xpack/plugins/cloud/models.py:352 +#: xpack/plugins/cloud/models.py:353 msgid "Exclude" msgstr "排除" -#: xpack/plugins/cloud/models.py:353 +#: xpack/plugins/cloud/models.py:354 msgid "Startswith" msgstr "以...開頭" -#: xpack/plugins/cloud/models.py:354 +#: xpack/plugins/cloud/models.py:355 msgid "Endswith" msgstr "以...結尾" -#: xpack/plugins/cloud/models.py:360 +#: xpack/plugins/cloud/models.py:361 msgid "Instance platform" msgstr "實例平台" -#: xpack/plugins/cloud/models.py:361 +#: xpack/plugins/cloud/models.py:362 msgid "Instance address" msgstr "實例地址" -#: xpack/plugins/cloud/models.py:368 +#: xpack/plugins/cloud/models.py:369 msgid "Rule attr" msgstr "規則屬性" -#: xpack/plugins/cloud/models.py:372 +#: xpack/plugins/cloud/models.py:373 msgid "Rule match" msgstr "規則匹配" -#: xpack/plugins/cloud/models.py:374 +#: xpack/plugins/cloud/models.py:375 msgid "Rule value" msgstr "規則值" -#: xpack/plugins/cloud/models.py:381 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:382 xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "條件" -#: xpack/plugins/cloud/models.py:391 +#: xpack/plugins/cloud/models.py:392 msgid "Name strategy" msgstr "主機名稱策略" -#: xpack/plugins/cloud/models.py:398 +#: xpack/plugins/cloud/models.py:399 msgid "Action attr" msgstr "動作屬性" -#: xpack/plugins/cloud/models.py:400 +#: xpack/plugins/cloud/models.py:401 msgid "Action value" msgstr "動作值" -#: xpack/plugins/cloud/models.py:407 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:408 xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "動作" @@ -10604,10 +10811,29 @@ msgstr "執行次數" msgid "Instance count" msgstr "實例個數" -#: xpack/plugins/cloud/tasks.py:44 +#: xpack/plugins/cloud/tasks.py:33 +msgid "" +"\n" +" Execute this task when manually or scheduled cloud synchronization " +"tasks are performed\n" +" " +msgstr "" + +#: xpack/plugins/cloud/tasks.py:52 msgid "Period clean sync instance task execution" msgstr "定期清除同步實例任務執行記錄" +#: xpack/plugins/cloud/tasks.py:54 +msgid "" +"\n" +" Every day, according to the configuration in \"System Settings - " +"Tasks - Regular \n" +" clean-up - Cloud sync task history retention days\" the system will " +"clean up the execution \n" +" records generated by cloud synchronization\n" +" " +msgstr "" + #: xpack/plugins/interface/api.py:52 msgid "Restore default successfully." msgstr "恢復默認成功!" @@ -10678,6 +10904,30 @@ msgstr "企業專業版" msgid "Ultimate edition" msgstr "企業旗艦版" +#~ msgid "Collected" +#~ msgstr "收集" + +#, fuzzy +#~| msgid "Not enabled" +#~ msgid "Not managed" +#~ msgstr "未啟用" + +#, fuzzy +#~| msgid "Gather account" +#~ msgid "Gathered account" +#~ msgstr "收集帳號" + +#, fuzzy +#~| msgid "Gather accounts" +#~ msgid "Scan accounts" +#~ msgstr "收集帳號" + +#~ msgid "{} disabled" +#~ msgstr "{} 已禁用" + +#~ msgid "Sync IP type" +#~ msgstr "同步IP類型" + #~ msgid "Clean change secret and push record period description" #~ msgstr "" #~ "系統會定期清理不必要的變更密文記錄和推播記錄,包括與變更任務、執行記錄、資" diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index 5b0e5e82b..442f704c8 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -18,10 +18,10 @@ "AccountDeleteConfirmMsg": "Delete account, continue?", "AccountExportTips": "The exported information contains sensitive information such as encrypted account numbers. the exported format is an encrypted zip file (if you have not set the encryption password, please go to personal info to set the file encryption password).", "AccountDiscoverDetail": "Gather account details", - "AccountDiscoverList": "Gather accounts", - "AccountDiscoverTaskCreate": "Create gather accounts task", - "AccountDiscoverTaskList": "Gather accounts tasks", - "AccountDiscoverTaskUpdate": "Update the gather accounts task", + "AccountDiscoverList": "Discover accounts", + "AccountDiscoverTaskCreate": "Create discover accounts task", + "AccountDiscoverTaskList": "Discover accounts tasks", + "AccountDiscoverTaskUpdate": "Update the discover accounts task", "AccountList": "Accounts", "AccountPolicy": "Account policy", "AccountPolicyHelpText": "For accounts that do not meet the requirements when creating, such as: non-compliant key types and unique key constraints, you can choose the above strategy.", @@ -546,9 +546,9 @@ "GatewayList": "Gateways", "GatewayPlatformHelpText": "Only platforms with names starting with ‘Gateway’ can be used as gateways.", "GatewayUpdate": "Update the gateway", - "DiscoverAccounts": "Gather accounts", + "DiscoverAccounts": "Discover accounts", "DiscoverAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.", - "GatheredAccountList": "Gathered accounts", + "DiscoveredAccountList": "Discovered accounts", "General": "General", "GeneralAccounts": "General accounts", "GeneralSetting": "General", diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index 1c804d4ca..1bd1fd881 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -563,7 +563,7 @@ "GatewayUpdate": "ゲートウェイの更新", "DiscoverAccounts": "アカウント収集", "DiscoverAccountsHelpText": "資産上のアカウント情報を収集します。収集したアカウント情報は、システムにインポートして一元管理が可能です", - "GatheredAccountList": "収集したアカウント", + "DiscoveredAccountList": "収集したアカウント", "General": "基本", "GeneralAccounts": "一般アカウント", "GeneralSetting": "汎用設定", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index 3da1b5400..5902ecefd 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -548,7 +548,7 @@ "GatewayUpdate": "更新网关", "DiscoverAccounts": "账号发现", "DiscoverAccountsHelpText": "收集资产上的账号信息。收集后的账号信息可以导入到系统中,方便统一管理", - "GatheredAccountList": "发现的账号", + "DiscoveredAccountList": "发现的账号", "General": "基本", "GeneralAccounts": "普通账号", "GeneralSetting": "通用配置", diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json index 4d750a2b1..a3150bdfc 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -719,7 +719,7 @@ "GatewayUpdate": "更新網關", "DiscoverAccounts": "帳號收集", "DiscoverAccountsHelpText": "收集資產上的賬號資訊。收集後的賬號資訊可以導入到系統中,方便統一", - "GatheredAccountList": "Collected accounts", + "DiscoveredAccountList": "Collected accounts", "General": "基本", "GeneralAccounts": "普通帳號", "GeneralSetting": "General Settings",