Skip to content

Commit e64d647

Browse files
committedNov 2, 2016
[BUGFIX][QGIS Server] Apply filter element
1 parent 189d8f5 commit e64d647

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

0 commit comments

Comments
 (0)
Please sign in to comment.