perf: Change secret filter days

pull/15076/head
feng 2025-03-19 18:48:36 +08:00
parent 4fdb049c9d
commit 6f7da89e2e
6 changed files with 37 additions and 13 deletions

View File

@ -6,6 +6,7 @@ from rest_framework import status, mixins, viewsets
from rest_framework.decorators import action
from rest_framework.response import Response
from accounts.filters import AutomationExecutionFilterSet
from accounts.models import AutomationExecution
from accounts.tasks import execute_account_automation_task
from assets import serializers
@ -100,6 +101,7 @@ class AutomationExecutionViewSet(
):
search_fields = ('trigger', 'automation__name')
filterset_fields = ('trigger', 'automation_id', 'automation__name')
filterset_class = AutomationExecutionFilterSet
serializer_class = serializers.AutomationExecutionSerializer
tp: str

View File

@ -38,6 +38,8 @@ class BaseAccountHandler:
else:
if isinstance(v, dict):
v = v.get('label')
elif v is None:
v = ''
data[k] = v
return data
@ -196,8 +198,8 @@ class AccountBackupHandler:
attachment_list = [attachment]
AccountBackupExecutionTaskMsg(name, user).publish(attachment_list)
# for file in files:
# os.remove(file)
for file in files:
os.remove(file)
def send_backup_obj_storage(self, files, recipients, password):
if not files:
@ -282,8 +284,7 @@ class AccountBackupHandler:
else:
recipients = recipients_part_one or recipients_part_two
files = self.create_excel()
print(files)
# self.send_backup_mail(files, recipients)
self.send_backup_mail(files, recipients)
def run(self):
print('{}: {}'.format(_('Plan start'), local_now_display()))

View File

@ -15,7 +15,8 @@ from assets.utils import get_node_from_request
from common.drf.filters import BaseFilterSet
from common.utils.timezone import local_zero_hour, local_now
from .const.automation import ChangeSecretRecordStatusChoice
from .models import Account, GatheredAccount, ChangeSecretRecord, PushSecretRecord, IntegrationApplication
from .models import Account, GatheredAccount, ChangeSecretRecord, PushSecretRecord, IntegrationApplication, \
AutomationExecution
class NodeFilterBackend(filters.BaseFilterBackend):
@ -190,24 +191,41 @@ class UUIDExecutionFilterMixin:
return queryset.filter(**{name: value})
class ChangeSecretRecordFilterSet(SecretRecordMixin, UUIDExecutionFilterMixin, BaseFilterSet):
execution_id = django_filters.CharFilter(method="filter_execution")
class DaysExecutionFilterMixin:
days = drf_filters.NumberFilter(method="filter_days")
field: str
@staticmethod
def filter_days(queryset, name, value):
def filter_days(self, queryset, name, value):
value = int(value)
dt = local_zero_hour()
if value != 1:
dt = local_now() - timezone.timedelta(days=value)
return queryset.filter(date_finished__gte=dt)
return queryset.filter(**{f'{self.field}__gte': dt})
class ChangeSecretRecordFilterSet(
SecretRecordMixin, UUIDExecutionFilterMixin,
DaysExecutionFilterMixin, BaseFilterSet
):
execution_id = django_filters.CharFilter(method="filter_execution")
days = drf_filters.NumberFilter(method="filter_days")
field = 'date_finished'
class Meta:
model = ChangeSecretRecord
fields = ["id", "status", "asset_id", "execution_id"]
class AutomationExecutionFilterSet(DaysExecutionFilterMixin, BaseFilterSet):
field = 'date_start'
class Meta:
model = AutomationExecution
fields = ["days", 'trigger', 'automation_id', 'automation__name']
class PushAccountRecordFilterSet(SecretRecordMixin, UUIDExecutionFilterMixin, BaseFilterSet):
execution_id = django_filters.CharFilter(method="filter_execution")

View File

@ -460,7 +460,10 @@ class AccountSecretSerializer(SecretReadableMixin, AccountSerializer):
'secret': {'write_only': False},
'spec_info': {'label': _('Spec info')},
}
exclude_backup_fields = ['passphrase', 'push_now', 'params']
exclude_backup_fields = [
'passphrase', 'push_now', 'params',
'spec_info', 'platform', 'auto_config'
]
class AccountHistorySerializer(serializers.ModelSerializer):

View File

@ -150,7 +150,7 @@ class BaseManager:
recipients = self.execution.recipients
if not recipients:
return
print("Send report to: ", ",".join([str(u) for u in recipients]))
print(f"Send report to: {','.join([str(u) for u in recipients])}")
report = self.gen_report()
report = transform(report, cssutils_logging_level="CRITICAL")

View File

@ -3956,7 +3956,7 @@ msgstr "请输入动态安全码"
msgid ""
"The two-factor code you entered has either already been used or has expired. "
"Please request a new one."
msgstr ""
msgstr "您输入的双重验证码已被使用或已过期。请申请新的双重验证码。"
#: authentication/mfa/custom.py:21
msgid "MFA Custom code invalid"