@Override public FilterFieldExpression filterByGlobalRead() {return delegate.filterByGlobalRead();}
authorizationSubjectsPredicate, FIELD_EXPRESSION_FACTORY.filterByGlobalRead()); final Criteria aclFieldCriteria = createCriteria(isSudo, CRITERIA_FACTORY, authorizationSubjectsPredicate, FIELD_EXPRESSION_FACTORY.filterByAcl());
authorizationSubjectsPredicate, FIELD_EXPRESSION_FACTORY.filterByGlobalRead()); final Criteria aclFieldCriteria = createCriteria(isSudo, CRITERIA_FACTORY, authorizationSubjectsPredicate, FIELD_EXPRESSION_FACTORY.filterByAcl());
private Criteria parseCriteriaWithAuthorization(final ThingSearchQueryCommand<?> command) { final Criteria criteria; final DittoHeaders dittoHeaders = command.getDittoHeaders(); final Set<String> namespaces = command.getNamespaces().orElse(null); final String filter = command.getFilter().orElse(null); final List<String> subjectIds = dittoHeaders.getAuthorizationContext().getAuthorizationSubjectIds(); if (V_1 == command.getImplementedSchemaVersion()) { if (namespaces == null) { criteria = queryFilterCriteriaFactory.filterCriteriaRestrictedByAcl(filter, dittoHeaders, subjectIds); } else { criteria = queryFilterCriteriaFactory.filterCriteriaRestrictedByAclAndNamespaces( filter, dittoHeaders, subjectIds, namespaces); } } else { final CriteriaFactory cf = queryFilterCriteriaFactory.getCriteriaFactory(); final Predicate subjectPredicate = cf.in(subjectIds); final Criteria globalReadsCriteria = cf.fieldCriteria(fieldExpressionFactory.filterByGlobalRead(), subjectPredicate); final Criteria aclCriteria = cf.fieldCriteria(fieldExpressionFactory.filterByAcl(), subjectPredicate); final Criteria authorizationCriteria = cf.or(Arrays.asList(globalReadsCriteria, aclCriteria)); final Criteria filterCriteria = namespaces == null ? queryFilterCriteriaFactory.filterCriteria(filter, dittoHeaders) : queryFilterCriteriaFactory.filterCriteriaRestrictedByNamespaces(filter, dittoHeaders, namespaces); criteria = cf.and(Arrays.asList(authorizationCriteria, filterCriteria)); } return criteria; }
private Criteria parseCriteriaWithAuthorization(final ThingSearchQueryCommand<?> command) { final Criteria criteria; final DittoHeaders dittoHeaders = command.getDittoHeaders(); final Set<String> namespaces = command.getNamespaces().orElse(null); final String filter = command.getFilter().orElse(null); final List<String> subjectIds = dittoHeaders.getAuthorizationContext().getAuthorizationSubjectIds(); if (V_1 == command.getImplementedSchemaVersion()) { if (namespaces == null) { criteria = queryFilterCriteriaFactory.filterCriteriaRestrictedByAcl(filter, dittoHeaders, subjectIds); } else { criteria = queryFilterCriteriaFactory.filterCriteriaRestrictedByAclAndNamespaces( filter, dittoHeaders, subjectIds, namespaces); } } else { final CriteriaFactory cf = queryFilterCriteriaFactory.getCriteriaFactory(); final Predicate subjectPredicate = cf.in(subjectIds); final Criteria globalReadsCriteria = cf.fieldCriteria(fieldExpressionFactory.filterByGlobalRead(), subjectPredicate); final Criteria aclCriteria = cf.fieldCriteria(fieldExpressionFactory.filterByAcl(), subjectPredicate); final Criteria authorizationCriteria = cf.or(Arrays.asList(globalReadsCriteria, aclCriteria)); final Criteria filterCriteria = namespaces == null ? queryFilterCriteriaFactory.filterCriteria(filter, dittoHeaders) : queryFilterCriteriaFactory.filterCriteriaRestrictedByNamespaces(filter, dittoHeaders, namespaces); criteria = cf.and(Arrays.asList(authorizationCriteria, filterCriteria)); } return criteria; }