Skip to content

Commit 24f97f0

Browse files
committed
Fix the Access control in the WMS groups
- Reactivate the tests - Split the tests in more then one file - Add WMS groups tests - Use standard test font
1 parent 29ccd1a commit 24f97f0

14 files changed

+5481
-1388
lines changed

.ci/travis/linux/blacklist.txt

-4
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,8 @@ qgis_ziplayertest
2222
# Flaky, see https://dash.orfeo-toolbox.org/testDetails.php?test=63061783&build=297405
2323
PyQgsSpatialiteProvider
2424

25-
# Flaky, see https://travis-ci.org/qgis/QGIS/jobs/297708174
26-
PyQgsServerAccessControl
27-
2825
# Need a local postgres installation
2926
PyQgsAuthManagerPKIPostgresTest
3027
PyQgsAuthManagerPasswordPostgresTest
3128
PyQgsAuthManagerOgrPostgresTest
3229
PyQgsDbManagerPostgis
33-

src/server/services/wms/qgswmsrenderer.cpp

+18-16
Original file line numberDiff line numberDiff line change
@@ -330,18 +330,16 @@ namespace QgsWms
330330
bool updateMapExtent = mWmsParameters.bbox().isEmpty();
331331
Q_FOREACH ( QgsMapLayer *layer, layers )
332332
{
333+
checkLayerReadPermissions( layer );
334+
333335
Q_FOREACH ( QgsWmsParametersLayer param, params )
334336
{
335337
if ( param.mNickname == layerNickname( *layer ) )
336338
{
337-
checkLayerReadPermissions( layer );
338-
339339
setLayerOpacity( layer, param.mOpacity );
340340

341341
setLayerFilter( layer, param.mFilter );
342342

343-
setLayerAccessControlFilter( layer );
344-
345343
setLayerSelection( layer, param.mSelection );
346344

347345
if ( updateMapExtent )
@@ -350,6 +348,8 @@ namespace QgsWms
350348
break;
351349
}
352350
}
351+
352+
setLayerAccessControlFilter( layer );
353353
}
354354

355355
// add highlight layers above others
@@ -679,18 +679,16 @@ namespace QgsWms
679679
bool updateMapExtent = mWmsParameters.bbox().isEmpty();
680680
Q_FOREACH ( QgsMapLayer *layer, layers )
681681
{
682+
checkLayerReadPermissions( layer );
683+
682684
Q_FOREACH ( QgsWmsParametersLayer param, params )
683685
{
684686
if ( param.mNickname == layerNickname( *layer ) )
685687
{
686-
checkLayerReadPermissions( layer );
687-
688688
setLayerOpacity( layer, param.mOpacity );
689689

690690
setLayerFilter( layer, param.mFilter );
691691

692-
setLayerAccessControlFilter( layer );
693-
694692
setLayerSelection( layer, param.mSelection );
695693

696694
if ( updateMapExtent )
@@ -699,6 +697,8 @@ namespace QgsWms
699697
break;
700698
}
701699
}
700+
701+
setLayerAccessControlFilter( layer );
702702
}
703703

704704
// add highlight layers above others
@@ -781,21 +781,23 @@ namespace QgsWms
781781
continue;
782782
if ( !wfsLayerIds.contains( layer->id() ) )
783783
continue;
784+
785+
checkLayerReadPermissions( layer );
786+
784787
Q_FOREACH ( QgsWmsParametersLayer param, params )
785788
{
786789
if ( param.mNickname == layerNickname( *layer ) )
787790
{
788-
checkLayerReadPermissions( layer );
789-
790791
setLayerOpacity( layer, param.mOpacity );
791792

792793
setLayerFilter( layer, param.mFilter );
793794

794-
setLayerAccessControlFilter( layer );
795-
796795
break;
797796
}
798797
}
798+
799+
setLayerAccessControlFilter( layer );
800+
799801
// cast for dxf layers
800802
QgsVectorLayer *vlayer = static_cast<QgsVectorLayer *>( layer );
801803

@@ -951,19 +953,19 @@ namespace QgsWms
951953

952954
Q_FOREACH ( QgsMapLayer *layer, layers )
953955
{
956+
checkLayerReadPermissions( layer );
957+
954958
Q_FOREACH ( QgsWmsParametersLayer param, params )
955959
{
956960
if ( param.mNickname == layerNickname( *layer ) )
957961
{
958-
checkLayerReadPermissions( layer );
959-
960962
setLayerFilter( layer, param.mFilter );
961963

962-
setLayerAccessControlFilter( layer );
963-
964964
break;
965965
}
966966
}
967+
968+
setLayerAccessControlFilter( layer );
967969
}
968970

969971
// add layers to map settings (revert order for the rendering)

tests/src/python/CMakeLists.txt

+5-1
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,11 @@ IF (WITH_SERVER)
263263
ADD_PYTHON_TEST(PyQgsServerSettings test_qgsserver_settings.py)
264264
ADD_PYTHON_TEST(PyQgsServerProjectUtils test_qgsserver_projectutils.py)
265265
ADD_PYTHON_TEST(PyQgsServerSecurity test_qgsserver_security.py)
266-
ADD_PYTHON_TEST(PyQgsServerAccessControl test_qgsserver_accesscontrol.py)
266+
ADD_PYTHON_TEST(PyQgsServerAccessControlWMS test_qgsserver_accesscontrol_wms.py)
267+
ADD_PYTHON_TEST(PyQgsServerAccessControlWMSGetlegendgraphic test_qgsserver_accesscontrol_wms_getlegendgraphic.py)
268+
ADD_PYTHON_TEST(PyQgsServerAccessControlWFS test_qgsserver_accesscontrol_wfs.py)
269+
ADD_PYTHON_TEST(PyQgsServerAccessControlWCS test_qgsserver_accesscontrol_wcs.py)
270+
ADD_PYTHON_TEST(PyQgsServerAccessControlWFSTransactional test_qgsserver_accesscontrol_wfs_transactional.py)
267271
ADD_PYTHON_TEST(PyQgsServerWFS test_qgsserver_wfs.py)
268272
ADD_PYTHON_TEST(PyQgsServerWFST test_qgsserver_wfst.py)
269273
ADD_PYTHON_TEST(PyQgsOfflineEditingWFS test_offline_editing_wfs.py)

0 commit comments

Comments
 (0)