From 46bee235bf66dd2e9a2fd2e217f77f71085aa10f Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Tue, 2 May 2023 14:20:28 +0200 Subject: [PATCH] Use UserQuerySet in get_compliance_email() to exclude inactive users. (#3373) Fixes #3372 --- hypha/apply/activity/adapters/utils.py | 6 +++--- hypha/apply/users/models.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/hypha/apply/activity/adapters/utils.py b/hypha/apply/activity/adapters/utils.py index 1b9437638..70c544024 100644 --- a/hypha/apply/activity/adapters/utils.py +++ b/hypha/apply/activity/adapters/utils.py @@ -61,7 +61,7 @@ def get_compliance_email(target_user_gps=None): target_user_emails.extend([project_settings.contracting_gp_email]) else: contracting_users_email = [] - for user in User.objects.filter(groups__name=CONTRACTING_GROUP_NAME): + for user in User.objects.contracting(): contracting_users_email.append(user.email) target_user_emails.extend(contracting_users_email) if FINANCE_GROUP_NAME in target_user_gps: @@ -69,7 +69,7 @@ def get_compliance_email(target_user_gps=None): target_user_emails.extend([project_settings.finance_gp_email]) else: finance_users_email = [] - for user in User.objects.filter(groups__name=FINANCE_GROUP_NAME): + for user in User.objects.finances(): finance_users_email.append(user.email) target_user_emails.extend(finance_users_email) if STAFF_GROUP_NAME in target_user_gps: @@ -77,7 +77,7 @@ def get_compliance_email(target_user_gps=None): target_user_emails.extend([project_settings.staff_gp_email]) else: staff_users_email = [] - for user in User.objects.filter(groups__name=STAFF_GROUP_NAME): + for user in User.objects.staff(): staff_users_email.append(user.email) target_user_emails.extend(staff_users_email) return target_user_emails diff --git a/hypha/apply/users/models.py b/hypha/apply/users/models.py index 03c876ed1..53de8e2b1 100644 --- a/hypha/apply/users/models.py +++ b/hypha/apply/users/models.py @@ -3,7 +3,6 @@ from django.contrib.auth.hashers import make_password from django.contrib.auth.models import AbstractUser, BaseUserManager, Group from django.core import exceptions from django.db import IntegrityError, models -from django.db.models import Q from django.db.models.constants import LOOKUP_SEP from django.db.models.utils import resolve_callables from django.urls import reverse @@ -29,9 +28,7 @@ from .utils import get_user_by_email, is_user_already_registered, send_activatio class UserQuerySet(models.QuerySet): def staff(self): - return self.filter( - Q(groups__name=STAFF_GROUP_NAME, is_active=True) | Q(is_superuser=True, is_active=True) - ).distinct() + return self.filter(groups__name=STAFF_GROUP_NAME, is_active=True) def staff_admin(self): return self.filter(groups__name=TEAMADMIN_GROUP_NAME, is_active=True) @@ -51,6 +48,9 @@ class UserQuerySet(models.QuerySet): def approvers(self): return self.filter(groups__name=APPROVER_GROUP_NAME, is_active=True) + def finances(self): + return self.filter(groups__name=FINANCE_GROUP_NAME, is_active=True) + def finances_level_1(self): return self.filter(groups__name=FINANCE_GROUP_NAME, is_active=True).exclude(groups__name=APPROVER_GROUP_NAME) -- GitLab