From c99a2d735aeeeccdf4f4768a2e9c71396b4f8801 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Thu, 21 Nov 2024 19:08:42 +0530 Subject: [PATCH 1/2] chore: restrict notifications --- apiserver/plane/bgtasks/notification_task.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apiserver/plane/bgtasks/notification_task.py b/apiserver/plane/bgtasks/notification_task.py index 49dc46cb6cf..e4a54172999 100644 --- a/apiserver/plane/bgtasks/notification_task.py +++ b/apiserver/plane/bgtasks/notification_task.py @@ -16,6 +16,7 @@ IssueComment, IssueActivity, UserNotificationPreference, + ProjectMember ) # Third Party imports @@ -94,6 +95,8 @@ def extract_mentions_as_subscribers(project_id, issue_id, mentions): ).exists() and not Issue.objects.filter( project_id=project_id, pk=issue_id, created_by_id=mention_id + ).exists() and ProjectMember.objects.filter( + project_id=project_id, member_id=mention_id, is_active=True ).exists() ): project = Project.objects.get(pk=project_id) @@ -243,6 +246,10 @@ def notifications( new_mentions = get_new_mentions( requested_instance=requested_data, current_instance=current_instance ) + new_mentions = list(ProjectMember.objects.filter( + project_id=project_id, member_id__in=new_mentions, is_active=True + ).values_list("member_id", flat=True)) + new_mentions = [str(member_id) for member_id in new_mentions] removed_mention = get_removed_mentions( requested_instance=requested_data, current_instance=current_instance ) @@ -286,7 +293,7 @@ def notifications( # ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # issue_subscribers = list( - IssueSubscriber.objects.filter(project_id=project_id, issue_id=issue_id) + IssueSubscriber.objects.filter(project_id=project_id, issue_id=issue_id, project__project_projectmember__is_active=True,) .exclude( subscriber_id__in=list(new_mentions + comment_mentions + [actor_id]) ) From b970a35f139cb0c50e8fd87e6fccc2cecc2c5d3b Mon Sep 17 00:00:00 2001 From: gurusainath Date: Thu, 21 Nov 2024 20:36:00 +0530 Subject: [PATCH 2/2] chore: handled the issue filter duplicates --- apiserver/plane/utils/issue_filters.py | 1 + 1 file changed, 1 insertion(+) diff --git a/apiserver/plane/utils/issue_filters.py b/apiserver/plane/utils/issue_filters.py index 01b2024e4aa..1c9619890c3 100644 --- a/apiserver/plane/utils/issue_filters.py +++ b/apiserver/plane/utils/issue_filters.py @@ -185,6 +185,7 @@ def filter_labels(params, issue_filter, method, prefix=""): and params.get("labels") != "null" ): issue_filter[f"{prefix}labels__in"] = params.get("labels") + issue_filter[f"{prefix}label_issue__deleted_at__isnull"] = True return issue_filter