From 1c8f50538ce9551ff20e4a6bccc13674202dfaf8 Mon Sep 17 00:00:00 2001 From: netroms Date: Tue, 19 Aug 2025 16:32:32 +0800 Subject: [PATCH 1/2] fix: program notification recipients disabled check (#21665) * fix: program notification recipients disabled check Signed-off-by: Morten Svanaes --- .../notification/DefaultProgramNotificationService.java | 2 ++ .../notification/ProgramNotificationServiceTest.java | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java index c0096e9cb405..c15f34d2dac3 100644 --- a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java +++ b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java @@ -499,6 +499,7 @@ private Set resolveDhisMessageRecipients( orgUnitInHierarchy.addAll(orgUnit.getAncestors()); return userGroupMembers.stream() + .filter(User::isEnabled) .filter(r -> orgUnitInHierarchy.contains(r.getOrganisationUnit())) .collect(Collectors.toSet()); @@ -507,6 +508,7 @@ private Set resolveDhisMessageRecipients( OrganisationUnit parentOrgUnit = orgUnit.getParent(); return userGroupMembers.stream() + .filter(User::isEnabled) .filter(u -> u.getOrganisationUnit().equals(parentOrgUnit)) .collect(Collectors.toSet()); } diff --git a/dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/notification/ProgramNotificationServiceTest.java b/dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/notification/ProgramNotificationServiceTest.java index e39818c9de93..4413329826d2 100644 --- a/dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/notification/ProgramNotificationServiceTest.java +++ b/dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/notification/ProgramNotificationServiceTest.java @@ -142,6 +142,8 @@ class ProgramNotificationServiceTest extends DhisConvenienceTest { private User userLvlTwoLeftLeft; + private User userLvlTwoLeftLeftDisabled; + private User userLvlTwoLeftRight; private User userLvlOneLeft; @@ -607,6 +609,7 @@ void testSendToHierarchy() { assertTrue(users.contains(userLvlOneLeft)); assertTrue(users.contains(userRoot)); + assertFalse(users.contains(userLvlTwoLeftLeftDisabled)); assertFalse(users.contains(userLvlTwoLeftRight)); assertFalse(users.contains(userLvlOneRight)); } @@ -734,10 +737,15 @@ private void setUpInstances() { userB = makeUser("V"); userB.setPhoneNumber(USERB_PHONE_NUMBER); userB.getOrganisationUnits().add(lvlTwoLeftLeft); + userB.getOrganisationUnits().add(lvlOneLeft); userGroup = createUserGroup('G', Sets.newHashSet(userA, userB)); // User based on hierarchy + userLvlTwoLeftLeftDisabled = makeUser("D"); + userLvlTwoLeftLeftDisabled.setDisabled(true); + userLvlTwoLeftLeftDisabled.getOrganisationUnits().add(lvlTwoLeftLeft); + lvlTwoLeftLeft.getUsers().add(userLvlTwoLeftLeftDisabled); userLvlTwoLeftLeft = makeUser("K"); userLvlTwoLeftLeft.getOrganisationUnits().add(lvlTwoLeftLeft); From 6ffb378ea5e234f52f85cf2fda7b8a88275f5dad Mon Sep 17 00:00:00 2001 From: Morten Svanaes Date: Wed, 20 Aug 2025 01:07:23 +0800 Subject: [PATCH 2/2] fix: program notification recipients disabled check Signed-off-by: Morten Svanaes --- .../notification/DefaultProgramNotificationService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java index c15f34d2dac3..00625655eba8 100644 --- a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java +++ b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java @@ -518,6 +518,9 @@ private Set resolveDhisMessageRecipients( userGroupMembers.addAll(orgUnit.getUsers()); } + // filter out all users that are disabled + userGroupMembers.removeIf(User::isDisabled); + return userGroupMembers; }