Skip to content

Commit d20b2a8

Browse files
committed
[BUGFIX][QGIS Server] Apply filter element
1 parent fca3dc2 commit d20b2a8

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
@@ -657,6 +657,22 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
657657
{
658658
throw QgsMapServiceException( "RequestNotWellFormed", filter->parserErrorString() );
659659
}
660+
QgsFeatureRequest req;
661+
req.setFlags( QgsFeatureRequest::ExactIntersect | ( mWithGeom ? QgsFeatureRequest::NoFlags : QgsFeatureRequest::NoGeometry ) );
662+
req.setFilterExpression( filter->expression() );
663+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
664+
mAccessControl->filterFeatures( layer, req );
665+
666+
QStringList attributes = QStringList();
667+
Q_FOREACH ( int idx, attrIndexes )
668+
{
669+
attributes.append( layer->pendingFields().field( idx ).name() );
670+
}
671+
req.setSubsetOfAttributes(
672+
mAccessControl->layerAttributes( layer, attributes ),
673+
layer->pendingFields() );
674+
#endif
675+
QgsFeatureIterator fit = layer->getFeatures( req );
660676
while ( fit.nextFeature( feature ) && ( !hasFeatureLimit || featureCounter < maxFeatures + startIndex ) )
661677
{
662678
expressionContext.setFeature( feature );

0 commit comments

Comments
 (0)