Skip to content

Commit 26cfe7c

Browse files
authored
fix: program notification recipients disabled check (#21665) (#21697)
* fix: program notification recipients disabled check (#21665)
1 parent 7625161 commit 26cfe7c

2 files changed

Lines changed: 13 additions & 0 deletions

File tree

dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/notification/DefaultProgramNotificationService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,7 @@ private Set<User> resolveDhisMessageRecipients(
499499
orgUnitInHierarchy.addAll(orgUnit.getAncestors());
500500

501501
return userGroupMembers.stream()
502+
.filter(User::isEnabled)
502503
.filter(r -> orgUnitInHierarchy.contains(r.getOrganisationUnit()))
503504
.collect(Collectors.toSet());
504505

@@ -507,6 +508,7 @@ private Set<User> resolveDhisMessageRecipients(
507508
OrganisationUnit parentOrgUnit = orgUnit.getParent();
508509

509510
return userGroupMembers.stream()
511+
.filter(User::isEnabled)
510512
.filter(u -> u.getOrganisationUnit().equals(parentOrgUnit))
511513
.collect(Collectors.toSet());
512514
}
@@ -516,6 +518,9 @@ private Set<User> resolveDhisMessageRecipients(
516518
userGroupMembers.addAll(orgUnit.getUsers());
517519
}
518520

521+
// filter out all users that are disabled
522+
userGroupMembers.removeIf(User::isDisabled);
523+
519524
return userGroupMembers;
520525
}
521526

dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/notification/ProgramNotificationServiceTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ class ProgramNotificationServiceTest extends DhisConvenienceTest {
142142

143143
private User userLvlTwoLeftLeft;
144144

145+
private User userLvlTwoLeftLeftDisabled;
146+
145147
private User userLvlTwoLeftRight;
146148

147149
private User userLvlOneLeft;
@@ -607,6 +609,7 @@ void testSendToHierarchy() {
607609
assertTrue(users.contains(userLvlOneLeft));
608610
assertTrue(users.contains(userRoot));
609611

612+
assertFalse(users.contains(userLvlTwoLeftLeftDisabled));
610613
assertFalse(users.contains(userLvlTwoLeftRight));
611614
assertFalse(users.contains(userLvlOneRight));
612615
}
@@ -734,10 +737,15 @@ private void setUpInstances() {
734737
userB = makeUser("V");
735738
userB.setPhoneNumber(USERB_PHONE_NUMBER);
736739
userB.getOrganisationUnits().add(lvlTwoLeftLeft);
740+
userB.getOrganisationUnits().add(lvlOneLeft);
737741

738742
userGroup = createUserGroup('G', Sets.newHashSet(userA, userB));
739743

740744
// User based on hierarchy
745+
userLvlTwoLeftLeftDisabled = makeUser("D");
746+
userLvlTwoLeftLeftDisabled.setDisabled(true);
747+
userLvlTwoLeftLeftDisabled.getOrganisationUnits().add(lvlTwoLeftLeft);
748+
lvlTwoLeftLeft.getUsers().add(userLvlTwoLeftLeftDisabled);
741749

742750
userLvlTwoLeftLeft = makeUser("K");
743751
userLvlTwoLeftLeft.getOrganisationUnits().add(lvlTwoLeftLeft);

0 commit comments

Comments
 (0)