[Mapbender-commits] r10387 - in trunk/mapbender: http/classes http_auth/http owsproxy/http
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Fri Jan 17 00:07:44 PST 2020
Author: armin11
Date: 2020-01-17 00:07:43 -0800 (Fri, 17 Jan 2020)
New Revision: 10387
Modified:
trunk/mapbender/http/classes/class_owsPostQueryParser.php
trunk/mapbender/http_auth/http/index.php
trunk/mapbender/owsproxy/http/index.php
Log:
Fix for crazy wfs 2.0.0 spec - see discusion: https://github.com/qgis/QGIS/commit/ccb4c80f8a6d2bb179258f1ffec0dc9a447ca465
Modified: trunk/mapbender/http/classes/class_owsPostQueryParser.php
===================================================================
--- trunk/mapbender/http/classes/class_owsPostQueryParser.php 2020-01-16 15:04:01 UTC (rev 10386)
+++ trunk/mapbender/http/classes/class_owsPostQueryParser.php 2020-01-17 08:07:43 UTC (rev 10387)
@@ -99,13 +99,22 @@
}
//array of requests that need typenames
$typenameRequired = array('getfeature','describefeaturetype');
+ //TODO: look for typenames only in getfeature requests!!!!!! https://github.com/qgis/QGIS/commit/ccb4c80f8a6d2bb179258f1ffec0dc9a447ca465
if (in_array(strtolower($this->serviceRequestType), $typenameRequired)) {
switch ($this->serviceVersion) {
case "2.0.0":
- $this->serviceResourceName = $queryNodeList->item(0)->getAttribute('typeNames');
+ if (strtolower($this->serviceRequestType) == 'describefeaturetype') {
+ $this->serviceResourceName = $queryNodeList->item(0)->getAttribute('typeName');
+ } else {
+ $this->serviceResourceName = $queryNodeList->item(0)->getAttribute('typeNames');
+ }
break;
case "2.0.2":
- $this->serviceResourceName = $queryNodeList->item(0)->getAttribute('typeNames');
+ if (strtolower($this->serviceRequestType) == 'describefeaturetype') {
+ $this->serviceResourceName = $queryNodeList->item(0)->getAttribute('typeName');
+ } else {
+ $this->serviceResourceName = $queryNodeList->item(0)->getAttribute('typeNames');
+ }
break;
default:
$this->serviceResourceName = $queryNodeList->item(0)->getAttribute('typeName');
Modified: trunk/mapbender/http_auth/http/index.php
===================================================================
--- trunk/mapbender/http_auth/http/index.php 2020-01-16 15:04:01 UTC (rev 10386)
+++ trunk/mapbender/http_auth/http/index.php 2020-01-17 08:07:43 UTC (rev 10387)
@@ -114,10 +114,18 @@
$typeNameParameter = "typename"; //lowercase
switch ($reqParams['version']) {
case "2.0.0":
- $typeNameParameter = "typenames";
+ if (strtolower($reqParams['request']) == 'describefeaturetype') {
+ $typeNameParameter = "typename";
+ } else {
+ $typeNameParameter = "typenames";
+ }
break;
case "2.0.2":
- $typeNameParameter = "typenames";
+ if (strtolower($reqParams['request']) == 'describefeaturetype') {
+ $typeNameParameter = "typename";
+ } else {
+ $typeNameParameter = "typenames";
+ }
break;
default:
$typeNameParameter = "typename";
@@ -447,11 +455,13 @@
}
break;
case 'getfeature':
+//$e = new mb_exception("http_auth/http/index.php - getfeature - requested features: ".$typeNameParameter.": ".json_encode($reqParams[$typeNameParameter]));
if (isset($reqParams['storedquery_id']) && $reqParams['storedquery_id'] !== "") {
$storedQueryId = $reqParams['storedquery_id'];
$arrayOnlineresources = checkWfsStoredQueryPermission($owsproxyString, $storedQueryId, $userId);
} else {
$arrayFeatures = array($reqParams[$typeNameParameter]);
+//$e = new mb_exception("http_auth/http/index.php - getfeature - check permission: ".json_encode($arrayFeatures));
//$e = new mb_exception("".$typeNameParameter.": ".$reqParams[$typeNameParameter]);
$arrayOnlineresources = checkWfsPermission($owsproxyString, $arrayFeatures, $userId);
}
@@ -486,6 +496,8 @@
break;
case 'describefeaturetype':
$arrayFeatures = array($reqParams[$typeNameParameter]);
+//$e = new mb_exception("http_auth/http/index.php - describefeaturetype - requested features: ".$typeNameParameter.": ".json_encode($reqParams[$typeNameParameter]));
+//really crazy: https://github.com/qgis/QGIS/commit/ccb4c80f8a6d2bb179258f1ffec0dc9a447ca465
$arrayOnlineresources = checkWfsPermission($owsproxyString, $arrayFeatures, $userId);
$query->setOnlineResource($arrayOnlineresources['wfs_describefeaturetype']);
$request = $query->getRequest();
Modified: trunk/mapbender/owsproxy/http/index.php
===================================================================
--- trunk/mapbender/owsproxy/http/index.php 2020-01-16 15:04:01 UTC (rev 10386)
+++ trunk/mapbender/owsproxy/http/index.php 2020-01-17 08:07:43 UTC (rev 10387)
@@ -63,10 +63,18 @@
//$typeNameParameter = "typename"; //lowercase
switch ($reqParams['version']) {
case "2.0.0":
- $typeNameParameter = "typenames";
+ if (strtolower($reqParams['request']) == 'describefeaturetype') {
+ $typeNameParameter = "typename";
+ } else {
+ $typeNameParameter = "typenames";
+ }
break;
case "2.0.2":
- $typeNameParameter = "typenames";
+ if (strtolower($reqParams['request']) == 'describefeaturetype') {
+ $typeNameParameter = "typename";
+ } else {
+ $typeNameParameter = "typenames";
+ }
break;
default:
$typeNameParameter = "typename";
More information about the Mapbender_commits
mailing list