From f42113afb9732e55bc967dd1c56eb4ea7d8fd8fb Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Tue, 18 Jun 2024 14:18:02 +0800 Subject: [PATCH] fix: Fixed the issue of user login statistics (#13440) Co-authored-by: feng <1304903146@qq.com> --- apps/jumpserver/api.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/jumpserver/api.py b/apps/jumpserver/api.py index 6c706430f..f50e52d2e 100644 --- a/apps/jumpserver/api.py +++ b/apps/jumpserver/api.py @@ -74,9 +74,13 @@ class DateTimeMixin: query = {f'{query_field}__gte': t} return qs.filter(**query) + @lazyproperty + def users(self): + return self.org.get_members() + def get_logs_queryset(self, queryset, query_params): query = {} - users = self.org.get_members() + users = self.users if not self.org.is_root(): if query_params == 'username': query = { @@ -100,6 +104,13 @@ class DateTimeMixin: queryset = self.get_logs_queryset(qs, 'username') return queryset + @lazyproperty + def user_login_logs_on_the_system_queryset(self): + qs = UserLoginLog.objects.all() + qs = self.get_logs_queryset_filter(qs, 'datetime') + queryset = qs.filter(username__in=construct_userlogin_usernames(self.users)) + return queryset + @lazyproperty def password_change_logs_queryset(self): qs = PasswordChangeLog.objects.all() @@ -141,6 +152,7 @@ class DatesLoginMetricMixin: ftp_logs_queryset: FTPLog.objects job_logs_queryset: JobLog.objects login_logs_queryset: UserLoginLog.objects + user_login_logs_on_the_system_queryset: UserLoginLog.objects operate_logs_queryset: OperateLog.objects password_change_logs_queryset: PasswordChangeLog.objects @@ -241,7 +253,7 @@ class DatesLoginMetricMixin: @lazyproperty def user_login_amount(self): - return self.login_logs_queryset.values('username').distinct().count() + return self.user_login_logs_on_the_system_queryset.values('username').distinct().count() @lazyproperty def operate_logs_amount(self):