Merge branch 'pam' of github.com:jumpserver/jumpserver into pam

pull/14989/head
ibuler 2025-03-10 15:25:46 +08:00
commit 038d93e318
27 changed files with 978 additions and 794 deletions

View File

@ -1,6 +1,7 @@
import os
from django.utils.translation import gettext_lazy as _, get_language
from django.conf import settings
from django.utils.translation import gettext_lazy as _, get_language
from rest_framework.decorators import action
from rest_framework.response import Response
@ -45,9 +46,9 @@ class IntegrationApplicationViewSet(OrgBulkModelViewSet):
'node': 'js',
'curl': 'sh',
}
sdk_language = request.query_params.get('language','python')
sdk_language = request.query_params.get('language', 'python')
sdk_path = os.path.join(settings.APPS_DIR, 'accounts', 'demos', sdk_language)
readme_path = os.path.join(sdk_path, f'readme.{get_language()}.md')
readme_path = os.path.join(sdk_path, f'README.{get_language()}.md')
demo_path = os.path.join(sdk_path, f'demo.{code_suffix_mapper[sdk_language]}')
readme_content = self.read_file(readme_path)

View File

@ -75,19 +75,17 @@ class ChangeSecretRecordViewSet(mixins.ListModelMixin, OrgGenericViewSet):
date_finished=Subquery(
recent_dates.filter(account=OuterRef('account')).values('max_date_finished')[:1]
)
).filter(Q(status=ChangeSecretRecordStatusChoice.success) | Q(ignore_fail=True))
).filter(Q(status=ChangeSecretRecordStatusChoice.success))
failed_records = queryset.filter(
~Q(account__in=Subquery(recent_success_accounts.values('account'))),
status=ChangeSecretRecordStatusChoice.failed
status=ChangeSecretRecordStatusChoice.failed,
ignore_fail=False
)
return failed_records
def get_queryset(self):
qs = ChangeSecretRecord.get_valid_records()
return qs.filter(
execution__automation__type=self.tp
)
return ChangeSecretRecord.get_valid_records()
@action(methods=['post'], detail=False, url_path='execute')
def execute(self, request, *args, **kwargs):

View File

@ -155,7 +155,7 @@ class ChangeSecretDashboardApi(APIView):
for task in tasks:
_id = task.get('id')
name = task.get('name')
tp = task.kwargs.get('tp')
tp = task.get('kwargs', {}).get('tp')
if name == self.task_name and tp == self.tp:
execution_ids.append(_id)

View File

@ -95,6 +95,7 @@ class GatheredAccountViewSet(OrgBulkModelViewSet):
updated_instances.update(status=new_status)
if new_status == "confirmed":
GatheredAccount.sync_accounts(updated_instances)
updated_instances.update(present=True)
return Response(status=status.HTTP_200_OK)

View File

@ -52,10 +52,7 @@ class PushAccountRecordViewSet(mixins.ListModelMixin, OrgGenericViewSet):
}
def get_queryset(self):
qs = PushSecretRecord.get_valid_records()
return qs.filter(
execution__automation__type=self.tp
)
return PushSecretRecord.get_valid_records()
class PushAccountAssetsListApi(AutomationAssetsListApi):

View File

@ -174,8 +174,9 @@ class AccountBackupHandler:
if not files:
return
recipients = User.objects.filter(id__in=list(recipients))
msg = _("Start sending backup emails")
print(
f'\033[32m>>> {_("Start sending backup emails")}\033[0m'
f'\033[32m>>> {msg}\033[0m'
''
)
name = self.name

View File

@ -1,5 +1,8 @@
import threading
import time
from copy import deepcopy
from celery import current_task
from django.conf import settings
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
@ -119,12 +122,50 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager):
for account in accounts:
h = deepcopy(host)
h['name'] += '(' + account.username + ')' # To distinguish different accounts
h = self.gen_account_inventory(account, asset, h, path_dir)
try:
h = self.gen_account_inventory(account, asset, h, path_dir)
except Exception as e:
h['error'] = str(e)
inventory_hosts.append(h)
return inventory_hosts
@staticmethod
def is_running_in_celery():
return getattr(current_task, 'request', None) is not None
def wait_and_save_recorder(self, recorder, max_retries=10, retry_interval=2):
recorder_model = type(recorder)
for attempt in range(max_retries):
exist = recorder_model.objects.filter(
account_id=recorder.account_id, execution=self.execution
).exists()
if exist:
print(f"Data inserted, updating recorder status after {attempt + 1}th query")
recorder.save(update_fields=['error', 'status', 'date_finished'])
return True
print(f"Data not ready, waiting {retry_interval} second(s) and retrying ({attempt + 1}/{max_retries})")
time.sleep(retry_interval)
print("\033[31m The data is still not inserted, giving up saving the recorder status.\033[0m")
return False
def save_record(self, recorder):
if self.is_running_in_celery():
self.wait_and_save_recorder(recorder)
else:
thread = threading.Thread(
target=self.wait_and_save_recorder,
args=(recorder,),
daemon=True
)
thread.start()
def on_host_success(self, host, result):
recorder = self.name_recorder_mapper.get(host)
if not recorder:
return
@ -141,10 +182,6 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager):
account.date_change_secret = timezone.now()
account.change_secret_status = ChangeSecretRecordStatusChoice.success
with safe_db_connection():
recorder.save(update_fields=['status', 'date_finished'])
account.save(update_fields=['secret', 'date_updated', 'date_change_secret', 'change_secret_status'])
self.summary['ok_accounts'] += 1
self.result['ok_accounts'].append(
{
@ -154,6 +191,10 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager):
)
super().on_host_success(host, result)
with safe_db_connection():
account.save(update_fields=['secret', 'date_updated', 'date_change_secret', 'change_secret_status'])
self.save_record(recorder)
def on_host_error(self, host, error, result):
recorder = self.name_recorder_mapper.get(host)
if not recorder:
@ -161,10 +202,7 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager):
recorder.status = ChangeSecretRecordStatusChoice.failed.value
recorder.date_finished = timezone.now()
recorder.error = error
try:
recorder.save()
except Exception as e:
print(f"\033[31m Save {host} recorder error: {e} \033[0m\n")
self.summary['fail_accounts'] += 1
self.result['fail_accounts'].append(
{
@ -173,3 +211,6 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager):
}
)
super().on_host_error(host, error, result)
with safe_db_connection():
self.save_record(recorder)

View File

@ -6,6 +6,7 @@ import uuid
from django.conf import settings
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from accounts.models import Account, AccountRisk, RiskChoice
from assets.automations.base.manager import BaseManager
@ -266,17 +267,13 @@ class CheckAccountManager(BaseManager):
return "accounts/check_account_report.html"
def print_summary(self):
tmpl = (
"\n---\nSummary: \nok: %s, weak password: %s, leaked password: %s, "
"repeated password: %s, no secret: %s, using time: %ss"
% (
self.summary["ok"],
self.summary[RiskChoice.weak_password],
self.summary[RiskChoice.leaked_password],
self.summary[RiskChoice.repeated_password],
self.summary["no_secret"],
int(self.duration),
)
tmpl = _("\n---\nSummary: \nok: {}, weak password: {}, leaked password: {}, "
"repeated password: {}, no secret: {}, using time: {}s").format(
self.summary["ok"],
self.summary[RiskChoice.weak_password],
self.summary[RiskChoice.leaked_password],
self.summary[RiskChoice.repeated_password],
self.summary["no_secret"],
int(self.duration)
)
print(tmpl)

View File

@ -378,6 +378,11 @@ class GatherAccountsManager(AccountBasePlaybookManager):
continue
gathered_accounts = GatheredAccount.objects.filter(asset=asset)
GatheredAccount.sync_accounts(gathered_accounts, self.is_sync_account)
GatheredAccount.objects.filter(
asset=asset, username__in=ori_users, present=False
).update(
present=True
)
# 因为有 bulk create, bulk update, 所以这里需要 sleep 一下,等待数据同步
time.sleep(0.5)

View File

@ -25,9 +25,11 @@ class PushAccountManager(BaseChangeSecretPushManager):
return account.secret
def gen_account_inventory(self, account, asset, h, path_dir):
self.get_or_create_record(asset, account, h['name'])
secret = self.get_secret(account)
secret_type = account.secret_type
if not secret:
raise ValueError(_('Secret cannot be empty'))
self.get_or_create_record(asset, account, h['name'])
new_secret, private_key_path = self.handle_ssh_secret(secret_type, secret, path_dir)
h = self.gen_inventory(h, account, new_secret, private_key_path, asset)
return h

View File

@ -150,7 +150,7 @@ class GatheredAccountFilterSet(BaseFilterSet):
fields = ["id", "username"]
class SecretRecordMixin:
class SecretRecordMixin(drf_filters.FilterSet):
asset_name = drf_filters.CharFilter(
field_name="asset__name", lookup_expr="icontains"
)

View File

@ -3,6 +3,7 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from simple_history.models import HistoricalRecords
from assets.models import Asset
from assets.models.base import AbsConnectivity
from common.utils import lazyproperty, get_logger
from labels.mixins import LabeledMixin
@ -59,7 +60,24 @@ class AccountHistoricalRecords(HistoricalRecords):
return super().create_history_model(model, inherited)
class Account(AbsConnectivity, LabeledMixin, BaseAccount):
class JSONFilterMixin:
@staticmethod
def get_json_filter_attr_q(name, value, match):
if name == "asset":
if match == "m2m_all":
asset_id = (
Asset.objects.filter(id__in=value)
.annotate(count=models.Count("id"))
.filter(count=len(value))
.values_list("id", flat=True)
)
else:
asset_id = Asset.objects.filter(id__in=value).values_list("id", flat=True)
return models.Q(asset_id__in=asset_id)
return None
class Account(AbsConnectivity, LabeledMixin, BaseAccount, JSONFilterMixin):
asset = models.ForeignKey(
'assets.Asset', related_name='accounts',
on_delete=models.CASCADE, verbose_name=_('Asset')

View File

@ -7,6 +7,7 @@ from accounts.const import (
)
from common.db import fields
from common.db.models import JMSBaseModel
from orgs.utils import get_current_org
from .base import AccountBaseAutomation, ChangeSecretMixin
__all__ = ['ChangeSecretAutomation', 'ChangeSecretRecord', 'BaseSecretRecord']
@ -57,9 +58,15 @@ class BaseSecretRecord(JMSBaseModel):
@classmethod
def get_valid_records(cls):
org = get_current_org()
if org is None or org.is_root():
kwargs = {}
else:
kwargs = {'execution__org_id': org.id}
return cls.objects.exclude(
Q(execution__isnull=True) | Q(asset__isnull=True) | Q(account__isnull=True)
)
).filter(**kwargs)
class ChangeSecretRecord(BaseSecretRecord):

View File

@ -171,4 +171,8 @@ class RiskHandler:
}
execution.save()
execution.start()
GatheredAccount.objects.filter(asset=self.asset, username=self.username).update(
present=True
)
return execution.summary

View File

@ -86,8 +86,8 @@ class ChangeSecretAutomationSerializer(AuthValidateMixin, BaseAutomationSerializ
msg = _("* Please enter the correct password length")
raise serializers.ValidationError(msg)
if length < 6 or length > 30:
msg = _('* Password length range 6-30 bits')
if length < 8 or length > 36:
msg = _('* Password length range 8-36 bits')
raise serializers.ValidationError(msg)
return password_rules

View File

@ -43,6 +43,7 @@ class AutomationExecutionSerializer(serializers.ModelSerializer):
snapshot = serializers.SerializerMethodField(label=_('Automation snapshot'))
trigger = LabeledChoiceField(choices=Trigger.choices, read_only=True, label=_("Trigger mode"))
status = LabeledChoiceField(choices=Status.choices, read_only=True, label=_('Status'))
automation = ObjectRelatedField(required=False, queryset=BaseAutomation.objects, attrs=('id', 'name'))
class Meta:
model = AutomationExecution

View File

@ -25,7 +25,6 @@ from common.storage.ftp_file import FTPFileStorageHandler
from common.utils import is_uuid, get_logger, lazyproperty
from ops.const import Types
from ops.models import Job
from ops.serializers.job import JobSerializer
from orgs.mixins.api import OrgReadonlyModelViewSet, OrgModelViewSet
from orgs.models import Organization
from orgs.utils import current_org, tmp_to_root_org
@ -168,7 +167,7 @@ class UserLoginLogViewSet(UserLoginCommonMixin, OrgReadonlyModelViewSet):
def get_queryset(self):
queryset = super().get_queryset()
if current_org.is_root():
if current_org.is_root() or not settings.XPACK_ENABLED:
return queryset
users = self.get_org_member_usernames()
queryset = queryset.filter(username__in=users)

View File

@ -61,8 +61,7 @@ class UserMixin:
logger.debug(log_prompt.format("user: {}|created: {}".format(user, created)))
logger.debug(log_prompt.format("Send signal => openid create or update user"))
openid_create_or_update_user.send(
sender=self.__class__, request=request, user=user,
created=created, attrs=user_attrs,
sender=self.__class__, user=user, created=created, attrs=user_attrs,
)
return user, created

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-28 18:37+0800\n"
"POT-Creation-Date: 2025-03-07 15:03+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -24,7 +24,7 @@ msgstr ""
msgid "Account already exists"
msgstr ""
#: accounts/api/account/application.py:77
#: accounts/api/account/application.py:78
#: authentication/api/connection_token.py:449
msgid "Account not found"
msgstr ""
@ -48,8 +48,8 @@ msgstr ""
#: accounts/automations/backup_account/handlers.py:168
#: accounts/automations/backup_account/manager.py:26
#: accounts/automations/change_secret/manager.py:95
#: accounts/automations/push_account/manager.py:59
#: assets/models/automations/base.py:142 ops/serializers/job.py:71
#: accounts/automations/push_account/manager.py:61
#: assets/models/automations/base.py:145 ops/serializers/job.py:71
#: ops/serializers/job.py:95
#: settings/templates/ldap/_msg_import_ldap_user.html:7
#: terminal/serializers/session.py:49
@ -60,23 +60,27 @@ msgstr ""
msgid "Backup file creation completed"
msgstr ""
#: accounts/automations/backup_account/handlers.py:203
#: accounts/automations/backup_account/handlers.py:177
msgid "Start sending backup emails"
msgstr ""
#: accounts/automations/backup_account/handlers.py:204
msgid "Encrypting files using encryption password"
msgstr ""
#: accounts/automations/backup_account/handlers.py:213
#: accounts/automations/backup_account/handlers.py:214
msgid "The backup file will be sent to"
msgstr ""
#: accounts/automations/backup_account/handlers.py:236
#: accounts/automations/backup_account/handlers.py:237
msgid "The backup task has no assigned sftp server"
msgstr ""
#: accounts/automations/backup_account/handlers.py:257
#: accounts/automations/backup_account/handlers.py:258
msgid "The backup task has no assigned recipient"
msgstr ""
#: accounts/automations/backup_account/handlers.py:280
#: accounts/automations/backup_account/handlers.py:281
msgid "Plan start"
msgstr ""
@ -86,11 +90,11 @@ msgstr ""
#: accounts/automations/backup_account/manager.py:24
#: accounts/automations/change_secret/manager.py:93
#: accounts/automations/push_account/manager.py:57
#: accounts/automations/push_account/manager.py:59
msgid "Plan execution end"
msgstr ""
#: accounts/automations/base/manager.py:106
#: accounts/automations/base/manager.py:109
msgid "No pending accounts found"
msgstr ""
@ -99,6 +103,10 @@ msgstr ""
msgid "Success: %s, Failed: %s, Total: %s"
msgstr ""
#: accounts/automations/push_account/manager.py:31
msgid "Secret cannot be empty"
msgstr ""
#: accounts/automations/verify_gateway_account/manager.py:18
msgid ">>> Start executing the task to test gateway account connectivity"
msgstr ""
@ -423,13 +431,13 @@ msgstr ""
#: accounts/serializers/automations/gather_account.py:47
#: accounts/templates/accounts/asset_account_change_info.html:7
#: accounts/templates/accounts/change_secret_failed_info.html:11
#: accounts/templates/accounts/change_secret_report.html:70
#: accounts/templates/accounts/change_secret_report.html:102
#: accounts/templates/accounts/check_account_report.html:78
#: accounts/templates/accounts/change_secret_report.html:72
#: accounts/templates/accounts/change_secret_report.html:104
#: accounts/templates/accounts/check_account_report.html:79
#: accounts/templates/accounts/gather_account_report.html:71
#: accounts/templates/accounts/gather_account_report.html:103
#: accounts/templates/accounts/push_account_report.html:70
#: accounts/templates/accounts/push_account_report.html:102
#: accounts/templates/accounts/push_account_report.html:72
#: accounts/templates/accounts/push_account_report.html:104
#: acls/serializers/base.py:130 assets/models/asset/common.py:102
#: assets/models/asset/common.py:366 assets/models/cmd_filter.py:36
#: audits/models.py:59 audits/models.py:312 audits/serializers.py:228
@ -492,7 +500,7 @@ msgstr ""
#: accounts/models/account.py:85
#: accounts/models/automations/check_account.py:67
#: accounts/serializers/account/service.py:10
#: accounts/serializers/account/service.py:11
#: accounts/serializers/automations/change_secret.py:115
#: accounts/serializers/automations/change_secret.py:146
#: accounts/templates/accounts/change_secret_failed_info.html:12
@ -536,7 +544,7 @@ msgstr ""
#: accounts/models/application.py:16
#: accounts/models/automations/check_account.py:119 accounts/models/base.py:63
#: accounts/serializers/account/service.py:26
#: accounts/serializers/account/service.py:27
#: 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:100
@ -704,7 +712,7 @@ msgstr ""
msgid "Check connection after change"
msgstr ""
#: accounts/models/automations/change_secret.py:16
#: accounts/models/automations/change_secret.py:17
#: accounts/models/automations/check_account.py:19
#: accounts/models/automations/gather_account.py:92
#: accounts/serializers/automations/change_secret.py:59
@ -713,22 +721,22 @@ msgstr ""
msgid "Recipient"
msgstr "Recipients"
#: accounts/models/automations/change_secret.py:23
#: accounts/models/automations/change_secret.py:24
msgid "Change secret automation"
msgstr ""
#: accounts/models/automations/change_secret.py:46
#: assets/models/automations/base.py:141 ops/models/base.py:56
#: accounts/models/automations/change_secret.py:47
#: assets/models/automations/base.py:144 ops/models/base.py:56
#: ops/models/celery.py:90 ops/models/job.py:240
#: terminal/models/applet/host.py:142
msgid "Date finished"
msgstr ""
#: accounts/models/automations/change_secret.py:48
#: accounts/models/automations/change_secret.py:49
#: accounts/models/automations/check_account.py:75
#: accounts/models/automations/gather_account.py:25
#: accounts/serializers/automations/check_account.py:39
#: assets/models/automations/base.py:133
#: assets/models/automations/base.py:136
#: assets/serializers/automations/base.py:45 audits/models.py:209
#: audits/serializers.py:78 ops/models/base.py:49 ops/models/job.py:231
#: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140
@ -742,7 +750,7 @@ msgstr ""
msgid "Status"
msgstr ""
#: accounts/models/automations/change_secret.py:50
#: accounts/models/automations/change_secret.py:51
#: accounts/serializers/account/account.py:276
#: accounts/templates/accounts/change_secret_failed_info.html:13
#: assets/const/automation.py:9
@ -753,19 +761,19 @@ msgstr ""
msgid "Error"
msgstr ""
#: accounts/models/automations/change_secret.py:66
#: accounts/models/automations/change_secret.py:73
msgid "Old secret"
msgstr ""
#: accounts/models/automations/change_secret.py:67
#: accounts/models/automations/change_secret.py:74
msgid "New secret"
msgstr ""
#: accounts/models/automations/change_secret.py:68
#: accounts/models/automations/change_secret.py:75
msgid "Ignore fail"
msgstr ""
#: accounts/models/automations/change_secret.py:71
#: accounts/models/automations/change_secret.py:78
msgid "Change secret record"
msgstr ""
@ -819,8 +827,8 @@ msgid "Long time no change"
msgstr ""
#: accounts/models/automations/check_account.py:52
#: accounts/templates/accounts/check_account_report.html:69
#: accounts/templates/accounts/check_account_report.html:89
#: accounts/templates/accounts/check_account_report.html:70
#: accounts/templates/accounts/check_account_report.html:90
msgid "Weak password"
msgstr ""
@ -847,13 +855,13 @@ msgstr ""
#: accounts/models/automations/check_account.py:64
#: accounts/models/automations/gather_account.py:17 accounts/models/base.py:64
#: accounts/serializers/account/virtual.py:21
#: accounts/templates/accounts/change_secret_report.html:71
#: accounts/templates/accounts/change_secret_report.html:103
#: accounts/templates/accounts/check_account_report.html:79
#: accounts/templates/accounts/change_secret_report.html:73
#: accounts/templates/accounts/change_secret_report.html:105
#: accounts/templates/accounts/check_account_report.html:80
#: accounts/templates/accounts/gather_account_report.html:72
#: accounts/templates/accounts/gather_account_report.html:104
#: accounts/templates/accounts/push_account_report.html:71
#: accounts/templates/accounts/push_account_report.html:103
#: accounts/templates/accounts/push_account_report.html:73
#: accounts/templates/accounts/push_account_report.html:105
#: acls/serializers/base.py:19 acls/serializers/base.py:50 audits/models.py:189
#: authentication/forms.py:21 authentication/forms.py:23
#: authentication/models/temp_token.py:9
@ -1260,12 +1268,12 @@ msgid ""
"accounts, use the format username@domain."
msgstr ""
#: accounts/serializers/account/service.py:12
#: accounts/serializers/account/service.py:13
#: authentication/serializers/token.py:22
msgid "Access IP"
msgstr ""
#: accounts/serializers/account/service.py:25
#: accounts/serializers/account/service.py:26
#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25
#: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37
@ -1280,9 +1288,9 @@ msgstr ""
msgid "Comment"
msgstr "Description"
#: accounts/serializers/account/service.py:27
#: accounts/templates/accounts/backup_account_report.html:38
#: accounts/templates/accounts/check_account_report.html:38
#: accounts/serializers/account/service.py:28
#: accounts/templates/accounts/backup_account_report.html:39
#: accounts/templates/accounts/check_account_report.html:39
#: assets/serializers/asset/common.py:151
msgid "Accounts amount"
msgstr ""
@ -1367,7 +1375,7 @@ msgid "Name already exists"
msgstr ""
#: accounts/serializers/automations/base.py:31
#: assets/models/automations/base.py:144
#: assets/models/automations/base.py:147
#: assets/serializers/automations/base.py:43
msgid "Automation snapshot"
msgstr ""
@ -1395,7 +1403,7 @@ msgid "* Please enter the correct password length"
msgstr ""
#: accounts/serializers/automations/change_secret.py:90
msgid "* Password length range 6-30 bits"
msgid "* Password length range 8-36 bits"
msgstr ""
#: accounts/serializers/automations/change_secret.py:112
@ -1405,7 +1413,7 @@ msgid "Is success"
msgstr "Is success"
#: accounts/serializers/automations/change_secret.py:119
#: assets/models/automations/base.py:160
#: assets/models/automations/base.py:163
msgid "Automation task execution"
msgstr ""
@ -1554,28 +1562,28 @@ msgstr ""
msgid "Deleted account"
msgstr ""
#: accounts/templates/accounts/backup_account_report.html:13
#: accounts/templates/accounts/backup_account_report.html:14
msgid ""
"The following is a summary of account backup tasks, please review and handle "
"them"
msgstr ""
#: accounts/templates/accounts/backup_account_report.html:22
#: accounts/templates/accounts/backup_account_report.html:23
#: accounts/templates/accounts/change_secret_failed_info.html:3
#: accounts/templates/accounts/change_secret_report.html:22
#: accounts/templates/accounts/check_account_report.html:22
#: accounts/templates/accounts/change_secret_report.html:24
#: accounts/templates/accounts/check_account_report.html:23
#: accounts/templates/accounts/gather_account_report.html:23
#: accounts/templates/accounts/push_account_report.html:22
#: accounts/templates/accounts/push_account_report.html:24
#: terminal/serializers/task.py:10
msgid "Task name"
msgstr ""
#: accounts/templates/accounts/backup_account_report.html:26
#: accounts/templates/accounts/change_secret_report.html:26
#: accounts/templates/accounts/check_account_report.html:26
#: accounts/templates/accounts/backup_account_report.html:27
#: accounts/templates/accounts/change_secret_report.html:28
#: accounts/templates/accounts/check_account_report.html:27
#: accounts/templates/accounts/gather_account_report.html:27
#: accounts/templates/accounts/push_account_report.html:26
#: assets/models/automations/base.py:139 audits/models.py:66
#: accounts/templates/accounts/push_account_report.html:28
#: assets/models/automations/base.py:142 audits/models.py:66
#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:239
#: ops/templates/ops/celery_task_log.html:101
#: perms/models/asset_permission.py:78 settings/serializers/feature.py:27
@ -1586,26 +1594,26 @@ msgstr ""
msgid "Date start"
msgstr ""
#: accounts/templates/accounts/backup_account_report.html:30
#: accounts/templates/accounts/change_secret_report.html:30
#: accounts/templates/accounts/check_account_report.html:30
#: accounts/templates/accounts/backup_account_report.html:31
#: accounts/templates/accounts/change_secret_report.html:32
#: accounts/templates/accounts/check_account_report.html:31
#: accounts/templates/accounts/gather_account_report.html:31
#: accounts/templates/accounts/push_account_report.html:30
#: accounts/templates/accounts/push_account_report.html:32
#: settings/serializers/feature.py:28
#: settings/templates/ldap/_msg_import_ldap_user.html:6
#: terminal/models/session/session.py:48
msgid "Date end"
msgstr ""
#: accounts/templates/accounts/backup_account_report.html:34
#: accounts/templates/accounts/change_secret_report.html:34
#: accounts/templates/accounts/check_account_report.html:34
#: accounts/templates/accounts/backup_account_report.html:35
#: accounts/templates/accounts/change_secret_report.html:36
#: accounts/templates/accounts/check_account_report.html:35
#: accounts/templates/accounts/gather_account_report.html:35
#: accounts/templates/accounts/push_account_report.html:34
#: accounts/templates/accounts/push_account_report.html:36
msgid "Time using"
msgstr ""
#: accounts/templates/accounts/backup_account_report.html:42
#: accounts/templates/accounts/backup_account_report.html:43
msgid "Type count"
msgstr ""
@ -1623,93 +1631,93 @@ msgid ""
"or pushing the account. Please check and handle it in time."
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:13
#: accounts/templates/accounts/change_secret_report.html:15
msgid ""
"The following is a summary of account change secret tasks, please read and "
"process"
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:38
#: accounts/templates/accounts/change_secret_report.html:40
#: accounts/templates/accounts/gather_account_report.html:39
#: accounts/templates/accounts/push_account_report.html:38
#: accounts/templates/accounts/push_account_report.html:40
#: assets/serializers/domain.py:24 assets/serializers/platform.py:182
#: orgs/serializers.py:13 perms/serializers/permission.py:50
msgid "Assets amount"
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:42
#: accounts/templates/accounts/check_account_report.html:50
#: accounts/templates/accounts/change_secret_report.html:44
#: accounts/templates/accounts/check_account_report.html:51
#: accounts/templates/accounts/gather_account_report.html:43
#: accounts/templates/accounts/push_account_report.html:42
#: accounts/templates/accounts/push_account_report.html:44
msgid "Asset success count"
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:46
#: accounts/templates/accounts/check_account_report.html:54
#: accounts/templates/accounts/change_secret_report.html:48
#: accounts/templates/accounts/check_account_report.html:55
#: accounts/templates/accounts/gather_account_report.html:47
#: accounts/templates/accounts/push_account_report.html:46
#: accounts/templates/accounts/push_account_report.html:48
msgid "Asset failed count"
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:50
#: accounts/templates/accounts/check_account_report.html:58
#: accounts/templates/accounts/change_secret_report.html:52
#: accounts/templates/accounts/check_account_report.html:59
#: accounts/templates/accounts/gather_account_report.html:51
#: accounts/templates/accounts/push_account_report.html:50
#: accounts/templates/accounts/push_account_report.html:52
msgid "Asset not support count"
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:61
#: accounts/templates/accounts/push_account_report.html:61
#: accounts/templates/accounts/change_secret_report.html:63
#: accounts/templates/accounts/push_account_report.html:63
msgid "Success accounts"
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:69
#: accounts/templates/accounts/change_secret_report.html:101
#: accounts/templates/accounts/check_account_report.html:77
#: accounts/templates/accounts/change_secret_report.html:71
#: accounts/templates/accounts/change_secret_report.html:103
#: accounts/templates/accounts/check_account_report.html:78
#: accounts/templates/accounts/gather_account_report.html:70
#: accounts/templates/accounts/gather_account_report.html:102
#: accounts/templates/accounts/push_account_report.html:69
#: accounts/templates/accounts/push_account_report.html:101
#: accounts/templates/accounts/push_account_report.html:71
#: accounts/templates/accounts/push_account_report.html:103
#: audits/handler.py:128
msgid "No"
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:85
#: accounts/templates/accounts/change_secret_report.html:117
#: accounts/templates/accounts/change_secret_report.html:87
#: accounts/templates/accounts/change_secret_report.html:119
#: accounts/templates/accounts/gather_account_report.html:86
#: accounts/templates/accounts/gather_account_report.html:118
#: accounts/templates/accounts/push_account_report.html:85
#: accounts/templates/accounts/push_account_report.html:117
#: accounts/templates/accounts/push_account_report.html:87
#: accounts/templates/accounts/push_account_report.html:119
msgid "No new accounts found"
msgstr ""
#: accounts/templates/accounts/change_secret_report.html:92
#: accounts/templates/accounts/push_account_report.html:92
#: accounts/templates/accounts/change_secret_report.html:94
#: accounts/templates/accounts/push_account_report.html:94
msgid "Failed accounts"
msgstr ""
#: accounts/templates/accounts/check_account_report.html:13
#: accounts/templates/accounts/check_account_report.html:14
#: accounts/templates/accounts/gather_account_report.html:14
msgid ""
"The following is a summary of the account check tasks. Please review and "
"handle them"
msgstr ""
#: accounts/templates/accounts/check_account_report.html:42
#: accounts/templates/accounts/check_account_report.html:43
msgid "Ok count"
msgstr ""
#: accounts/templates/accounts/check_account_report.html:46
#: accounts/templates/accounts/check_account_report.html:47
msgid "No password count"
msgstr ""
#: accounts/templates/accounts/check_account_report.html:80
#: assets/models/automations/base.py:153 ops/models/base.py:51
#: accounts/templates/accounts/check_account_report.html:81
#: assets/models/automations/base.py:156 ops/models/base.py:51
#: ops/models/job.py:235 xpack/plugins/cloud/models.py:225
msgid "Result"
msgstr ""
#: accounts/templates/accounts/check_account_report.html:95
#: accounts/templates/accounts/check_account_report.html:96
msgid "No weak password"
msgstr ""
@ -1721,7 +1729,7 @@ msgstr ""
msgid "Lost accounts"
msgstr ""
#: accounts/templates/accounts/push_account_report.html:13
#: accounts/templates/accounts/push_account_report.html:15
msgid ""
"The following is a summary of account push tasks, please read and process"
msgstr ""
@ -2022,28 +2030,28 @@ msgstr ""
msgid "App Assets"
msgstr "Assets"
#: assets/automations/base/manager.py:332
#: assets/automations/base/manager.py:347
msgid " - Platform {} ansible disabled"
msgstr ""
#: assets/automations/base/manager.py:514
#: assets/automations/base/manager.py:530
msgid ">>> Task preparation phase"
msgstr ""
#: assets/automations/base/manager.py:518
#: assets/automations/base/manager.py:534
#, python-brace-format
msgid ">>> Executing tasks in batches, total {runner_count}"
msgstr ""
#: assets/automations/base/manager.py:523
#: assets/automations/base/manager.py:539
msgid ">>> Start executing tasks"
msgstr ""
#: assets/automations/base/manager.py:525
#: assets/automations/base/manager.py:541
msgid ">>> No tasks need to be executed"
msgstr ""
#: assets/automations/base/manager.py:529
#: assets/automations/base/manager.py:545
#, python-brace-format
msgid ">>> Begin executing batch {index} of tasks"
msgstr ""
@ -2468,27 +2476,31 @@ msgstr ""
msgid "Parameters"
msgstr ""
#: assets/models/automations/base.py:41 assets/models/automations/base.py:128
#: assets/models/automations/base.py:31
msgid "Last execution date"
msgstr ""
#: assets/models/automations/base.py:44 assets/models/automations/base.py:131
msgid "Automation task"
msgstr ""
#: assets/models/automations/base.py:119
#: assets/models/automations/base.py:122
msgid "Asset automation task"
msgstr ""
#: assets/models/automations/base.py:136 assets/models/cmd_filter.py:41
#: assets/models/automations/base.py:139 assets/models/cmd_filter.py:41
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:238
#: users/models/user/__init__.py:322
msgid "Date created"
msgstr ""
#: assets/models/automations/base.py:150
#: assets/models/automations/base.py:153
#: assets/serializers/automations/base.py:44 xpack/plugins/cloud/models.py:242
#: xpack/plugins/cloud/serializers/task.py:249
msgid "Trigger mode"
msgstr ""
#: assets/models/automations/base.py:152 audits/serializers.py:39
#: assets/models/automations/base.py:155 audits/serializers.py:39
#: ops/models/base.py:52 ops/models/job.py:236
#: xpack/plugins/cloud/manager.py:103
msgid "Summary"
@ -6874,7 +6886,7 @@ msgid "User first login update profile done redirect to it"
msgstr ""
#: settings/serializers/basic.py:22
msgid "Global organization"
msgid "Global org display"
msgstr ""
#: settings/serializers/basic.py:23

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-28 18:37+0800\n"
"POT-Creation-Date: 2025-03-07 15:03+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -24,7 +24,7 @@ msgstr ""
msgid "Account already exists"
msgstr "アカウントはすでに存在しています"
#: accounts/api/account/application.py:77
#: accounts/api/account/application.py:78
#: authentication/api/connection_token.py:449
msgid "Account not found"
msgstr "アカウントが見つかりません"
@ -48,8 +48,8 @@ msgstr "資産関連のバックアップ情報ファイルを生成"
#: accounts/automations/backup_account/handlers.py:168
#: accounts/automations/backup_account/manager.py:26
#: accounts/automations/change_secret/manager.py:95
#: accounts/automations/push_account/manager.py:59
#: assets/models/automations/base.py:142 ops/serializers/job.py:71
#: accounts/automations/push_account/manager.py:61
#: assets/models/automations/base.py:145 ops/serializers/job.py:71
#: ops/serializers/job.py:95
#: settings/templates/ldap/_msg_import_ldap_user.html:7
#: terminal/serializers/session.py:49
@ -60,23 +60,27 @@ msgstr "時を過ごす"
msgid "Backup file creation completed"
msgstr "バックアップファイルの作成が完了しました"
#: accounts/automations/backup_account/handlers.py:203
#: accounts/automations/backup_account/handlers.py:177
msgid "Start sending backup emails"
msgstr "バックアップメールの送信を開始する"
#: accounts/automations/backup_account/handlers.py:204
msgid "Encrypting files using encryption password"
msgstr "暗号化パスワードを使用してファイルを暗号化中"
#: accounts/automations/backup_account/handlers.py:213
#: accounts/automations/backup_account/handlers.py:214
msgid "The backup file will be sent to"
msgstr "バックアップファイルは送信されます"
#: accounts/automations/backup_account/handlers.py:236
#: accounts/automations/backup_account/handlers.py:237
msgid "The backup task has no assigned sftp server"
msgstr "このバックアップタスクはsftpサーバーに割り当てられていません"
#: accounts/automations/backup_account/handlers.py:257
#: accounts/automations/backup_account/handlers.py:258
msgid "The backup task has no assigned recipient"
msgstr "バックアップタスクは受取人を指定していません"
#: accounts/automations/backup_account/handlers.py:280
#: accounts/automations/backup_account/handlers.py:281
msgid "Plan start"
msgstr "計画開始"
@ -86,11 +90,11 @@ msgstr "アカウントのバックアップ計画を実行中です"
#: accounts/automations/backup_account/manager.py:24
#: accounts/automations/change_secret/manager.py:93
#: accounts/automations/push_account/manager.py:57
#: accounts/automations/push_account/manager.py:59
msgid "Plan execution end"
msgstr "計画実行終了"
#: accounts/automations/base/manager.py:106
#: accounts/automations/base/manager.py:109
msgid "No pending accounts found"
msgstr "処理待ちのアカウントが見つかりません"
@ -99,6 +103,12 @@ msgstr "処理待ちのアカウントが見つかりません"
msgid "Success: %s, Failed: %s, Total: %s"
msgstr "成功: %s、失敗: %s、合計: %s"
#: accounts/automations/push_account/manager.py:31
#, fuzzy
#| msgid "The {} cannot be empty"
msgid "Secret cannot be empty"
msgstr "{} 空にしてはならない"
#: accounts/automations/verify_gateway_account/manager.py:18
msgid ">>> Start executing the task to test gateway account connectivity"
msgstr ">>> ゲートウェイ接続のテストタスクを開始する"
@ -425,13 +435,13 @@ msgstr "ユーザー %s がパスワードを閲覧/導き出しました"
#: accounts/serializers/automations/gather_account.py:47
#: accounts/templates/accounts/asset_account_change_info.html:7
#: accounts/templates/accounts/change_secret_failed_info.html:11
#: accounts/templates/accounts/change_secret_report.html:70
#: accounts/templates/accounts/change_secret_report.html:102
#: accounts/templates/accounts/check_account_report.html:78
#: accounts/templates/accounts/change_secret_report.html:72
#: accounts/templates/accounts/change_secret_report.html:104
#: accounts/templates/accounts/check_account_report.html:79
#: accounts/templates/accounts/gather_account_report.html:71
#: accounts/templates/accounts/gather_account_report.html:103
#: accounts/templates/accounts/push_account_report.html:70
#: accounts/templates/accounts/push_account_report.html:102
#: accounts/templates/accounts/push_account_report.html:72
#: accounts/templates/accounts/push_account_report.html:104
#: acls/serializers/base.py:130 assets/models/asset/common.py:102
#: assets/models/asset/common.py:366 assets/models/cmd_filter.py:36
#: audits/models.py:59 audits/models.py:312 audits/serializers.py:228
@ -509,7 +519,7 @@ msgstr "変更状態"
#: accounts/models/account.py:85
#: accounts/models/automations/check_account.py:67
#: accounts/serializers/account/service.py:10
#: accounts/serializers/account/service.py:11
#: accounts/serializers/automations/change_secret.py:115
#: accounts/serializers/automations/change_secret.py:146
#: accounts/templates/accounts/change_secret_failed_info.html:12
@ -553,7 +563,7 @@ msgstr "アカウントを削除できます"
#: accounts/models/application.py:16
#: accounts/models/automations/check_account.py:119 accounts/models/base.py:63
#: accounts/serializers/account/service.py:26
#: accounts/serializers/account/service.py:27
#: 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:100
@ -721,7 +731,7 @@ msgstr "SSHキープッシュ方式"
msgid "Check connection after change"
msgstr "変更後に接続を確認"
#: accounts/models/automations/change_secret.py:16
#: accounts/models/automations/change_secret.py:17
#: accounts/models/automations/check_account.py:19
#: accounts/models/automations/gather_account.py:92
#: accounts/serializers/automations/change_secret.py:59
@ -730,22 +740,22 @@ msgstr "変更後に接続を確認"
msgid "Recipient"
msgstr "受信者"
#: accounts/models/automations/change_secret.py:23
#: accounts/models/automations/change_secret.py:24
msgid "Change secret automation"
msgstr "自動暗号化"
#: accounts/models/automations/change_secret.py:46
#: assets/models/automations/base.py:141 ops/models/base.py:56
#: accounts/models/automations/change_secret.py:47
#: assets/models/automations/base.py:144 ops/models/base.py:56
#: ops/models/celery.py:90 ops/models/job.py:240
#: terminal/models/applet/host.py:142
msgid "Date finished"
msgstr "終了日"
#: accounts/models/automations/change_secret.py:48
#: accounts/models/automations/change_secret.py:49
#: accounts/models/automations/check_account.py:75
#: accounts/models/automations/gather_account.py:25
#: accounts/serializers/automations/check_account.py:39
#: assets/models/automations/base.py:133
#: assets/models/automations/base.py:136
#: assets/serializers/automations/base.py:45 audits/models.py:209
#: audits/serializers.py:78 ops/models/base.py:49 ops/models/job.py:231
#: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140
@ -759,7 +769,7 @@ msgstr "終了日"
msgid "Status"
msgstr "ステータス"
#: accounts/models/automations/change_secret.py:50
#: accounts/models/automations/change_secret.py:51
#: accounts/serializers/account/account.py:276
#: accounts/templates/accounts/change_secret_failed_info.html:13
#: assets/const/automation.py:9
@ -770,19 +780,19 @@ msgstr "ステータス"
msgid "Error"
msgstr "間違い"
#: accounts/models/automations/change_secret.py:66
#: accounts/models/automations/change_secret.py:73
msgid "Old secret"
msgstr "オリジナルキー"
#: accounts/models/automations/change_secret.py:67
#: accounts/models/automations/change_secret.py:74
msgid "New secret"
msgstr "新しい鍵"
#: accounts/models/automations/change_secret.py:68
#: accounts/models/automations/change_secret.py:75
msgid "Ignore fail"
msgstr "失敗を無視"
#: accounts/models/automations/change_secret.py:71
#: accounts/models/automations/change_secret.py:78
msgid "Change secret record"
msgstr "パスワード レコードの変更"
@ -836,8 +846,8 @@ msgid "Long time no change"
msgstr "長期間パスワードが変更されていません"
#: accounts/models/automations/check_account.py:52
#: accounts/templates/accounts/check_account_report.html:69
#: accounts/templates/accounts/check_account_report.html:89
#: accounts/templates/accounts/check_account_report.html:70
#: accounts/templates/accounts/check_account_report.html:90
msgid "Weak password"
msgstr "弱いパスワード"
@ -864,13 +874,13 @@ msgstr "その他"
#: accounts/models/automations/check_account.py:64
#: accounts/models/automations/gather_account.py:17 accounts/models/base.py:64
#: accounts/serializers/account/virtual.py:21
#: accounts/templates/accounts/change_secret_report.html:71
#: accounts/templates/accounts/change_secret_report.html:103
#: accounts/templates/accounts/check_account_report.html:79
#: accounts/templates/accounts/change_secret_report.html:73
#: accounts/templates/accounts/change_secret_report.html:105
#: accounts/templates/accounts/check_account_report.html:80
#: accounts/templates/accounts/gather_account_report.html:72
#: accounts/templates/accounts/gather_account_report.html:104
#: accounts/templates/accounts/push_account_report.html:71
#: accounts/templates/accounts/push_account_report.html:103
#: accounts/templates/accounts/push_account_report.html:73
#: accounts/templates/accounts/push_account_report.html:105
#: acls/serializers/base.py:19 acls/serializers/base.py:50 audits/models.py:189
#: authentication/forms.py:21 authentication/forms.py:23
#: authentication/models/temp_token.py:9
@ -1294,12 +1304,12 @@ msgstr ""
"ヒント: 認証にユーザー名が必要ない場合は、`null`を入力します。ADアカウントの"
"場合は、`username@domain`のようになります。"
#: accounts/serializers/account/service.py:12
#: accounts/serializers/account/service.py:13
#: authentication/serializers/token.py:22
msgid "Access IP"
msgstr "Access IP"
#: accounts/serializers/account/service.py:25
#: accounts/serializers/account/service.py:26
#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25
#: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37
@ -1314,9 +1324,9 @@ msgstr "Access IP"
msgid "Comment"
msgstr "コメント"
#: accounts/serializers/account/service.py:27
#: accounts/templates/accounts/backup_account_report.html:38
#: accounts/templates/accounts/check_account_report.html:38
#: accounts/serializers/account/service.py:28
#: accounts/templates/accounts/backup_account_report.html:39
#: accounts/templates/accounts/check_account_report.html:39
#: assets/serializers/asset/common.py:151
msgid "Accounts amount"
msgstr "アカウント数"
@ -1412,7 +1422,7 @@ msgid "Name already exists"
msgstr "名前は既に存在します。"
#: accounts/serializers/automations/base.py:31
#: assets/models/automations/base.py:144
#: assets/models/automations/base.py:147
#: assets/serializers/automations/base.py:43
msgid "Automation snapshot"
msgstr "自動スナップショット"
@ -1441,8 +1451,8 @@ msgid "* Please enter the correct password length"
msgstr "* 正しいパスワードの長さを入力してください"
#: accounts/serializers/automations/change_secret.py:90
msgid "* Password length range 6-30 bits"
msgstr "* パスワードの長さ範囲は6-30文字です"
msgid "* Password length range 8-36 bits"
msgstr "* パスワードの長さ範囲は8-36文字です"
#: accounts/serializers/automations/change_secret.py:112
#: accounts/serializers/automations/change_secret.py:147
@ -1451,7 +1461,7 @@ msgid "Is success"
msgstr "成功は"
#: accounts/serializers/automations/change_secret.py:119
#: assets/models/automations/base.py:160
#: assets/models/automations/base.py:163
msgid "Automation task execution"
msgstr "自動タスク実行履歴"
@ -1625,29 +1635,29 @@ msgstr "アカウント接続のテスト"
msgid "Deleted account"
msgstr "アカウントの削除"
#: accounts/templates/accounts/backup_account_report.html:13
#: accounts/templates/accounts/backup_account_report.html:14
msgid ""
"The following is a summary of account backup tasks, please review and handle "
"them"
msgstr ""
"以下はアカウントバックアップタスクの概要です。ご確認と処理をお願いします。"
#: accounts/templates/accounts/backup_account_report.html:22
#: accounts/templates/accounts/backup_account_report.html:23
#: accounts/templates/accounts/change_secret_failed_info.html:3
#: accounts/templates/accounts/change_secret_report.html:22
#: accounts/templates/accounts/check_account_report.html:22
#: accounts/templates/accounts/change_secret_report.html:24
#: accounts/templates/accounts/check_account_report.html:23
#: accounts/templates/accounts/gather_account_report.html:23
#: accounts/templates/accounts/push_account_report.html:22
#: accounts/templates/accounts/push_account_report.html:24
#: terminal/serializers/task.py:10
msgid "Task name"
msgstr "タスク名"
#: accounts/templates/accounts/backup_account_report.html:26
#: accounts/templates/accounts/change_secret_report.html:26
#: accounts/templates/accounts/check_account_report.html:26
#: accounts/templates/accounts/backup_account_report.html:27
#: accounts/templates/accounts/change_secret_report.html:28
#: accounts/templates/accounts/check_account_report.html:27
#: accounts/templates/accounts/gather_account_report.html:27
#: accounts/templates/accounts/push_account_report.html:26
#: assets/models/automations/base.py:139 audits/models.py:66
#: accounts/templates/accounts/push_account_report.html:28
#: assets/models/automations/base.py:142 audits/models.py:66
#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:239
#: ops/templates/ops/celery_task_log.html:101
#: perms/models/asset_permission.py:78 settings/serializers/feature.py:27
@ -1658,26 +1668,26 @@ msgstr "タスク名"
msgid "Date start"
msgstr "開始日"
#: accounts/templates/accounts/backup_account_report.html:30
#: accounts/templates/accounts/change_secret_report.html:30
#: accounts/templates/accounts/check_account_report.html:30
#: accounts/templates/accounts/backup_account_report.html:31
#: accounts/templates/accounts/change_secret_report.html:32
#: accounts/templates/accounts/check_account_report.html:31
#: accounts/templates/accounts/gather_account_report.html:31
#: accounts/templates/accounts/push_account_report.html:30
#: accounts/templates/accounts/push_account_report.html:32
#: settings/serializers/feature.py:28
#: settings/templates/ldap/_msg_import_ldap_user.html:6
#: terminal/models/session/session.py:48
msgid "Date end"
msgstr "終了日"
#: accounts/templates/accounts/backup_account_report.html:34
#: accounts/templates/accounts/change_secret_report.html:34
#: accounts/templates/accounts/check_account_report.html:34
#: accounts/templates/accounts/backup_account_report.html:35
#: accounts/templates/accounts/change_secret_report.html:36
#: accounts/templates/accounts/check_account_report.html:35
#: accounts/templates/accounts/gather_account_report.html:35
#: accounts/templates/accounts/push_account_report.html:34
#: accounts/templates/accounts/push_account_report.html:36
msgid "Time using"
msgstr "時間を要する"
#: accounts/templates/accounts/backup_account_report.html:42
#: accounts/templates/accounts/backup_account_report.html:43
msgid "Type count"
msgstr "タイプ数"
@ -1697,7 +1707,7 @@ msgstr ""
"こんにちは! アセットの変更またはアカウントのプッシュが失敗する状況は次のとお"
"りです。 時間内に確認して対処してください。"
#: accounts/templates/accounts/change_secret_report.html:13
#: accounts/templates/accounts/change_secret_report.html:15
msgid ""
"The following is a summary of account change secret tasks, please read and "
"process"
@ -1705,66 +1715,66 @@ msgstr ""
"以下はアカウント変更の秘密の任務の概要です。お読みいただき、処理してくださ"
"い。"
#: accounts/templates/accounts/change_secret_report.html:38
#: accounts/templates/accounts/change_secret_report.html:40
#: accounts/templates/accounts/gather_account_report.html:39
#: accounts/templates/accounts/push_account_report.html:38
#: accounts/templates/accounts/push_account_report.html:40
#: assets/serializers/domain.py:24 assets/serializers/platform.py:182
#: orgs/serializers.py:13 perms/serializers/permission.py:50
msgid "Assets amount"
msgstr "資産数量"
#: accounts/templates/accounts/change_secret_report.html:42
#: accounts/templates/accounts/check_account_report.html:50
#: accounts/templates/accounts/change_secret_report.html:44
#: accounts/templates/accounts/check_account_report.html:51
#: accounts/templates/accounts/gather_account_report.html:43
#: accounts/templates/accounts/push_account_report.html:42
#: accounts/templates/accounts/push_account_report.html:44
msgid "Asset success count"
msgstr "成功した資産数"
#: accounts/templates/accounts/change_secret_report.html:46
#: accounts/templates/accounts/check_account_report.html:54
#: accounts/templates/accounts/change_secret_report.html:48
#: accounts/templates/accounts/check_account_report.html:55
#: accounts/templates/accounts/gather_account_report.html:47
#: accounts/templates/accounts/push_account_report.html:46
#: accounts/templates/accounts/push_account_report.html:48
msgid "Asset failed count"
msgstr "失敗した資産数"
#: accounts/templates/accounts/change_secret_report.html:50
#: accounts/templates/accounts/check_account_report.html:58
#: accounts/templates/accounts/change_secret_report.html:52
#: accounts/templates/accounts/check_account_report.html:59
#: accounts/templates/accounts/gather_account_report.html:51
#: accounts/templates/accounts/push_account_report.html:50
#: accounts/templates/accounts/push_account_report.html:52
msgid "Asset not support count"
msgstr "サポートされていない資産数"
#: accounts/templates/accounts/change_secret_report.html:61
#: accounts/templates/accounts/push_account_report.html:61
#: accounts/templates/accounts/change_secret_report.html:63
#: accounts/templates/accounts/push_account_report.html:63
msgid "Success accounts"
msgstr "成功したアカウント"
#: accounts/templates/accounts/change_secret_report.html:69
#: accounts/templates/accounts/change_secret_report.html:101
#: accounts/templates/accounts/check_account_report.html:77
#: accounts/templates/accounts/change_secret_report.html:71
#: accounts/templates/accounts/change_secret_report.html:103
#: accounts/templates/accounts/check_account_report.html:78
#: accounts/templates/accounts/gather_account_report.html:70
#: accounts/templates/accounts/gather_account_report.html:102
#: accounts/templates/accounts/push_account_report.html:69
#: accounts/templates/accounts/push_account_report.html:101
#: accounts/templates/accounts/push_account_report.html:71
#: accounts/templates/accounts/push_account_report.html:103
#: audits/handler.py:128
msgid "No"
msgstr "否"
#: accounts/templates/accounts/change_secret_report.html:85
#: accounts/templates/accounts/change_secret_report.html:117
#: accounts/templates/accounts/change_secret_report.html:87
#: accounts/templates/accounts/change_secret_report.html:119
#: accounts/templates/accounts/gather_account_report.html:86
#: accounts/templates/accounts/gather_account_report.html:118
#: accounts/templates/accounts/push_account_report.html:85
#: accounts/templates/accounts/push_account_report.html:117
#: accounts/templates/accounts/push_account_report.html:87
#: accounts/templates/accounts/push_account_report.html:119
msgid "No new accounts found"
msgstr "新しいアカウントが見つかりません"
#: accounts/templates/accounts/change_secret_report.html:92
#: accounts/templates/accounts/push_account_report.html:92
#: accounts/templates/accounts/change_secret_report.html:94
#: accounts/templates/accounts/push_account_report.html:94
msgid "Failed accounts"
msgstr "失敗したアカウント"
#: accounts/templates/accounts/check_account_report.html:13
#: accounts/templates/accounts/check_account_report.html:14
#: accounts/templates/accounts/gather_account_report.html:14
msgid ""
"The following is a summary of the account check tasks. Please review and "
@ -1772,21 +1782,21 @@ msgid ""
msgstr ""
"以下はアカウントチェックタスクのまとめですので、ご確認の上、処理してください"
#: accounts/templates/accounts/check_account_report.html:42
#: accounts/templates/accounts/check_account_report.html:43
msgid "Ok count"
msgstr "成功した数"
#: accounts/templates/accounts/check_account_report.html:46
#: accounts/templates/accounts/check_account_report.html:47
msgid "No password count"
msgstr "パスワードなしの数"
#: accounts/templates/accounts/check_account_report.html:80
#: assets/models/automations/base.py:153 ops/models/base.py:51
#: accounts/templates/accounts/check_account_report.html:81
#: assets/models/automations/base.py:156 ops/models/base.py:51
#: ops/models/job.py:235 xpack/plugins/cloud/models.py:225
msgid "Result"
msgstr "結果"
#: accounts/templates/accounts/check_account_report.html:95
#: accounts/templates/accounts/check_account_report.html:96
msgid "No weak password"
msgstr "弱いパスワードなし"
@ -1798,7 +1808,7 @@ msgstr "新たに発見されたアカウント"
msgid "Lost accounts"
msgstr "失われたアカウント"
#: accounts/templates/accounts/push_account_report.html:13
#: accounts/templates/accounts/push_account_report.html:15
msgid ""
"The following is a summary of account push tasks, please read and process"
msgstr ""
@ -2112,28 +2122,28 @@ msgstr "同じレベルのノード名を同じにすることはできません
msgid "App Assets"
msgstr "アプリ資産"
#: assets/automations/base/manager.py:332
#: assets/automations/base/manager.py:347
msgid " - Platform {} ansible disabled"
msgstr " - プラットフォーム {} ansible 無効"
#: assets/automations/base/manager.py:514
#: assets/automations/base/manager.py:530
msgid ">>> Task preparation phase"
msgstr "タスク準備段階"
#: assets/automations/base/manager.py:518
#: assets/automations/base/manager.py:534
#, python-brace-format
msgid ">>> Executing tasks in batches, total {runner_count}"
msgstr ">>> バッチでタスクを実行、合計 {runner_count}"
#: assets/automations/base/manager.py:523
#: assets/automations/base/manager.py:539
msgid ">>> Start executing tasks"
msgstr ">>> タスクの実行を開始"
#: assets/automations/base/manager.py:525
#: assets/automations/base/manager.py:541
msgid ">>> No tasks need to be executed"
msgstr ">>> 実行する必要があるタスクはありません"
#: assets/automations/base/manager.py:529
#: assets/automations/base/manager.py:545
#, python-brace-format
msgid ">>> Begin executing batch {index} of tasks"
msgstr ">>> 第 {index} バッチのタスクの実行を開始"
@ -2568,27 +2578,33 @@ msgstr "ノード"
msgid "Parameters"
msgstr "パラメータ"
#: assets/models/automations/base.py:41 assets/models/automations/base.py:128
#: assets/models/automations/base.py:31
#, fuzzy
#| msgid "Last execution"
msgid "Last execution date"
msgstr "最後の実行"
#: assets/models/automations/base.py:44 assets/models/automations/base.py:131
msgid "Automation task"
msgstr "自動化されたタスク"
#: assets/models/automations/base.py:119
#: assets/models/automations/base.py:122
msgid "Asset automation task"
msgstr "アセットの自動化タスク"
#: assets/models/automations/base.py:136 assets/models/cmd_filter.py:41
#: assets/models/automations/base.py:139 assets/models/cmd_filter.py:41
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:238
#: users/models/user/__init__.py:322
msgid "Date created"
msgstr "作成された日付"
#: assets/models/automations/base.py:150
#: assets/models/automations/base.py:153
#: assets/serializers/automations/base.py:44 xpack/plugins/cloud/models.py:242
#: xpack/plugins/cloud/serializers/task.py:249
msgid "Trigger mode"
msgstr "トリガーモード"
#: assets/models/automations/base.py:152 audits/serializers.py:39
#: assets/models/automations/base.py:155 audits/serializers.py:39
#: ops/models/base.py:52 ops/models/job.py:236
#: xpack/plugins/cloud/manager.py:103
msgid "Summary"
@ -7180,7 +7196,9 @@ msgid "User first login update profile done redirect to it"
msgstr "ユーザーの最初のログイン更新プロファイルがリダイレクトされました"
#: settings/serializers/basic.py:22
msgid "Global organization"
#, fuzzy
#| msgid "Global organization"
msgid "Global org display"
msgstr "グローバル組織名"
#: settings/serializers/basic.py:23

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-28 18:37+0800\n"
"POT-Creation-Date: 2025-03-07 15:03+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -24,7 +24,7 @@ msgstr ""
msgid "Account already exists"
msgstr "Conta já existente"
#: accounts/api/account/application.py:77
#: accounts/api/account/application.py:78
#: authentication/api/connection_token.py:449
msgid "Account not found"
msgstr "Conta não encontrada"
@ -48,8 +48,8 @@ msgstr "Gerar arquivo de informações de backup relacionado ao ativo"
#: accounts/automations/backup_account/handlers.py:168
#: accounts/automations/backup_account/manager.py:26
#: accounts/automations/change_secret/manager.py:95
#: accounts/automations/push_account/manager.py:59
#: assets/models/automations/base.py:142 ops/serializers/job.py:71
#: accounts/automations/push_account/manager.py:61
#: assets/models/automations/base.py:145 ops/serializers/job.py:71
#: ops/serializers/job.py:95
#: settings/templates/ldap/_msg_import_ldap_user.html:7
#: terminal/serializers/session.py:49
@ -60,23 +60,27 @@ msgstr "Duração"
msgid "Backup file creation completed"
msgstr "Criação de arquivo de backup concluída"
#: accounts/automations/backup_account/handlers.py:203
#: accounts/automations/backup_account/handlers.py:177
msgid "Start sending backup emails"
msgstr "Comece a enviar e-mails de backup"
#: accounts/automations/backup_account/handlers.py:204
msgid "Encrypting files using encryption password"
msgstr "Usando senha criptografada para criptografar o arquivo"
#: accounts/automations/backup_account/handlers.py:213
#: accounts/automations/backup_account/handlers.py:214
msgid "The backup file will be sent to"
msgstr "O arquivo de backup será enviado para"
#: accounts/automations/backup_account/handlers.py:236
#: accounts/automations/backup_account/handlers.py:237
msgid "The backup task has no assigned sftp server"
msgstr "A tarefa de backup não foi atribuída a um servidor sftp"
#: accounts/automations/backup_account/handlers.py:257
#: accounts/automations/backup_account/handlers.py:258
msgid "The backup task has no assigned recipient"
msgstr "A tarefa de backup não possui destinatário especificado"
#: accounts/automations/backup_account/handlers.py:280
#: accounts/automations/backup_account/handlers.py:281
msgid "Plan start"
msgstr "Tarefa iniciada"
@ -86,11 +90,11 @@ msgstr "Plano de backup de contas está em execução"
#: accounts/automations/backup_account/manager.py:24
#: accounts/automations/change_secret/manager.py:93
#: accounts/automations/push_account/manager.py:57
#: accounts/automations/push_account/manager.py:59
msgid "Plan execution end"
msgstr "Execução do plano concluída"
#: accounts/automations/base/manager.py:106
#: accounts/automations/base/manager.py:109
msgid "No pending accounts found"
msgstr "Conta pendente não encontrada"
@ -99,6 +103,12 @@ msgstr "Conta pendente não encontrada"
msgid "Success: %s, Failed: %s, Total: %s"
msgstr "Sucesso: %s, Falha: %s, Total: %s"
#: accounts/automations/push_account/manager.py:31
#, fuzzy
#| msgid "The {} cannot be empty"
msgid "Secret cannot be empty"
msgstr "{} não pode estar vazio"
#: accounts/automations/verify_gateway_account/manager.py:18
msgid ">>> Start executing the task to test gateway account connectivity"
msgstr ">>> Iniciando teste de conectividade da conta do gateway"
@ -426,13 +436,13 @@ msgstr "Usuário %s visualizou/exportou a senha"
#: accounts/serializers/automations/gather_account.py:47
#: accounts/templates/accounts/asset_account_change_info.html:7
#: accounts/templates/accounts/change_secret_failed_info.html:11
#: accounts/templates/accounts/change_secret_report.html:70
#: accounts/templates/accounts/change_secret_report.html:102
#: accounts/templates/accounts/check_account_report.html:78
#: accounts/templates/accounts/change_secret_report.html:72
#: accounts/templates/accounts/change_secret_report.html:104
#: accounts/templates/accounts/check_account_report.html:79
#: accounts/templates/accounts/gather_account_report.html:71
#: accounts/templates/accounts/gather_account_report.html:103
#: accounts/templates/accounts/push_account_report.html:70
#: accounts/templates/accounts/push_account_report.html:102
#: accounts/templates/accounts/push_account_report.html:72
#: accounts/templates/accounts/push_account_report.html:104
#: acls/serializers/base.py:130 assets/models/asset/common.py:102
#: assets/models/asset/common.py:366 assets/models/cmd_filter.py:36
#: audits/models.py:59 audits/models.py:312 audits/serializers.py:228
@ -495,7 +505,7 @@ msgstr "Status da Alteração de Senha"
#: accounts/models/account.py:85
#: accounts/models/automations/check_account.py:67
#: accounts/serializers/account/service.py:10
#: accounts/serializers/account/service.py:11
#: accounts/serializers/automations/change_secret.py:115
#: accounts/serializers/automations/change_secret.py:146
#: accounts/templates/accounts/change_secret_failed_info.html:12
@ -539,7 +549,7 @@ msgstr "É possível remover a conta"
#: accounts/models/application.py:16
#: accounts/models/automations/check_account.py:119 accounts/models/base.py:63
#: accounts/serializers/account/service.py:26
#: accounts/serializers/account/service.py:27
#: 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:100
@ -707,7 +717,7 @@ msgstr "Método de lançamento da chave SSH"
msgid "Check connection after change"
msgstr "Verifique a conexão após a alteração"
#: accounts/models/automations/change_secret.py:16
#: accounts/models/automations/change_secret.py:17
#: accounts/models/automations/check_account.py:19
#: accounts/models/automations/gather_account.py:92
#: accounts/serializers/automations/change_secret.py:59
@ -716,22 +726,22 @@ msgstr "Verifique a conexão após a alteração"
msgid "Recipient"
msgstr "Destinatário"
#: accounts/models/automations/change_secret.py:23
#: accounts/models/automations/change_secret.py:24
msgid "Change secret automation"
msgstr "Automação da alteração de senha"
#: accounts/models/automations/change_secret.py:46
#: assets/models/automations/base.py:141 ops/models/base.py:56
#: accounts/models/automations/change_secret.py:47
#: assets/models/automations/base.py:144 ops/models/base.py:56
#: ops/models/celery.py:90 ops/models/job.py:240
#: terminal/models/applet/host.py:142
msgid "Date finished"
msgstr "Data de fim"
#: accounts/models/automations/change_secret.py:48
#: accounts/models/automations/change_secret.py:49
#: accounts/models/automations/check_account.py:75
#: accounts/models/automations/gather_account.py:25
#: accounts/serializers/automations/check_account.py:39
#: assets/models/automations/base.py:133
#: assets/models/automations/base.py:136
#: assets/serializers/automations/base.py:45 audits/models.py:209
#: audits/serializers.py:78 ops/models/base.py:49 ops/models/job.py:231
#: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140
@ -745,7 +755,7 @@ msgstr "Data de fim"
msgid "Status"
msgstr "Status"
#: accounts/models/automations/change_secret.py:50
#: accounts/models/automations/change_secret.py:51
#: accounts/serializers/account/account.py:276
#: accounts/templates/accounts/change_secret_failed_info.html:13
#: assets/const/automation.py:9
@ -756,19 +766,19 @@ msgstr "Status"
msgid "Error"
msgstr "Erro"
#: accounts/models/automations/change_secret.py:66
#: accounts/models/automations/change_secret.py:73
msgid "Old secret"
msgstr "Senha antiga"
#: accounts/models/automations/change_secret.py:67
#: accounts/models/automations/change_secret.py:74
msgid "New secret"
msgstr "Nova senha"
#: accounts/models/automations/change_secret.py:68
#: accounts/models/automations/change_secret.py:75
msgid "Ignore fail"
msgstr "Ignorar falhas"
#: accounts/models/automations/change_secret.py:71
#: accounts/models/automations/change_secret.py:78
msgid "Change secret record"
msgstr "Registro de alteração de senha"
@ -837,8 +847,8 @@ msgstr ""
"- Remover remoto"
#: accounts/models/automations/check_account.py:52
#: accounts/templates/accounts/check_account_report.html:69
#: accounts/templates/accounts/check_account_report.html:89
#: accounts/templates/accounts/check_account_report.html:70
#: accounts/templates/accounts/check_account_report.html:90
msgid "Weak password"
msgstr "Senha fraca"
@ -865,13 +875,13 @@ msgstr "Outro"
#: accounts/models/automations/check_account.py:64
#: accounts/models/automations/gather_account.py:17 accounts/models/base.py:64
#: accounts/serializers/account/virtual.py:21
#: accounts/templates/accounts/change_secret_report.html:71
#: accounts/templates/accounts/change_secret_report.html:103
#: accounts/templates/accounts/check_account_report.html:79
#: accounts/templates/accounts/change_secret_report.html:73
#: accounts/templates/accounts/change_secret_report.html:105
#: accounts/templates/accounts/check_account_report.html:80
#: accounts/templates/accounts/gather_account_report.html:72
#: accounts/templates/accounts/gather_account_report.html:104
#: accounts/templates/accounts/push_account_report.html:71
#: accounts/templates/accounts/push_account_report.html:103
#: accounts/templates/accounts/push_account_report.html:73
#: accounts/templates/accounts/push_account_report.html:105
#: acls/serializers/base.py:19 acls/serializers/base.py:50 audits/models.py:189
#: authentication/forms.py:21 authentication/forms.py:23
#: authentication/models/temp_token.py:9
@ -1299,12 +1309,12 @@ msgstr ""
"Aviso: Se a identificação não necessitar de um nome de usuário, insira "
"'null'. Se for uma conta AD, o formato é username@domain."
#: accounts/serializers/account/service.py:12
#: accounts/serializers/account/service.py:13
#: authentication/serializers/token.py:22
msgid "Access IP"
msgstr "Lista branca de IP"
#: accounts/serializers/account/service.py:25
#: accounts/serializers/account/service.py:26
#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25
#: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37
@ -1319,9 +1329,9 @@ msgstr "Lista branca de IP"
msgid "Comment"
msgstr "Observação"
#: accounts/serializers/account/service.py:27
#: accounts/templates/accounts/backup_account_report.html:38
#: accounts/templates/accounts/check_account_report.html:38
#: accounts/serializers/account/service.py:28
#: accounts/templates/accounts/backup_account_report.html:39
#: accounts/templates/accounts/check_account_report.html:39
#: assets/serializers/asset/common.py:151
msgid "Accounts amount"
msgstr "Quantidade de contas"
@ -1424,7 +1434,7 @@ msgid "Name already exists"
msgstr "O nome já existe"
#: accounts/serializers/automations/base.py:31
#: assets/models/automations/base.py:144
#: assets/models/automations/base.py:147
#: assets/serializers/automations/base.py:43
msgid "Automation snapshot"
msgstr "Snapshot automático"
@ -1454,8 +1464,8 @@ msgid "* Please enter the correct password length"
msgstr "* Por favor, insira um comprimento de senha correto"
#: accounts/serializers/automations/change_secret.py:90
msgid "* Password length range 6-30 bits"
msgstr "* O comprimento da senha deve estar entre 6 e 30 caracteres"
msgid "* Password length range 8-36 bits"
msgstr "* O comprimento da senha deve estar entre 8 e 36 caracteres"
#: accounts/serializers/automations/change_secret.py:112
#: accounts/serializers/automations/change_secret.py:147
@ -1464,7 +1474,7 @@ msgid "Is success"
msgstr "Foi Bem-sucedido?"
#: accounts/serializers/automations/change_secret.py:119
#: assets/models/automations/base.py:160
#: assets/models/automations/base.py:163
msgid "Automation task execution"
msgstr "Histórico de execução de tarefas automáticas"
@ -1644,7 +1654,7 @@ msgstr "Testar a conectividade da conta"
msgid "Deleted account"
msgstr "Excluir conta"
#: accounts/templates/accounts/backup_account_report.html:13
#: accounts/templates/accounts/backup_account_report.html:14
msgid ""
"The following is a summary of account backup tasks, please review and handle "
"them"
@ -1652,22 +1662,22 @@ msgstr ""
"Abaixo estão os resumos das tarefas de backup de contas, por favor, revise e "
"trate."
#: accounts/templates/accounts/backup_account_report.html:22
#: accounts/templates/accounts/backup_account_report.html:23
#: accounts/templates/accounts/change_secret_failed_info.html:3
#: accounts/templates/accounts/change_secret_report.html:22
#: accounts/templates/accounts/check_account_report.html:22
#: accounts/templates/accounts/change_secret_report.html:24
#: accounts/templates/accounts/check_account_report.html:23
#: accounts/templates/accounts/gather_account_report.html:23
#: accounts/templates/accounts/push_account_report.html:22
#: accounts/templates/accounts/push_account_report.html:24
#: terminal/serializers/task.py:10
msgid "Task name"
msgstr "Nome da tarefa"
#: accounts/templates/accounts/backup_account_report.html:26
#: accounts/templates/accounts/change_secret_report.html:26
#: accounts/templates/accounts/check_account_report.html:26
#: accounts/templates/accounts/backup_account_report.html:27
#: accounts/templates/accounts/change_secret_report.html:28
#: accounts/templates/accounts/check_account_report.html:27
#: accounts/templates/accounts/gather_account_report.html:27
#: accounts/templates/accounts/push_account_report.html:26
#: assets/models/automations/base.py:139 audits/models.py:66
#: accounts/templates/accounts/push_account_report.html:28
#: assets/models/automations/base.py:142 audits/models.py:66
#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:239
#: ops/templates/ops/celery_task_log.html:101
#: perms/models/asset_permission.py:78 settings/serializers/feature.py:27
@ -1678,26 +1688,26 @@ msgstr "Nome da tarefa"
msgid "Date start"
msgstr "Data de Início"
#: accounts/templates/accounts/backup_account_report.html:30
#: accounts/templates/accounts/change_secret_report.html:30
#: accounts/templates/accounts/check_account_report.html:30
#: accounts/templates/accounts/backup_account_report.html:31
#: accounts/templates/accounts/change_secret_report.html:32
#: accounts/templates/accounts/check_account_report.html:31
#: accounts/templates/accounts/gather_account_report.html:31
#: accounts/templates/accounts/push_account_report.html:30
#: accounts/templates/accounts/push_account_report.html:32
#: settings/serializers/feature.py:28
#: settings/templates/ldap/_msg_import_ldap_user.html:6
#: terminal/models/session/session.py:48
msgid "Date end"
msgstr "Data de Encerramento"
#: accounts/templates/accounts/backup_account_report.html:34
#: accounts/templates/accounts/change_secret_report.html:34
#: accounts/templates/accounts/check_account_report.html:34
#: accounts/templates/accounts/backup_account_report.html:35
#: accounts/templates/accounts/change_secret_report.html:36
#: accounts/templates/accounts/check_account_report.html:35
#: accounts/templates/accounts/gather_account_report.html:35
#: accounts/templates/accounts/push_account_report.html:34
#: accounts/templates/accounts/push_account_report.html:36
msgid "Time using"
msgstr "Duração."
#: accounts/templates/accounts/backup_account_report.html:42
#: accounts/templates/accounts/backup_account_report.html:43
msgid "Type count"
msgstr "Número de tipos"
@ -1717,7 +1727,7 @@ msgstr ""
"Olá! Aqui estão os casos de falha ao alterar ou enviar a senha do ativo. Por "
"favor, verifique e corrija o mais rápido possível."
#: accounts/templates/accounts/change_secret_report.html:13
#: accounts/templates/accounts/change_secret_report.html:15
msgid ""
"The following is a summary of account change secret tasks, please read and "
"process"
@ -1725,66 +1735,66 @@ msgstr ""
"Aqui está um resumo da missão secreta de alteração de conta, por favor, leia "
"e processe."
#: accounts/templates/accounts/change_secret_report.html:38
#: accounts/templates/accounts/change_secret_report.html:40
#: accounts/templates/accounts/gather_account_report.html:39
#: accounts/templates/accounts/push_account_report.html:38
#: accounts/templates/accounts/push_account_report.html:40
#: assets/serializers/domain.py:24 assets/serializers/platform.py:182
#: orgs/serializers.py:13 perms/serializers/permission.py:50
msgid "Assets amount"
msgstr "Número de ativos"
#: accounts/templates/accounts/change_secret_report.html:42
#: accounts/templates/accounts/check_account_report.html:50
#: accounts/templates/accounts/change_secret_report.html:44
#: accounts/templates/accounts/check_account_report.html:51
#: accounts/templates/accounts/gather_account_report.html:43
#: accounts/templates/accounts/push_account_report.html:42
#: accounts/templates/accounts/push_account_report.html:44
msgid "Asset success count"
msgstr "Número de ativos bem-sucedidos"
#: accounts/templates/accounts/change_secret_report.html:46
#: accounts/templates/accounts/check_account_report.html:54
#: accounts/templates/accounts/change_secret_report.html:48
#: accounts/templates/accounts/check_account_report.html:55
#: accounts/templates/accounts/gather_account_report.html:47
#: accounts/templates/accounts/push_account_report.html:46
#: accounts/templates/accounts/push_account_report.html:48
msgid "Asset failed count"
msgstr "Número de ativos com falha"
#: accounts/templates/accounts/change_secret_report.html:50
#: accounts/templates/accounts/check_account_report.html:58
#: accounts/templates/accounts/change_secret_report.html:52
#: accounts/templates/accounts/check_account_report.html:59
#: accounts/templates/accounts/gather_account_report.html:51
#: accounts/templates/accounts/push_account_report.html:50
#: accounts/templates/accounts/push_account_report.html:52
msgid "Asset not support count"
msgstr "Número de ativos não suportados"
#: accounts/templates/accounts/change_secret_report.html:61
#: accounts/templates/accounts/push_account_report.html:61
#: accounts/templates/accounts/change_secret_report.html:63
#: accounts/templates/accounts/push_account_report.html:63
msgid "Success accounts"
msgstr "Contas bem-sucedidas"
#: accounts/templates/accounts/change_secret_report.html:69
#: accounts/templates/accounts/change_secret_report.html:101
#: accounts/templates/accounts/check_account_report.html:77
#: accounts/templates/accounts/change_secret_report.html:71
#: accounts/templates/accounts/change_secret_report.html:103
#: accounts/templates/accounts/check_account_report.html:78
#: accounts/templates/accounts/gather_account_report.html:70
#: accounts/templates/accounts/gather_account_report.html:102
#: accounts/templates/accounts/push_account_report.html:69
#: accounts/templates/accounts/push_account_report.html:101
#: accounts/templates/accounts/push_account_report.html:71
#: accounts/templates/accounts/push_account_report.html:103
#: audits/handler.py:128
msgid "No"
msgstr "Não"
#: accounts/templates/accounts/change_secret_report.html:85
#: accounts/templates/accounts/change_secret_report.html:117
#: accounts/templates/accounts/change_secret_report.html:87
#: accounts/templates/accounts/change_secret_report.html:119
#: accounts/templates/accounts/gather_account_report.html:86
#: accounts/templates/accounts/gather_account_report.html:118
#: accounts/templates/accounts/push_account_report.html:85
#: accounts/templates/accounts/push_account_report.html:117
#: accounts/templates/accounts/push_account_report.html:87
#: accounts/templates/accounts/push_account_report.html:119
msgid "No new accounts found"
msgstr "Conta nova não encontrada"
#: accounts/templates/accounts/change_secret_report.html:92
#: accounts/templates/accounts/push_account_report.html:92
#: accounts/templates/accounts/change_secret_report.html:94
#: accounts/templates/accounts/push_account_report.html:94
msgid "Failed accounts"
msgstr "Contas com falha"
#: accounts/templates/accounts/check_account_report.html:13
#: accounts/templates/accounts/check_account_report.html:14
#: accounts/templates/accounts/gather_account_report.html:14
msgid ""
"The following is a summary of the account check tasks. Please review and "
@ -1793,21 +1803,21 @@ msgstr ""
"A seguir, está o resumo das tarefas de verificação de conta, por favor, "
"consulte e trate"
#: accounts/templates/accounts/check_account_report.html:42
#: accounts/templates/accounts/check_account_report.html:43
msgid "Ok count"
msgstr "Número de sucessos"
#: accounts/templates/accounts/check_account_report.html:46
#: accounts/templates/accounts/check_account_report.html:47
msgid "No password count"
msgstr "SemSenhaNum"
#: accounts/templates/accounts/check_account_report.html:80
#: assets/models/automations/base.py:153 ops/models/base.py:51
#: accounts/templates/accounts/check_account_report.html:81
#: assets/models/automations/base.py:156 ops/models/base.py:51
#: ops/models/job.py:235 xpack/plugins/cloud/models.py:225
msgid "Result"
msgstr "Resultado"
#: accounts/templates/accounts/check_account_report.html:95
#: accounts/templates/accounts/check_account_report.html:96
msgid "No weak password"
msgstr "SemSenhaFraca"
@ -1819,7 +1829,7 @@ msgstr "ContaNovaDescoberta"
msgid "Lost accounts"
msgstr "ContaPerdida"
#: accounts/templates/accounts/push_account_report.html:13
#: accounts/templates/accounts/push_account_report.html:15
msgid ""
"The following is a summary of account push tasks, please read and process"
msgstr ""
@ -2137,28 +2147,28 @@ msgstr "O nome do nó no mesmo nível não pode ser repetido"
msgid "App Assets"
msgstr "Gestão de ativos"
#: assets/automations/base/manager.py:332
#: assets/automations/base/manager.py:347
msgid " - Platform {} ansible disabled"
msgstr " - Plataforma {} Ansible foi desabilitada, impossível executar tarefas"
#: assets/automations/base/manager.py:514
#: assets/automations/base/manager.py:530
msgid ">>> Task preparation phase"
msgstr ">>> Preparando para executar tarefas"
#: assets/automations/base/manager.py:518
#: assets/automations/base/manager.py:534
#, python-brace-format
msgid ">>> Executing tasks in batches, total {runner_count}"
msgstr ">>> Executando tarefas em partes, total de {runner_count}"
#: assets/automations/base/manager.py:523
#: assets/automations/base/manager.py:539
msgid ">>> Start executing tasks"
msgstr ">>> Começando a executar tarefas"
#: assets/automations/base/manager.py:525
#: assets/automations/base/manager.py:541
msgid ">>> No tasks need to be executed"
msgstr ">>> Não há tarefas para executar"
#: assets/automations/base/manager.py:529
#: assets/automations/base/manager.py:545
#, python-brace-format
msgid ">>> Begin executing batch {index} of tasks"
msgstr ">>> Começando a executar o lote {index} de tarefas"
@ -2596,27 +2606,33 @@ msgstr "Nó"
msgid "Parameters"
msgstr "Parâmetros"
#: assets/models/automations/base.py:41 assets/models/automations/base.py:128
#: assets/models/automations/base.py:31
#, fuzzy
#| msgid "Last execution"
msgid "Last execution date"
msgstr "Última Ação"
#: assets/models/automations/base.py:44 assets/models/automations/base.py:131
msgid "Automation task"
msgstr "Tarefas de automação"
#: assets/models/automations/base.py:119
#: assets/models/automations/base.py:122
msgid "Asset automation task"
msgstr "Tarefas de Automação de Ativos"
#: assets/models/automations/base.py:136 assets/models/cmd_filter.py:41
#: assets/models/automations/base.py:139 assets/models/cmd_filter.py:41
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:238
#: users/models/user/__init__.py:322
msgid "Date created"
msgstr "Data de criação"
#: assets/models/automations/base.py:150
#: assets/models/automations/base.py:153
#: assets/serializers/automations/base.py:44 xpack/plugins/cloud/models.py:242
#: xpack/plugins/cloud/serializers/task.py:249
msgid "Trigger mode"
msgstr "Modo de Trigger"
#: assets/models/automations/base.py:152 audits/serializers.py:39
#: assets/models/automations/base.py:155 audits/serializers.py:39
#: ops/models/base.py:52 ops/models/job.py:236
#: xpack/plugins/cloud/manager.py:103
msgid "Summary"
@ -7262,7 +7278,9 @@ msgstr ""
"após modificar o perfil, pode ser um wiki ou outros documentos de instrução"
#: settings/serializers/basic.py:22
msgid "Global organization"
#, fuzzy
#| msgid "Global organization"
msgid "Global org display"
msgstr "Nome da organização global"
#: settings/serializers/basic.py:23

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-28 18:37+0800\n"
"POT-Creation-Date: 2025-03-07 15:03+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -25,7 +25,7 @@ msgstr ""
msgid "Account already exists"
msgstr "帳號已存在"
#: accounts/api/account/application.py:77
#: accounts/api/account/application.py:78
#: authentication/api/connection_token.py:449
msgid "Account not found"
msgstr "帳號未找到"
@ -49,8 +49,8 @@ msgstr "生成資產相關備份信息文件"
#: accounts/automations/backup_account/handlers.py:168
#: accounts/automations/backup_account/manager.py:26
#: accounts/automations/change_secret/manager.py:95
#: accounts/automations/push_account/manager.py:59
#: assets/models/automations/base.py:142 ops/serializers/job.py:71
#: accounts/automations/push_account/manager.py:61
#: assets/models/automations/base.py:145 ops/serializers/job.py:71
#: ops/serializers/job.py:95
#: settings/templates/ldap/_msg_import_ldap_user.html:7
#: terminal/serializers/session.py:49
@ -61,23 +61,27 @@ msgstr "花費時間"
msgid "Backup file creation completed"
msgstr "建立備份檔案完成"
#: accounts/automations/backup_account/handlers.py:203
#: accounts/automations/backup_account/handlers.py:177
msgid "Start sending backup emails"
msgstr "開始發送備份電子郵件"
#: accounts/automations/backup_account/handlers.py:204
msgid "Encrypting files using encryption password"
msgstr "使用加密密碼對檔案進行加密中"
#: accounts/automations/backup_account/handlers.py:213
#: accounts/automations/backup_account/handlers.py:214
msgid "The backup file will be sent to"
msgstr "備份檔案將被傳送至"
#: accounts/automations/backup_account/handlers.py:236
#: accounts/automations/backup_account/handlers.py:237
msgid "The backup task has no assigned sftp server"
msgstr "該備份任務未分配sftp伺服器"
#: accounts/automations/backup_account/handlers.py:257
#: accounts/automations/backup_account/handlers.py:258
msgid "The backup task has no assigned recipient"
msgstr "備份任務沒有指定收件人"
#: accounts/automations/backup_account/handlers.py:280
#: accounts/automations/backup_account/handlers.py:281
msgid "Plan start"
msgstr "Action開始"
@ -87,11 +91,11 @@ msgstr "帳號備份計劃正在執行"
#: accounts/automations/backup_account/manager.py:24
#: accounts/automations/change_secret/manager.py:93
#: accounts/automations/push_account/manager.py:57
#: accounts/automations/push_account/manager.py:59
msgid "Plan execution end"
msgstr "計劃執行結束"
#: accounts/automations/base/manager.py:106
#: accounts/automations/base/manager.py:109
msgid "No pending accounts found"
msgstr "未找到待處理帳戶"
@ -100,6 +104,12 @@ msgstr "未找到待處理帳戶"
msgid "Success: %s, Failed: %s, Total: %s"
msgstr "成功: %s, 失敗: %s, 總數: %s"
#: accounts/automations/push_account/manager.py:31
#, fuzzy
#| msgid "The {} cannot be empty"
msgid "Secret cannot be empty"
msgstr "{} 不能為空"
#: accounts/automations/verify_gateway_account/manager.py:18
msgid ">>> Start executing the task to test gateway account connectivity"
msgstr ">>> 開始執行測試閘道器帳號可連結性的任務"
@ -424,13 +434,13 @@ msgstr "用戶 %s 查看/匯出 了密碼"
#: accounts/serializers/automations/gather_account.py:47
#: accounts/templates/accounts/asset_account_change_info.html:7
#: accounts/templates/accounts/change_secret_failed_info.html:11
#: accounts/templates/accounts/change_secret_report.html:70
#: accounts/templates/accounts/change_secret_report.html:102
#: accounts/templates/accounts/check_account_report.html:78
#: accounts/templates/accounts/change_secret_report.html:72
#: accounts/templates/accounts/change_secret_report.html:104
#: accounts/templates/accounts/check_account_report.html:79
#: accounts/templates/accounts/gather_account_report.html:71
#: accounts/templates/accounts/gather_account_report.html:103
#: accounts/templates/accounts/push_account_report.html:70
#: accounts/templates/accounts/push_account_report.html:102
#: accounts/templates/accounts/push_account_report.html:72
#: accounts/templates/accounts/push_account_report.html:104
#: acls/serializers/base.py:130 assets/models/asset/common.py:102
#: assets/models/asset/common.py:366 assets/models/cmd_filter.py:36
#: audits/models.py:59 audits/models.py:312 audits/serializers.py:228
@ -493,7 +503,7 @@ msgstr "改密狀態"
#: accounts/models/account.py:85
#: accounts/models/automations/check_account.py:67
#: accounts/serializers/account/service.py:10
#: accounts/serializers/account/service.py:11
#: accounts/serializers/automations/change_secret.py:115
#: accounts/serializers/automations/change_secret.py:146
#: accounts/templates/accounts/change_secret_failed_info.html:12
@ -537,7 +547,7 @@ msgstr "可以移除帳號"
#: accounts/models/application.py:16
#: accounts/models/automations/check_account.py:119 accounts/models/base.py:63
#: accounts/serializers/account/service.py:26
#: accounts/serializers/account/service.py:27
#: 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:100
@ -705,7 +715,7 @@ msgstr "SSH 金鑰推送方式"
msgid "Check connection after change"
msgstr "更改後檢查連接"
#: accounts/models/automations/change_secret.py:16
#: accounts/models/automations/change_secret.py:17
#: accounts/models/automations/check_account.py:19
#: accounts/models/automations/gather_account.py:92
#: accounts/serializers/automations/change_secret.py:59
@ -714,22 +724,22 @@ msgstr "更改後檢查連接"
msgid "Recipient"
msgstr "收件人"
#: accounts/models/automations/change_secret.py:23
#: accounts/models/automations/change_secret.py:24
msgid "Change secret automation"
msgstr "自動化改密"
#: accounts/models/automations/change_secret.py:46
#: assets/models/automations/base.py:141 ops/models/base.py:56
#: accounts/models/automations/change_secret.py:47
#: assets/models/automations/base.py:144 ops/models/base.py:56
#: ops/models/celery.py:90 ops/models/job.py:240
#: terminal/models/applet/host.py:142
msgid "Date finished"
msgstr "結束日期"
#: accounts/models/automations/change_secret.py:48
#: accounts/models/automations/change_secret.py:49
#: accounts/models/automations/check_account.py:75
#: accounts/models/automations/gather_account.py:25
#: accounts/serializers/automations/check_account.py:39
#: assets/models/automations/base.py:133
#: assets/models/automations/base.py:136
#: assets/serializers/automations/base.py:45 audits/models.py:209
#: audits/serializers.py:78 ops/models/base.py:49 ops/models/job.py:231
#: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140
@ -743,7 +753,7 @@ msgstr "結束日期"
msgid "Status"
msgstr "狀態"
#: accounts/models/automations/change_secret.py:50
#: accounts/models/automations/change_secret.py:51
#: accounts/serializers/account/account.py:276
#: accounts/templates/accounts/change_secret_failed_info.html:13
#: assets/const/automation.py:9
@ -754,19 +764,19 @@ msgstr "狀態"
msgid "Error"
msgstr "錯誤"
#: accounts/models/automations/change_secret.py:66
#: accounts/models/automations/change_secret.py:73
msgid "Old secret"
msgstr "原金鑰"
#: accounts/models/automations/change_secret.py:67
#: accounts/models/automations/change_secret.py:74
msgid "New secret"
msgstr "新金鑰"
#: accounts/models/automations/change_secret.py:68
#: accounts/models/automations/change_secret.py:75
msgid "Ignore fail"
msgstr "忽略失敗"
#: accounts/models/automations/change_secret.py:71
#: accounts/models/automations/change_secret.py:78
msgid "Change secret record"
msgstr "改密記錄"
@ -820,8 +830,8 @@ msgid "Long time no change"
msgstr "長時間未改密"
#: accounts/models/automations/check_account.py:52
#: accounts/templates/accounts/check_account_report.html:69
#: accounts/templates/accounts/check_account_report.html:89
#: accounts/templates/accounts/check_account_report.html:70
#: accounts/templates/accounts/check_account_report.html:90
msgid "Weak password"
msgstr "弱密碼"
@ -848,13 +858,13 @@ msgstr "其它"
#: accounts/models/automations/check_account.py:64
#: accounts/models/automations/gather_account.py:17 accounts/models/base.py:64
#: accounts/serializers/account/virtual.py:21
#: accounts/templates/accounts/change_secret_report.html:71
#: accounts/templates/accounts/change_secret_report.html:103
#: accounts/templates/accounts/check_account_report.html:79
#: accounts/templates/accounts/change_secret_report.html:73
#: accounts/templates/accounts/change_secret_report.html:105
#: accounts/templates/accounts/check_account_report.html:80
#: accounts/templates/accounts/gather_account_report.html:72
#: accounts/templates/accounts/gather_account_report.html:104
#: accounts/templates/accounts/push_account_report.html:71
#: accounts/templates/accounts/push_account_report.html:103
#: accounts/templates/accounts/push_account_report.html:73
#: accounts/templates/accounts/push_account_report.html:105
#: acls/serializers/base.py:19 acls/serializers/base.py:50 audits/models.py:189
#: authentication/forms.py:21 authentication/forms.py:23
#: authentication/models/temp_token.py:9
@ -1272,12 +1282,12 @@ msgstr ""
"提示:如果認證時不需要使用者名稱,可填寫為 null如果是 AD 帳號,格式為 "
"username@domain"
#: accounts/serializers/account/service.py:12
#: accounts/serializers/account/service.py:13
#: authentication/serializers/token.py:22
msgid "Access IP"
msgstr "IP 白名單"
#: accounts/serializers/account/service.py:25
#: accounts/serializers/account/service.py:26
#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25
#: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37
@ -1292,9 +1302,9 @@ msgstr "IP 白名單"
msgid "Comment"
msgstr "備註"
#: accounts/serializers/account/service.py:27
#: accounts/templates/accounts/backup_account_report.html:38
#: accounts/templates/accounts/check_account_report.html:38
#: accounts/serializers/account/service.py:28
#: accounts/templates/accounts/backup_account_report.html:39
#: accounts/templates/accounts/check_account_report.html:39
#: assets/serializers/asset/common.py:151
msgid "Accounts amount"
msgstr "帳號數量"
@ -1388,7 +1398,7 @@ msgid "Name already exists"
msgstr "名稱已存在"
#: accounts/serializers/automations/base.py:31
#: assets/models/automations/base.py:144
#: assets/models/automations/base.py:147
#: assets/serializers/automations/base.py:43
msgid "Automation snapshot"
msgstr "自動化快照"
@ -1416,8 +1426,8 @@ msgid "* Please enter the correct password length"
msgstr "* 請輸入正確的密碼長度"
#: accounts/serializers/automations/change_secret.py:90
msgid "* Password length range 6-30 bits"
msgstr "* 密碼長度範圍 6-30 位"
msgid "* Password length range 8-36 bits"
msgstr "* 密碼長度範圍 8-36 位"
#: accounts/serializers/automations/change_secret.py:112
#: accounts/serializers/automations/change_secret.py:147
@ -1426,7 +1436,7 @@ msgid "Is success"
msgstr "是否成功"
#: accounts/serializers/automations/change_secret.py:119
#: assets/models/automations/base.py:160
#: assets/models/automations/base.py:163
msgid "Automation task execution"
msgstr "自動化任務執行歷史"
@ -1583,28 +1593,28 @@ msgstr "測試帳號可連接性"
msgid "Deleted account"
msgstr "刪除帳號"
#: accounts/templates/accounts/backup_account_report.html:13
#: accounts/templates/accounts/backup_account_report.html:14
msgid ""
"The following is a summary of account backup tasks, please review and handle "
"them"
msgstr "以下是帳戶備份任務的概要,請查閱並處理。"
#: accounts/templates/accounts/backup_account_report.html:22
#: accounts/templates/accounts/backup_account_report.html:23
#: accounts/templates/accounts/change_secret_failed_info.html:3
#: accounts/templates/accounts/change_secret_report.html:22
#: accounts/templates/accounts/check_account_report.html:22
#: accounts/templates/accounts/change_secret_report.html:24
#: accounts/templates/accounts/check_account_report.html:23
#: accounts/templates/accounts/gather_account_report.html:23
#: accounts/templates/accounts/push_account_report.html:22
#: accounts/templates/accounts/push_account_report.html:24
#: terminal/serializers/task.py:10
msgid "Task name"
msgstr "任務名稱"
#: accounts/templates/accounts/backup_account_report.html:26
#: accounts/templates/accounts/change_secret_report.html:26
#: accounts/templates/accounts/check_account_report.html:26
#: accounts/templates/accounts/backup_account_report.html:27
#: accounts/templates/accounts/change_secret_report.html:28
#: accounts/templates/accounts/check_account_report.html:27
#: accounts/templates/accounts/gather_account_report.html:27
#: accounts/templates/accounts/push_account_report.html:26
#: assets/models/automations/base.py:139 audits/models.py:66
#: accounts/templates/accounts/push_account_report.html:28
#: assets/models/automations/base.py:142 audits/models.py:66
#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:239
#: ops/templates/ops/celery_task_log.html:101
#: perms/models/asset_permission.py:78 settings/serializers/feature.py:27
@ -1615,26 +1625,26 @@ msgstr "任務名稱"
msgid "Date start"
msgstr "開始日期"
#: accounts/templates/accounts/backup_account_report.html:30
#: accounts/templates/accounts/change_secret_report.html:30
#: accounts/templates/accounts/check_account_report.html:30
#: accounts/templates/accounts/backup_account_report.html:31
#: accounts/templates/accounts/change_secret_report.html:32
#: accounts/templates/accounts/check_account_report.html:31
#: accounts/templates/accounts/gather_account_report.html:31
#: accounts/templates/accounts/push_account_report.html:30
#: accounts/templates/accounts/push_account_report.html:32
#: settings/serializers/feature.py:28
#: settings/templates/ldap/_msg_import_ldap_user.html:6
#: terminal/models/session/session.py:48
msgid "Date end"
msgstr "結束日期"
#: accounts/templates/accounts/backup_account_report.html:34
#: accounts/templates/accounts/change_secret_report.html:34
#: accounts/templates/accounts/check_account_report.html:34
#: accounts/templates/accounts/backup_account_report.html:35
#: accounts/templates/accounts/change_secret_report.html:36
#: accounts/templates/accounts/check_account_report.html:35
#: accounts/templates/accounts/gather_account_report.html:35
#: accounts/templates/accounts/push_account_report.html:34
#: accounts/templates/accounts/push_account_report.html:36
msgid "Time using"
msgstr "耗時"
#: accounts/templates/accounts/backup_account_report.html:42
#: accounts/templates/accounts/backup_account_report.html:43
msgid "Type count"
msgstr "類型數"
@ -1652,93 +1662,93 @@ msgid ""
"or pushing the account. Please check and handle it in time."
msgstr "你好! 以下是資產改密或推送帳戶失敗的情況。 請及時檢查並處理。"
#: accounts/templates/accounts/change_secret_report.html:13
#: accounts/templates/accounts/change_secret_report.html:15
msgid ""
"The following is a summary of account change secret tasks, please read and "
"process"
msgstr "以下是帳號更改秘密任務的摘要,請閱讀並處理"
#: accounts/templates/accounts/change_secret_report.html:38
#: accounts/templates/accounts/change_secret_report.html:40
#: accounts/templates/accounts/gather_account_report.html:39
#: accounts/templates/accounts/push_account_report.html:38
#: accounts/templates/accounts/push_account_report.html:40
#: assets/serializers/domain.py:24 assets/serializers/platform.py:182
#: orgs/serializers.py:13 perms/serializers/permission.py:50
msgid "Assets amount"
msgstr "資產數量"
#: accounts/templates/accounts/change_secret_report.html:42
#: accounts/templates/accounts/check_account_report.html:50
#: accounts/templates/accounts/change_secret_report.html:44
#: accounts/templates/accounts/check_account_report.html:51
#: accounts/templates/accounts/gather_account_report.html:43
#: accounts/templates/accounts/push_account_report.html:42
#: accounts/templates/accounts/push_account_report.html:44
msgid "Asset success count"
msgstr "資產成功數"
#: accounts/templates/accounts/change_secret_report.html:46
#: accounts/templates/accounts/check_account_report.html:54
#: accounts/templates/accounts/change_secret_report.html:48
#: accounts/templates/accounts/check_account_report.html:55
#: accounts/templates/accounts/gather_account_report.html:47
#: accounts/templates/accounts/push_account_report.html:46
#: accounts/templates/accounts/push_account_report.html:48
msgid "Asset failed count"
msgstr "資產失敗數"
#: accounts/templates/accounts/change_secret_report.html:50
#: accounts/templates/accounts/check_account_report.html:58
#: accounts/templates/accounts/change_secret_report.html:52
#: accounts/templates/accounts/check_account_report.html:59
#: accounts/templates/accounts/gather_account_report.html:51
#: accounts/templates/accounts/push_account_report.html:50
#: accounts/templates/accounts/push_account_report.html:52
msgid "Asset not support count"
msgstr "資產不支援數"
#: accounts/templates/accounts/change_secret_report.html:61
#: accounts/templates/accounts/push_account_report.html:61
#: accounts/templates/accounts/change_secret_report.html:63
#: accounts/templates/accounts/push_account_report.html:63
msgid "Success accounts"
msgstr "成功帳號"
#: accounts/templates/accounts/change_secret_report.html:69
#: accounts/templates/accounts/change_secret_report.html:101
#: accounts/templates/accounts/check_account_report.html:77
#: accounts/templates/accounts/change_secret_report.html:71
#: accounts/templates/accounts/change_secret_report.html:103
#: accounts/templates/accounts/check_account_report.html:78
#: accounts/templates/accounts/gather_account_report.html:70
#: accounts/templates/accounts/gather_account_report.html:102
#: accounts/templates/accounts/push_account_report.html:69
#: accounts/templates/accounts/push_account_report.html:101
#: accounts/templates/accounts/push_account_report.html:71
#: accounts/templates/accounts/push_account_report.html:103
#: audits/handler.py:128
msgid "No"
msgstr "否"
#: accounts/templates/accounts/change_secret_report.html:85
#: accounts/templates/accounts/change_secret_report.html:117
#: accounts/templates/accounts/change_secret_report.html:87
#: accounts/templates/accounts/change_secret_report.html:119
#: accounts/templates/accounts/gather_account_report.html:86
#: accounts/templates/accounts/gather_account_report.html:118
#: accounts/templates/accounts/push_account_report.html:85
#: accounts/templates/accounts/push_account_report.html:117
#: accounts/templates/accounts/push_account_report.html:87
#: accounts/templates/accounts/push_account_report.html:119
msgid "No new accounts found"
msgstr "未找到新帳戶"
#: accounts/templates/accounts/change_secret_report.html:92
#: accounts/templates/accounts/push_account_report.html:92
#: accounts/templates/accounts/change_secret_report.html:94
#: accounts/templates/accounts/push_account_report.html:94
msgid "Failed accounts"
msgstr "失敗帳號"
#: accounts/templates/accounts/check_account_report.html:13
#: accounts/templates/accounts/check_account_report.html:14
#: accounts/templates/accounts/gather_account_report.html:14
msgid ""
"The following is a summary of the account check tasks. Please review and "
"handle them"
msgstr "以下為帳號檢查任務的彙總,請查閱並處理"
#: accounts/templates/accounts/check_account_report.html:42
#: accounts/templates/accounts/check_account_report.html:43
msgid "Ok count"
msgstr "成功數"
#: accounts/templates/accounts/check_account_report.html:46
#: accounts/templates/accounts/check_account_report.html:47
msgid "No password count"
msgstr "無密碼數"
#: accounts/templates/accounts/check_account_report.html:80
#: assets/models/automations/base.py:153 ops/models/base.py:51
#: accounts/templates/accounts/check_account_report.html:81
#: assets/models/automations/base.py:156 ops/models/base.py:51
#: ops/models/job.py:235 xpack/plugins/cloud/models.py:225
msgid "Result"
msgstr "結果"
#: accounts/templates/accounts/check_account_report.html:95
#: accounts/templates/accounts/check_account_report.html:96
msgid "No weak password"
msgstr "無弱密碼"
@ -1750,7 +1760,7 @@ msgstr "新發現的帳戶"
msgid "Lost accounts"
msgstr "遺失的帳號"
#: accounts/templates/accounts/push_account_report.html:13
#: accounts/templates/accounts/push_account_report.html:15
msgid ""
"The following is a summary of account push tasks, please read and process"
msgstr "以下是帳號推送任務的彙總,請閱讀並處理"
@ -2057,28 +2067,28 @@ msgstr "同級別節點名字不能重複"
msgid "App Assets"
msgstr "資產管理"
#: assets/automations/base/manager.py:332
#: assets/automations/base/manager.py:347
msgid " - Platform {} ansible disabled"
msgstr " - 平台 {} Ansible 已禁用, 無法執行任務"
#: assets/automations/base/manager.py:514
#: assets/automations/base/manager.py:530
msgid ">>> Task preparation phase"
msgstr ">>> 任務準備階段"
#: assets/automations/base/manager.py:518
#: assets/automations/base/manager.py:534
#, python-brace-format
msgid ">>> Executing tasks in batches, total {runner_count}"
msgstr ">>> 分次執行任務,總共 {runner_count}"
#: assets/automations/base/manager.py:523
#: assets/automations/base/manager.py:539
msgid ">>> Start executing tasks"
msgstr ">>> 開始執行任務"
#: assets/automations/base/manager.py:525
#: assets/automations/base/manager.py:541
msgid ">>> No tasks need to be executed"
msgstr ">>> 沒有需要執行的任務"
#: assets/automations/base/manager.py:529
#: assets/automations/base/manager.py:545
#, python-brace-format
msgid ">>> Begin executing batch {index} of tasks"
msgstr ">>> 開始執行第 {index} 批任務"
@ -2508,29 +2518,35 @@ msgstr "節點"
msgid "Parameters"
msgstr "參數"
#: assets/models/automations/base.py:41 assets/models/automations/base.py:128
#: assets/models/automations/base.py:31
#, fuzzy
#| msgid "Last execution"
msgid "Last execution date"
msgstr "最後執行"
#: assets/models/automations/base.py:44 assets/models/automations/base.py:131
msgid "Automation task"
msgstr "自動化任務"
#: assets/models/automations/base.py:119
#: assets/models/automations/base.py:122
msgid "Asset automation task"
msgstr "資產自動化任務"
# msgid "Comment"
# msgstr "備註"
#: assets/models/automations/base.py:136 assets/models/cmd_filter.py:41
#: assets/models/automations/base.py:139 assets/models/cmd_filter.py:41
#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:238
#: users/models/user/__init__.py:322
msgid "Date created"
msgstr "創建日期"
#: assets/models/automations/base.py:150
#: assets/models/automations/base.py:153
#: assets/serializers/automations/base.py:44 xpack/plugins/cloud/models.py:242
#: xpack/plugins/cloud/serializers/task.py:249
msgid "Trigger mode"
msgstr "觸發模式"
#: assets/models/automations/base.py:152 audits/serializers.py:39
#: assets/models/automations/base.py:155 audits/serializers.py:39
#: ops/models/base.py:52 ops/models/job.py:236
#: xpack/plugins/cloud/manager.py:103
msgid "Summary"
@ -7008,7 +7024,9 @@ msgid "User first login update profile done redirect to it"
msgstr "用戶第一次登錄修改profile後重定向到地址, 可以是 wiki 或 其他說明文件"
#: settings/serializers/basic.py:22
msgid "Global organization"
#, fuzzy
#| msgid "Global organization"
msgid "Global org display"
msgstr "全球組織名稱"
#: settings/serializers/basic.py:23

View File

@ -476,6 +476,7 @@
"DisableSuccessMsg": "Successfully disabled",
"DiscoverAccountTask": "Account discovery task | Account discovery tasks",
"DiscoverAccounts": "Discover accounts",
"DiscoverAccountDetail": "Discover account details",
"DiscoverAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.",
"DiscoveredAccountList": "Discovered accounts",
"DisplayName": "Name",
@ -1506,5 +1507,13 @@
"removeWarningMsg": "Are you sure you want to remove",
"setVariable": "Set variable",
"IgnoreAlert": "Ignore alert",
"DeleteGatherAccountTitle": "Delete gather account"
"DeleteGatherAccountTitle": "Delete gather account",
"DeleteRemoteAccount": "Delete remote account",
"AddAccountAfterChangingPassword": "Add account after changing password",
"ExecutionID": "Execution ID",
"Invalid": "Invalid",
"Disabled": "Disabled",
"IgnoreFail": "Ignore fail",
"RiskDetectionDetail": "Risk detection detail",
"ApplicationDetail": "Application detail"
}

View File

@ -473,6 +473,7 @@
"DisableSuccessMsg": "禁用成功",
"DiscoverAccountTask": "账号发现任务",
"DiscoverAccounts": "帐号发现",
"DiscoverAccountDetail": "帐号发现详情",
"DiscoverAccountsHelpText": "采集资产的账务信息,可将采集到的账务信息导入系统进行集中管理。",
"DiscoveredAccountList": "发现账号",
"DisplayName": "名称",
@ -1505,6 +1506,13 @@
"removeWarningMsg": "你确定要移除",
"setVariable": "设置参数",
"IgnoreAlert": "忽略警报",
"DeleteGatherAccountTitle": "删除发现的账号"
"DeleteGatherAccountTitle": "删除发现的账号",
"DeleteRemoteAccount": "删除远端账号",
"AddAccountAfterChangingPassword": "修改密码后添加账号",
"ExecutionID": "执行 ID",
"Invalid": "无效",
"Disabled": "已禁用",
"IgnoreFail": "忽略失败",
"RiskDetectionDetail": "风险检测详情",
"ApplicationDetail": "应用详情"
}

View File

@ -50,6 +50,7 @@ def user_authenticated_handle(user, created, source, attrs=None, **kwargs):
return
if created:
logger.debug(f'Receive user created signal: {user}, Set user source is: {source}')
user.source = source
user.save()
@ -64,7 +65,7 @@ def user_authenticated_handle(user, created, source, attrs=None, **kwargs):
always_update = getattr(settings, 'AUTH_%s_ALWAYS_UPDATE_USER' % source.upper(), False)
if not created and always_update:
attr_whitelist = ('user', 'username', 'email', 'phone', 'comment')
attr_whitelist = ('name', 'username', 'email', 'phone', 'comment')
logger.debug(
"Receive {} user updated signal: {}, "
"Update user info: {},"
@ -129,19 +130,19 @@ def on_user_create(sender, user=None, **kwargs):
@receiver(cas_user_authenticated)
def on_cas_user_authenticated(sender, user, created, **kwargs):
source = user.Source.cas.value
source = User.Source.cas.value
user_authenticated_handle(user, created, source)
@receiver(saml2_create_or_update_user)
def on_saml2_create_or_update_user(sender, user, created, attrs, **kwargs):
source = user.Source.saml2.value
source = User.Source.saml2.value
user_authenticated_handle(user, created, source, attrs, **kwargs)
@receiver(oauth2_create_or_update_user)
def on_oauth2_create_or_update_user(sender, user, created, attrs, **kwargs):
source = user.Source.oauth2.value
source = User.Source.oauth2.value
user_authenticated_handle(user, created, source, attrs, **kwargs)
@ -153,35 +154,14 @@ def radius_create_user(sender, user, **kwargs):
@receiver(openid_create_or_update_user)
def on_openid_create_or_update_user(sender, request, user, created, attrs, **kwargs):
if not check_only_allow_exist_user_auth(created):
return
def on_openid_create_or_update_user(sender, user, created, attrs, **kwargs):
if created:
logger.debug(
"Receive OpenID user created signal: {}, "
"Set user source is: {}".format(user, User.Source.openid.value)
)
user.source = User.Source.openid.value
user.save()
org_ids = bind_user_to_org_role(user)
group_names = attrs.get('groups')
bind_user_to_group(org_ids, group_names, user)
name = attrs.get('name')
username = attrs.get('username')
email = attrs.get('email')
if not created and settings.AUTH_OPENID_ALWAYS_UPDATE_USER:
logger.debug(
"Receive OpenID user updated signal: {}, "
"Update user info: {}"
"".format(user, "name: {}|username: {}|email: {}".format(name, username, email))
)
user.name = name
user.username = username
user.email = email
user.save()
source = User.Source.openid.value
user_authenticated_handle(user, created, source, attrs, **kwargs)
@receiver(populate_user)