Skip to content
Permalink
Browse files

[Server] Fix WMS GetContext accesscontrol and add tests

  • Loading branch information
rldhont committed May 25, 2017
1 parent 2480e26 commit b0268ef7b6634883d906c699d67df00d092c218e
Showing with 35 additions and 0 deletions.
  1. +6 −0 src/server/qgswmsprojectparser.cpp
  2. +29 −0 tests/src/python/test_qgsserver_accesscontrol.py
@@ -1607,6 +1607,12 @@ void QgsWMSProjectParser::addOWSLayers( QDomDocument &doc,
{
continue;
}
#ifdef HAVE_SERVER_PYTHON_PLUGINS
if ( !mAccessControl->layerReadPermission( currentLayer ) )
{
continue;
}
#endif
if ( nonIdentifiableLayers.contains( currentLayer->id() ) )
{
layerElem.setAttribute( "queryable", "false" );
@@ -29,6 +29,7 @@
import tempfile
import urllib
import base64
import re


XML_NS = \
@@ -238,6 +239,34 @@ def test_wms_getprojectsettings(self):
str(response).find("<LayerDrawingOrder>Country_Labels,dem,Hello_Filter_SubsetString,Hello_Project_SubsetString,Hello_SubsetString,Hello,db_point</LayerDrawingOrder>") != -1,
"LayerDrawingOrder in GetProjectSettings\n%s" % response)

def test_wms_getcontext(self):
query_string = "&".join(["%s=%s" % i for i in {
"MAP": urllib.quote(self.projectPath),
"SERVICE": "WMS",
"VERSION": "1.1.1",
"REQUEST": "GetContext"
}.items()])

response, headers = self._get_fullaccess(query_string)
self.assertTrue(
str(response).find("<Layer opacity=\"1\" queryable=\"true\" hidden=\"false\" id=\"Hello\" name=\"Hello\">") != -1,
"No Hello layer in GetContext\n%s" % response)
self.assertTrue(
str(response).find("<Layer opacity=\"1\" queryable=\"true\" hidden=\"false\" id=\"Country\" name=\"Country\">") != -1,
"No Country layer in GetContext\n%s" % response)
self.assertTrue(
str(response).find("<Layer opacity=\"1\" queryable=\"true\" hidden=\"false\" id=\"Country\" name=\"Country\">")
< str(response).find("<Layer opacity=\"1\" queryable=\"true\" hidden=\"false\" id=\"Hello\" name=\"Hello\">"),
"Hello layer not after Country layer\n%s" % response)

response, headers = self._get_restricted(query_string)
self.assertTrue(
str(response).find("<Layer opacity=\"1\" queryable=\"true\" hidden=\"false\" id=\"Hello\" name=\"Hello\">") != -1,
"No Hello layer in GetContext\n%s" % response)
self.assertFalse(
str(response).find("<Layer opacity=\"1\" queryable=\"true\" hidden=\"false\" id=\"Country\" name=\"Country\">") != -1,
"Country layer in GetContext\n%s" % response)

def test_wms_describelayer_hello(self):
query_string = "&".join(["%s=%s" % i for i in {
"MAP": urllib.quote(self.projectPath),

0 comments on commit b0268ef

Please sign in to comment.
You can’t perform that action at this time.