@Override public FilterFieldExpression filterByAcl() {return delegate.filterByAcl();}
@Override public FilterFieldExpression filterByGlobalRead() {return delegate.filterByGlobalRead();}
@Override public ExistsFieldExpression existsBy( final String propertyName) throws IllegalArgumentException {return delegate.existsBy(propertyName);}
authorizationSubjectsPredicate, FIELD_EXPRESSION_FACTORY.filterByGlobalRead()); final Criteria aclFieldCriteria = createCriteria(isSudo, CRITERIA_FACTORY, authorizationSubjectsPredicate, FIELD_EXPRESSION_FACTORY.filterByAcl()); final List<Bson> pipeline = new ArrayList<>();
@Override public FilterFieldExpression filterByNamespace() {return delegate.filterByNamespace();}
@Override public FilterFieldExpression filterByFeatureProperty( final String featureId, final String property) { return delegate.filterByFeatureProperty(featureId, property); }
@Override public ExistsFieldExpression existsByFeatureProperty( final String featureId, final String property) { return delegate.existsByFeatureProperty(featureId, property); }
@Override public FilterFieldExpression filterByAttribute( final String key) {return delegate.filterByAttribute(key);}
@Override public ExistsFieldExpression existsByFeatureId( final String featureId) {return delegate.existsByFeatureId(featureId);}
@Override public ExistsFieldExpression existsByAttribute( final String key) {return delegate.existsByAttribute(key);}
@Override public FilterFieldExpression filterBy( final String propertyName) throws IllegalArgumentException {return delegate.filterBy(propertyName);}
authorizationSubjectsPredicate, FIELD_EXPRESSION_FACTORY.filterByGlobalRead()); final Criteria aclFieldCriteria = createCriteria(isSudo, CRITERIA_FACTORY, authorizationSubjectsPredicate, FIELD_EXPRESSION_FACTORY.filterByAcl()); final List<Bson> pipeline = new ArrayList<>();
private Criteria namespaceFilterCriteria(final Set<String> namespaces) { ConditionChecker.checkNotNull(namespaces); return criteriaFactory.fieldCriteria( fieldExpressionFactory.filterByNamespace(), criteriaFactory.in(new ArrayList<>(namespaces))); }
@Override public FilterFieldExpression filterByFeatureProperty( final String property) {return delegate.filterByFeatureProperty(property);}
@Override public ExistsFieldExpression existsByFeatureProperty( final String property) {return delegate.existsByFeatureProperty(property);}
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 aclFilterCriteria(final List<String> authorisationSubjectIds) { ConditionChecker.checkNotNull(authorisationSubjectIds); return criteriaFactory.fieldCriteria(fieldExpressionFactory.filterByAcl(), criteriaFactory.in(authorisationSubjectIds)); }
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; }