Skip to content

Commit 963d75f

Browse files
committed
[BUGFIX][QGIS Server] Apply filter element
1 parent 2be0f01 commit 963d75f

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/server/qgswfsserver.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,22 @@ int QgsWfsServer::getFeature( QgsRequestHandler& request, const QString& format
655655
{
656656
throw QgsMapServiceException( QStringLiteral( "RequestNotWellFormed" ), filter->parserErrorString() );
657657
}
658+
QgsFeatureRequest req;
659+
req.setFlags( QgsFeatureRequest::ExactIntersect | ( mWithGeom ? QgsFeatureRequest::NoFlags : QgsFeatureRequest::NoGeometry ) );
660+
req.setFilterExpression( filter->expression() );
661+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
662+
mAccessControl->filterFeatures( layer, req );
663+
664+
QStringList attributes = QStringList();
665+
Q_FOREACH ( int idx, attrIndexes )
666+
{
667+
attributes.append( layer->pendingFields().field( idx ).name() );
668+
}
669+
req.setSubsetOfAttributes(
670+
mAccessControl->layerAttributes( layer, attributes ),
671+
layer->pendingFields() );
672+
#endif
673+
QgsFeatureIterator fit = layer->getFeatures( req );
658674
while ( fit.nextFeature( feature ) && ( !hasFeatureLimit || featureCounter < maxFeatures + startIndex ) )
659675
{
660676
expressionContext.setFeature( feature );

0 commit comments

Comments
 (0)