From 5401b1cdf2c9a0ceeff462613981b4dc0bddf9da Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Thu, 9 Feb 2023 17:17:35 +0800 Subject: [PATCH] perf: audit dashboard (#9486) Co-authored-by: feng <1304903146@qq.com> --- apps/audits/api.py | 10 ++++++---- apps/jumpserver/api.py | 10 +++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/apps/audits/api.py b/apps/audits/api.py index a8c178ac2..2a1409f95 100644 --- a/apps/audits/api.py +++ b/apps/audits/api.py @@ -129,10 +129,12 @@ class PasswordChangeLogViewSet(ListModelMixin, JMSGenericViewSet): ordering = ['-datetime'] def get_queryset(self): - users = current_org.get_members() - queryset = super().get_queryset().filter( - user__in=[user.__str__() for user in users] - ) + queryset = super().get_queryset() + if not current_org.is_root(): + users = current_org.get_members() + queryset = queryset.filter( + user__in=[str(user) for user in users] + ) return queryset # Todo: 看看怎么搞 diff --git a/apps/jumpserver/api.py b/apps/jumpserver/api.py index a3e0dc7ac..045c208c3 100644 --- a/apps/jumpserver/api.py +++ b/apps/jumpserver/api.py @@ -19,7 +19,7 @@ from orgs.utils import current_org from ops.const import JobStatus from ops.models import Job, JobExecution from common.utils import lazyproperty -from audits.models import UserLoginLog, PasswordChangeLog, OperateLog +from audits.models import UserLoginLog, PasswordChangeLog, OperateLog, FTPLog from audits.const import LoginStatusChoices from common.utils.timezone import local_now, local_zero_hour from orgs.caches import OrgResourceStatisticsCache @@ -38,13 +38,13 @@ class DateTimeMixin: def days(self): query_params = self.request.query_params count = query_params.get('days') - count = int(count) if count else 0 + count = int(count) if count else 1 return count @property def days_to_datetime(self): days = self.days - if days == 0: + if days == 1: t = local_zero_hour() else: t = local_now() - timezone.timedelta(days=days) @@ -109,7 +109,7 @@ class DateTimeMixin: @lazyproperty def ftp_logs_queryset(self): t = self.days_to_datetime - queryset = OperateLog.objects.filter(datetime__gte=t) + queryset = FTPLog.objects.filter(date_start__gte=t) queryset = self.get_logs_queryset(queryset, 'user') return queryset @@ -297,7 +297,7 @@ class DatesLoginMetricMixin: @lazyproperty def user_login_amount(self): - return self.login_logs_queryset.values('username').distinct().count() + return self.login_logs_queryset.values('username').count() @lazyproperty def operate_logs_amount(self):