Skip to content

Commit 47fba32

Browse files
committedApr 3, 2019
Fix build without HAVE_SERVER_PYTHON_PLUGINS
1 parent 80a4fc9 commit 47fba32

16 files changed

+126
-79
lines changed
 

‎src/server/qgsserverinterfaceimpl.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ QgsServerInterfaceImpl::QgsServerInterfaceImpl( QgsCapabilitiesCache *capCache,
2929
mRequestHandler = nullptr;
3030
#ifdef HAVE_SERVER_PYTHON_PLUGINS
3131
mAccessControls = new QgsAccessControl();
32-
mCacheManager.reset( new QgsServerCacheManager() );
32+
mCacheManager = new QgsServerCacheManager();
3333
#endif
3434
}
3535

@@ -43,7 +43,7 @@ QgsServerInterfaceImpl::~QgsServerInterfaceImpl()
4343
{
4444
#ifdef HAVE_SERVER_PYTHON_PLUGINS
4545
delete mAccessControls;
46-
mCacheManager.reset();
46+
delete mCacheManager;
4747
#endif
4848
}
4949

@@ -97,7 +97,7 @@ void QgsServerInterfaceImpl::registerServerCache( QgsServerCacheFilter *serverCa
9797

9898
QgsServerCacheManager *QgsServerInterfaceImpl::cacheManager() const
9999
{
100-
return mCacheManager.get();
100+
return mCacheManager;
101101
}
102102

103103
void QgsServerInterfaceImpl::removeConfigCacheEntry( const QString &path )

‎src/server/qgsserverinterfaceimpl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class SERVER_EXPORT QgsServerInterfaceImpl : public QgsServerInterface
9292
QString mConfigFilePath;
9393
QgsServerFiltersMap mFilters;
9494
QgsAccessControl *mAccessControls = nullptr;
95-
std::unique_ptr<QgsServerCacheManager> mCacheManager = nullptr;
95+
QgsServerCacheManager *mCacheManager = nullptr;
9696
QgsCapabilitiesCache *mCapabilitiesCache = nullptr;
9797
QgsRequestHandler *mRequestHandler = nullptr;
9898
QgsServiceRegistry *mServiceRegistry = nullptr;

‎src/server/services/wcs/qgswcsdescribecoverage.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ namespace QgsWcs
4343
QgsServerCacheManager *cacheManager = nullptr;
4444
#ifdef HAVE_SERVER_PYTHON_PLUGINS
4545
cacheManager = serverIface->cacheManager();
46-
#endif
4746
if ( cacheManager && cacheManager->getCachedDocument( &doc, project, request, accessControl ) )
4847
{
4948
describeDocument = &doc;
@@ -58,7 +57,9 @@ namespace QgsWcs
5857
}
5958
describeDocument = &doc;
6059
}
61-
60+
#else
61+
doc = createDescribeCoverageDocument( serverIface, project, version, request );
62+
#endif
6263
response.setHeader( "Content-Type", "text/xml; charset=utf-8" );
6364
response.write( describeDocument->toByteArray() );
6465
}

‎src/server/services/wcs/qgswcsgetcapabilities.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ namespace QgsWcs
4242
QgsServerCacheManager *cacheManager = nullptr;
4343
#ifdef HAVE_SERVER_PYTHON_PLUGINS
4444
cacheManager = serverIface->cacheManager();
45-
#endif
4645
if ( cacheManager && cacheManager->getCachedDocument( &doc, project, request, accessControl ) )
4746
{
4847
capabilitiesDocument = &doc;
@@ -57,7 +56,9 @@ namespace QgsWcs
5756
}
5857
capabilitiesDocument = &doc;
5958
}
60-
59+
#else
60+
doc = createGetCapabilitiesDocument( serverIface, project, version, request );
61+
#endif
6162
response.setHeader( QStringLiteral( "Content-Type" ), QStringLiteral( "text/xml; charset=utf-8" ) );
6263
response.write( capabilitiesDocument->toByteArray() );
6364
}

‎src/server/services/wfs/qgswfsdescribefeaturetype.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ namespace QgsWfs
4444
QgsServerCacheManager *cacheManager = nullptr;
4545
#ifdef HAVE_SERVER_PYTHON_PLUGINS
4646
cacheManager = serverIface->cacheManager();
47-
#endif
4847
if ( cacheManager && cacheManager->getCachedDocument( &doc, project, request, accessControl ) )
4948
{
5049
describeDocument = &doc;
@@ -59,7 +58,9 @@ namespace QgsWfs
5958
}
6059
describeDocument = &doc;
6160
}
62-
61+
#else
62+
doc = createDescribeFeatureTypeDocument( serverIface, project, version, request );
63+
#endif
6364
response.setHeader( "Content-Type", "text/xml; charset=utf-8" );
6465
response.write( describeDocument->toByteArray() );
6566
}
@@ -152,7 +153,7 @@ namespace QgsWfs
152153
{
153154
continue;
154155
}
155-
156+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
156157
if ( accessControl && !accessControl->layerReadPermission( layer ) )
157158
{
158159
if ( !typeNameList.isEmpty() )
@@ -164,7 +165,7 @@ namespace QgsWfs
164165
continue;
165166
}
166167
}
167-
168+
#endif
168169
QgsVectorLayer *vLayer = qobject_cast<QgsVectorLayer *>( layer );
169170
QgsVectorDataProvider *provider = vLayer->dataProvider();
170171
if ( !provider )

‎src/server/services/wfs/qgswfsgetcapabilities.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ namespace QgsWfs
4848
QgsServerCacheManager *cacheManager = nullptr;
4949
#ifdef HAVE_SERVER_PYTHON_PLUGINS
5050
cacheManager = serverIface->cacheManager();
51-
#endif
5251
if ( cacheManager && cacheManager->getCachedDocument( &doc, project, request, accessControl ) )
5352
{
5453
capabilitiesDocument = &doc;
@@ -63,7 +62,9 @@ namespace QgsWfs
6362
}
6463
capabilitiesDocument = &doc;
6564
}
66-
65+
#else
66+
doc = createGetCapabilitiesDocument( serverIface, project, version, request );
67+
#endif
6768
response.setHeader( QStringLiteral( "Content-Type" ), QStringLiteral( "text/xml; charset=utf-8" ) );
6869
response.write( capabilitiesDocument->toByteArray() );
6970
}
@@ -458,11 +459,12 @@ namespace QgsWfs
458459
{
459460
continue;
460461
}
462+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
461463
if ( accessControl && !accessControl->layerReadPermission( layer ) )
462464
{
463465
continue;
464466
}
465-
467+
#endif
466468
QDomElement layerElem = doc.createElement( QStringLiteral( "FeatureType" ) );
467469

468470
//create Name

‎src/server/services/wfs/qgswfsgetcapabilities_1_0_0.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ namespace QgsWfs
4949
QgsServerCacheManager *cacheManager = nullptr;
5050
#ifdef HAVE_SERVER_PYTHON_PLUGINS
5151
cacheManager = serverIface->cacheManager();
52-
#endif
5352
if ( cacheManager && cacheManager->getCachedDocument( &doc, project, request, accessControl ) )
5453
{
5554
capabilitiesDocument = &doc;
@@ -64,7 +63,9 @@ namespace QgsWfs
6463
}
6564
capabilitiesDocument = &doc;
6665
}
67-
66+
#else
67+
doc = createGetCapabilitiesDocument( serverIface, project, version, request );
68+
#endif
6869
response.setHeader( QStringLiteral( "Content-Type" ), QStringLiteral( "text/xml; charset=utf-8" ) );
6970
response.write( capabilitiesDocument->toByteArray() );
7071
}
@@ -294,11 +295,12 @@ namespace QgsWfs
294295
{
295296
continue;
296297
}
298+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
297299
if ( accessControl && !accessControl->layerReadPermission( layer ) )
298300
{
299301
continue;
300302
}
301-
303+
#endif
302304
QDomElement layerElem = doc.createElement( QStringLiteral( "FeatureType" ) );
303305

304306
//create Name

‎src/server/services/wfs/qgswfsgetfeature.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,11 @@ namespace QgsWfs
179179

180180
QgsAccessControl *accessControl = serverIface->accessControls();
181181

182+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
182183
//scoped pointer to restore all original layer filters (subsetStrings) when pointer goes out of scope
183184
//there's LOTS of potential exit paths here, so we avoid having to restore the filters manually
184185
std::unique_ptr< QgsOWSServerFilterRestorer > filterRestorer( new QgsOWSServerFilterRestorer() );
186+
#endif
185187

186188
// features counters
187189
long sentFeatures = 0;
@@ -200,11 +202,12 @@ namespace QgsWfs
200202
}
201203

202204
QgsMapLayer *layer = mapLayerMap[typeName];
205+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
203206
if ( accessControl && !accessControl->layerReadPermission( layer ) )
204207
{
205208
throw QgsSecurityAccessException( QStringLiteral( "Feature access permission denied" ) );
206209
}
207-
210+
#endif
208211
QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( layer );
209212
if ( !vlayer )
210213
{
@@ -217,12 +220,12 @@ namespace QgsWfs
217220
{
218221
throw QgsRequestNotWellFormedException( QStringLiteral( "TypeName '%1' layer's provider error" ).arg( typeName ) );
219222
}
220-
223+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
221224
if ( accessControl )
222225
{
223226
QgsOWSServerFilterRestorer::applyAccessControlLayerFilters( accessControl, vlayer, filterRestorer->originalFilters() );
224227
}
225-
228+
#endif
226229
//is there alias info for this vector layer?
227230
QMap< int, QString > layerAliasInfo;
228231
QgsStringMap aliasMap = vlayer->attributeAliases();
@@ -312,7 +315,7 @@ namespace QgsWfs
312315
featureRequest.setFlags( featureRequest.flags() | ( withGeom ? QgsFeatureRequest::NoFlags : QgsFeatureRequest::NoGeometry ) );
313316
// subset of attributes
314317
featureRequest.setSubsetOfAttributes( attrIndexes );
315-
318+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
316319
if ( accessControl )
317320
{
318321
accessControl->filterFeatures( vlayer, featureRequest );
@@ -326,7 +329,7 @@ namespace QgsWfs
326329
accessControl->layerAttributes( vlayer, attributes ),
327330
vlayer->fields() );
328331
}
329-
332+
#endif
330333
if ( onlyOneLayer )
331334
{
332335
requestPrecision = QgsServerProjectUtils::wfsLayerPrecision( *project, vlayer->id() );

‎src/server/services/wfs/qgswfstransaction.cpp

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ namespace QgsWfs
299299
{
300300
throw QgsSecurityAccessException( QStringLiteral( "No permissions to do WFS changes on layer '%1'" ).arg( name ) );
301301
}
302+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
302303
if ( accessControl && !accessControl->layerUpdatePermission( vlayer )
303304
&& !accessControl->layerDeletePermission( vlayer ) && !accessControl->layerInsertPermission( vlayer ) )
304305
{
@@ -309,7 +310,7 @@ namespace QgsWfs
309310
{
310311
QgsOWSServerFilterRestorer::applyAccessControlLayerFilters( accessControl, vlayer, filterRestorer->originalFilters() );
311312
}
312-
313+
#endif
313314
// store layers
314315
mapLayerMap[name] = vlayer;
315316
}
@@ -338,13 +339,14 @@ namespace QgsWfs
338339
action.errorMsg = QStringLiteral( "No permissions to do WFS updates on layer '%1'" ).arg( typeName );
339340
continue;
340341
}
342+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
341343
if ( accessControl && !accessControl->layerUpdatePermission( vlayer ) )
342344
{
343345
action.error = true;
344346
action.errorMsg = QStringLiteral( "No permissions to do WFS updates on layer '%1'" ).arg( typeName );
345347
continue;
346348
}
347-
349+
#endif
348350
//get provider
349351
QgsVectorDataProvider *provider = vlayer->dataProvider();
350352

@@ -368,12 +370,12 @@ namespace QgsWfs
368370
<< QgsExpressionContextUtils::projectScope( project )
369371
<< QgsExpressionContextUtils::layerScope( vlayer );
370372
featureRequest.setExpressionContext( expressionContext );
371-
373+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
372374
if ( accessControl )
373375
{
374376
accessControl->filterFeatures( vlayer, featureRequest );
375377
}
376-
378+
#endif
377379
// get iterator
378380
QgsFeatureIterator fit = vlayer->getFeatures( featureRequest );
379381
QgsFeature feature;
@@ -390,13 +392,15 @@ namespace QgsWfs
390392
// Update the features
391393
while ( fit.nextFeature( feature ) )
392394
{
395+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
393396
if ( accessControl && !accessControl->allowToEdit( vlayer, feature ) )
394397
{
395398
action.error = true;
396399
action.errorMsg = QStringLiteral( "Feature modify permission denied on layer '%1'" ).arg( typeName );
397400
vlayer->rollBack();
398401
break;
399402
}
403+
#endif
400404
QMap< QString, QString >::const_iterator it = propertyMap.constBegin();
401405
for ( ; it != propertyMap.constEnd(); ++it )
402406
{
@@ -485,6 +489,7 @@ namespace QgsWfs
485489
{
486490
continue;
487491
}
492+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
488493
// verifying changes
489494
if ( accessControl )
490495
{
@@ -500,6 +505,7 @@ namespace QgsWfs
500505
}
501506
}
502507
}
508+
#endif
503509
if ( action.error )
504510
{
505511
continue;
@@ -543,13 +549,14 @@ namespace QgsWfs
543549
action.errorMsg = QStringLiteral( "No permissions to do WFS deletes on layer '%1'" ).arg( typeName );
544550
continue;
545551
}
552+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
546553
if ( accessControl && !accessControl->layerDeletePermission( vlayer ) )
547554
{
548555
action.error = true;
549556
action.errorMsg = QStringLiteral( "No permissions to do WFS deletes on layer '%1'" ).arg( typeName );
550557
continue;
551558
}
552-
559+
#endif
553560
//get provider
554561
QgsVectorDataProvider *provider = vlayer->dataProvider();
555562

@@ -581,13 +588,15 @@ namespace QgsWfs
581588
QgsFeatureIds fids;
582589
while ( fit.nextFeature( feature ) )
583590
{
591+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
584592
if ( accessControl && !accessControl->allowToEdit( vlayer, feature ) )
585593
{
586594
action.error = true;
587595
action.errorMsg = QStringLiteral( "Feature modify permission denied" );
588596
vlayer->rollBack();
589597
break;
590598
}
599+
#endif
591600
fids << feature.id();
592601
}
593602
if ( action.error )
@@ -640,13 +649,14 @@ namespace QgsWfs
640649
action.errorMsg = QStringLiteral( "No permissions to do WFS inserts on layer '%1'" ).arg( typeName );
641650
continue;
642651
}
652+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
643653
if ( accessControl && !accessControl->layerDeletePermission( vlayer ) )
644654
{
645655
action.error = true;
646656
action.errorMsg = QStringLiteral( "No permissions to do WFS inserts on layer '%1'" ).arg( typeName );
647657
continue;
648658
}
649-
659+
#endif
650660
//get provider
651661
QgsVectorDataProvider *provider = vlayer->dataProvider();
652662

@@ -674,6 +684,7 @@ namespace QgsWfs
674684
action.errorMsg = QStringLiteral( "%1 '%2'" ).arg( ex.message() ).arg( typeName );
675685
continue;
676686
}
687+
#ifdef HAVE_SERVER_PYTHON_PLUGINS
677688
// control features
678689
if ( accessControl )
679690
{
@@ -690,6 +701,7 @@ namespace QgsWfs
690701
featureIt++;
691702
}
692703
}
704+
#endif
693705
if ( action.error )
694706
{
695707
continue;

0 commit comments

Comments
 (0)
Please sign in to comment.