docs: private static boolean criteriaListForcesUserLimitation(Set<String> userAndGroupIds, List<QueryCriteria> criteriaList) {
          boolean userLimitiationIntersection = false;
  
          if( criteriaList.isEmpty() ) {
              return false;
          }
          for( QueryCriteria criteria : criteriaList ) {
            if( criteria.isUnion() && criteriaList.size() > 1) {
                return false;
            }
            if( criteria.isGroupCriteria() ) {
                if( criteriaListForcesUserLimitation(userAndGroupIds, criteria.getCriteria()) ) {
                    return true;
                }
                continue;
            }
            // intersection criteria
            if( taskUserRoleLimitingListIds.contains(criteria.getListId()) ) {
                for( Object param : criteria.getParameters() ) {
                    if( userAndGroupIds.contains(param) )  {
                        return true;
                    }
                }
            }
          }
          return userLimitiationIntersection;
      }