Skip to content

Commit

Permalink
Merge pull request #7571 from sbrunner/groups
Browse files Browse the repository at this point in the history
[server] Fix the Access control in the WMS groups
  • Loading branch information
sbrunner committed Aug 15, 2018
2 parents 0ddbb3f + 24f97f0 commit 21f9430
Show file tree
Hide file tree
Showing 14 changed files with 5,481 additions and 1,388 deletions.
4 changes: 0 additions & 4 deletions .ci/travis/linux/blacklist.txt
Expand Up @@ -22,12 +22,8 @@ qgis_ziplayertest
# Flaky, see https://dash.orfeo-toolbox.org/testDetails.php?test=63061783&build=297405
PyQgsSpatialiteProvider

# Flaky, see https://travis-ci.org/qgis/QGIS/jobs/297708174
PyQgsServerAccessControl

# Need a local postgres installation
PyQgsAuthManagerPKIPostgresTest
PyQgsAuthManagerPasswordPostgresTest
PyQgsAuthManagerOgrPostgresTest
PyQgsDbManagerPostgis

34 changes: 18 additions & 16 deletions src/server/services/wms/qgswmsrenderer.cpp
Expand Up @@ -330,18 +330,16 @@ namespace QgsWms
bool updateMapExtent = mWmsParameters.bbox().isEmpty();
Q_FOREACH ( QgsMapLayer *layer, layers )
{
checkLayerReadPermissions( layer );

Q_FOREACH ( QgsWmsParametersLayer param, params )
{
if ( param.mNickname == layerNickname( *layer ) )
{
checkLayerReadPermissions( layer );

setLayerOpacity( layer, param.mOpacity );

setLayerFilter( layer, param.mFilter );

setLayerAccessControlFilter( layer );

setLayerSelection( layer, param.mSelection );

if ( updateMapExtent )
Expand All @@ -350,6 +348,8 @@ namespace QgsWms
break;
}
}

setLayerAccessControlFilter( layer );
}

// add highlight layers above others
Expand Down Expand Up @@ -679,18 +679,16 @@ namespace QgsWms
bool updateMapExtent = mWmsParameters.bbox().isEmpty();
Q_FOREACH ( QgsMapLayer *layer, layers )
{
checkLayerReadPermissions( layer );

Q_FOREACH ( QgsWmsParametersLayer param, params )
{
if ( param.mNickname == layerNickname( *layer ) )
{
checkLayerReadPermissions( layer );

setLayerOpacity( layer, param.mOpacity );

setLayerFilter( layer, param.mFilter );

setLayerAccessControlFilter( layer );

setLayerSelection( layer, param.mSelection );

if ( updateMapExtent )
Expand All @@ -699,6 +697,8 @@ namespace QgsWms
break;
}
}

setLayerAccessControlFilter( layer );
}

// add highlight layers above others
Expand Down Expand Up @@ -781,21 +781,23 @@ namespace QgsWms
continue;
if ( !wfsLayerIds.contains( layer->id() ) )
continue;

checkLayerReadPermissions( layer );

Q_FOREACH ( QgsWmsParametersLayer param, params )
{
if ( param.mNickname == layerNickname( *layer ) )
{
checkLayerReadPermissions( layer );

setLayerOpacity( layer, param.mOpacity );

setLayerFilter( layer, param.mFilter );

setLayerAccessControlFilter( layer );

break;
}
}

setLayerAccessControlFilter( layer );

// cast for dxf layers
QgsVectorLayer *vlayer = static_cast<QgsVectorLayer *>( layer );

Expand Down Expand Up @@ -951,19 +953,19 @@ namespace QgsWms

Q_FOREACH ( QgsMapLayer *layer, layers )
{
checkLayerReadPermissions( layer );

Q_FOREACH ( QgsWmsParametersLayer param, params )
{
if ( param.mNickname == layerNickname( *layer ) )
{
checkLayerReadPermissions( layer );

setLayerFilter( layer, param.mFilter );

setLayerAccessControlFilter( layer );

break;
}
}

setLayerAccessControlFilter( layer );
}

// add layers to map settings (revert order for the rendering)
Expand Down
6 changes: 5 additions & 1 deletion tests/src/python/CMakeLists.txt
Expand Up @@ -263,7 +263,11 @@ IF (WITH_SERVER)
ADD_PYTHON_TEST(PyQgsServerSettings test_qgsserver_settings.py)
ADD_PYTHON_TEST(PyQgsServerProjectUtils test_qgsserver_projectutils.py)
ADD_PYTHON_TEST(PyQgsServerSecurity test_qgsserver_security.py)
ADD_PYTHON_TEST(PyQgsServerAccessControl test_qgsserver_accesscontrol.py)
ADD_PYTHON_TEST(PyQgsServerAccessControlWMS test_qgsserver_accesscontrol_wms.py)
ADD_PYTHON_TEST(PyQgsServerAccessControlWMSGetlegendgraphic test_qgsserver_accesscontrol_wms_getlegendgraphic.py)
ADD_PYTHON_TEST(PyQgsServerAccessControlWFS test_qgsserver_accesscontrol_wfs.py)
ADD_PYTHON_TEST(PyQgsServerAccessControlWCS test_qgsserver_accesscontrol_wcs.py)
ADD_PYTHON_TEST(PyQgsServerAccessControlWFSTransactional test_qgsserver_accesscontrol_wfs_transactional.py)
ADD_PYTHON_TEST(PyQgsServerWFS test_qgsserver_wfs.py)
ADD_PYTHON_TEST(PyQgsServerWFST test_qgsserver_wfst.py)
ADD_PYTHON_TEST(PyQgsOfflineEditingWFS test_offline_editing_wfs.py)
Expand Down

0 comments on commit 21f9430

Please sign in to comment.