@@ -2171,21 +2171,14 @@ int QgsWMSServer::featureInfoFromVectorLayer( QgsVectorLayer* layer,
2171
2171
bool hasGeometry = addWktGeometry || featureBBox;
2172
2172
fReq .setFlags ((( hasGeometry ) ? QgsFeatureRequest::NoFlags : QgsFeatureRequest::NoGeometry ) | QgsFeatureRequest::ExactIntersect );
2173
2173
2174
- #ifdef HAVE_SERVER_PYTHON_PLUGINS
2175
- mAccessControl ->filterFeatures ( layer, fReq );
2176
2174
if ( ! searchRect.isEmpty () )
2177
2175
{
2178
- if ( fReq .filterExpression () )
2179
- {
2180
- fReq .setFilterExpression ( QString ( " intersects( $geometry , geomFromWKT( '%1' ) ) AND ( %2 )" ).
2181
- arg ( searchRect.asWktPolygon (), fReq .filterExpression ()->expression () ) );
2182
- }
2183
- else
2184
- {
2185
- fReq .setFilterRect ( searchRect );
2186
- }
2176
+ fReq .setFilterRect ( searchRect );
2187
2177
}
2188
2178
2179
+ #ifdef HAVE_SERVER_PYTHON_PLUGINS
2180
+ mAccessControl ->filterFeatures ( layer, fReq );
2181
+
2189
2182
QStringList attributes;
2190
2183
QgsField field;
2191
2184
Q_FOREACH ( field, layer->pendingFields ().toList () )
@@ -2194,11 +2187,6 @@ int QgsWMSServer::featureInfoFromVectorLayer( QgsVectorLayer* layer,
2194
2187
}
2195
2188
attributes = mAccessControl ->layerAttributes ( layer, attributes );
2196
2189
fReq .setSubsetOfAttributes ( attributes, layer->pendingFields () );
2197
- #else
2198
- if ( ! searchRect.isEmpty () )
2199
- {
2200
- fReq .setFilterRect ( searchRect );
2201
- }
2202
2190
#endif
2203
2191
2204
2192
QgsFeatureIterator fit = layer->getFeatures ( fReq );
0 commit comments