@@ -119,7 +119,7 @@ private List<User> getAllByRegionAndUserRoles(
119119 CriteriaQuery <User > cq = cb .createQuery (getElementClass ());
120120 Root <User > from = cq .from (getElementClass ());
121121
122- Predicate filter = null ;
122+ Predicate filter = createDefaultFilter ( cb , from ) ;
123123 if (region != null ) {
124124 filter = cb .equal (from .get (User .REGION ), region );
125125 }
@@ -155,6 +155,7 @@ public List<User> getInformantsOfFacility(Facility facility) {
155155 Join <User , UserRole > joinRoles = from .join (User .USER_ROLES , JoinType .LEFT );
156156
157157 Predicate filter = cb .and (
158+ createDefaultFilter (cb , from ),
158159 cb .equal (from .get (User .HEALTH_FACILITY ), facility ),
159160 joinRoles .in (
160161 Arrays .asList (
@@ -177,6 +178,7 @@ public List<User> getLabUsersOfLab(Facility facility) {
177178 Join <User , UserRole > joinRoles = from .join (User .USER_ROLES , JoinType .LEFT );
178179
179180 Predicate filter = cb .and (
181+ createDefaultFilter (cb , from ),
180182 cb .equal (from .get (User .LABORATORY ), facility ),
181183 joinRoles .in (
182184 Arrays .asList (
@@ -213,7 +215,7 @@ private List<User> getAllByDistrict(
213215 CriteriaQuery <User > cq = cb .createQuery (getElementClass ());
214216 Root <User > from = cq .from (getElementClass ());
215217
216- Predicate filter = buildDistrictFilter (cb , cq , from , district , includeSupervisors , userRoles );
218+ Predicate filter = cb . and ( createDefaultFilter ( cb , from ), buildDistrictFilter (cb , cq , from , district , includeSupervisors , userRoles ) );
217219
218220 if (createExtraFilters != null ) {
219221 filter = and (cb , filter , createExtraFilters .apply (cb , from ));
@@ -239,7 +241,7 @@ public List<User> getAllByAssociatedOfficer(User associatedOfficer, UserRole...
239241 CriteriaQuery <User > cq = cb .createQuery (getElementClass ());
240242 Root <User > from = cq .from (getElementClass ());
241243
242- Predicate filter = cb .and (cb .equal (from .get (User .ASSOCIATED_OFFICER ), associatedOfficer ));
244+ Predicate filter = cb .and (createDefaultFilter ( cb , from ), cb .equal (from .get (User .ASSOCIATED_OFFICER ), associatedOfficer ));
243245 filter = and (cb , filter , buildUserRolesFilter (from , Arrays .asList (userRoles )));
244246 cq .where (filter );
245247
@@ -248,13 +250,17 @@ public List<User> getAllByAssociatedOfficer(User associatedOfficer, UserRole...
248250 return em .createQuery (cq ).getResultList ();
249251 }
250252
251- public List <User > getAllInJurisdiction () {
253+ public List <User > getAllInJurisdiction (boolean includeInactive ) {
252254 CriteriaBuilder cb = em .getCriteriaBuilder ();
253255 CriteriaQuery <User > cq = cb .createQuery (getElementClass ());
254256 Root <User > from = cq .from (getElementClass ());
255257
256258 Predicate jurisdictionFilter = createJurisdictionFilter (cb , from );
257259
260+ if (!includeInactive ) {
261+ jurisdictionFilter = and (cb , jurisdictionFilter , createDefaultFilter (cb , from ));
262+ }
263+
258264 if (jurisdictionFilter != null ) {
259265 cq .where (jurisdictionFilter );
260266 }
@@ -270,7 +276,6 @@ public boolean isLoginUnique(String uuid, String userName) {
270276 CriteriaQuery <User > cq = cb .createQuery (getElementClass ());
271277 Root <User > from = cq .from (getElementClass ());
272278
273-
274279 Expression <String > userNameExpression = from .get (User .USER_NAME );
275280 String userNameParamValue = userName ;
276281 if (!AuthProvider .getProvider ().isUsernameCaseSensitive ()) {
@@ -401,8 +406,8 @@ private Predicate buildDistrictFilter(
401406
402407 if (includeSupervisors ) {
403408 Join <User , UserRole > joinRoles = from .join (User .USER_ROLES , JoinType .LEFT );
404- Predicate supervisorFilter =
405- joinRoles . in ( Arrays .asList (UserRole .CASE_SUPERVISOR , UserRole .CONTACT_SUPERVISOR , UserRole .SURVEILLANCE_SUPERVISOR , UserRole .ADMIN_SUPERVISOR ));
409+ Predicate supervisorFilter = joinRoles . in (
410+ Arrays .asList (UserRole .CASE_SUPERVISOR , UserRole .CONTACT_SUPERVISOR , UserRole .SURVEILLANCE_SUPERVISOR , UserRole .ADMIN_SUPERVISOR ));
406411 if (filter != null ) {
407412 filter = cb .or (filter , supervisorFilter );
408413 } else {
@@ -450,4 +455,8 @@ public boolean hasRight(UserRight right) {
450455 User currentUser = getCurrentUser ();
451456 return userRoleConfigFacade .getEffectiveUserRights (currentUser .getUserRoles ().toArray (new UserRole [0 ])).contains (right );
452457 }
458+
459+ public Predicate createDefaultFilter (CriteriaBuilder cb , From <?, User > root ) {
460+ return cb .isTrue (root .get (User .ACTIVE ));
461+ }
453462}
0 commit comments