فهرست منبع

fixed get acl from typeName in server wfs

Piotr Labudda 9 سال پیش
والد
کامیت
844d14a8e9
1فایلهای تغییر یافته به همراه4 افزوده شده و 8 حذف شده
  1. 4 8
      SE/se-lib/Api/WfsServerBase.php

+ 4 - 8
SE/se-lib/Api/WfsServerBase.php

@@ -32,14 +32,10 @@ class Api_WfsServerBase {
 	*/
 	public function getAclFromTypeName($typeName) {
 		$typeEx = explode(':', $typeName);
-		$sourceName = null;
-		if (2 != count($typeEx)) throw new Api_WfsException("Could not get acl for '{$typeName}' - syntax error");
-		if ('p5_' == substr($typeEx[0], 0, 3)) $sourceName = substr($typeEx[0], 3);
-		else if ('default_db__x3A__' == substr($typeEx[0], 0, 17)) $sourceName = 'default_db';
-		else if ('default_objects' == $typeEx[0]) $sourceName = 'default_objects';
-		else if ('default_db' == $typeEx[0]) $sourceName = 'default_db';
-		if (!$sourceName) throw new Api_WfsException("Type not found '{$typeName}'", 404);
+		$sourceName = $typeEx[0];
 		$objName = $typeEx[1];
+		if (2 != count($typeEx)) throw new Api_WfsException("Could not get acl for '{$typeName}' - syntax error");
+		if ('p5_' == substr($sourceName, 0, 3)) $sourceName = substr($sourceName, 3);// remove prefix 'p5_'
 		$acl = $this->_usrAcl->getObjectAcl($sourceName, $objName);
 		if (!$acl) throw new Api_WfsException("Could not get acl for '{$typeName}'");
 		$forceTblAclInit = 0;//('1' == V::get('_force', '', $_GET));
@@ -1363,7 +1359,7 @@ if($DBG){echo 'L.' . __LINE__ . ' $validateConvertedTransactionXsdString:';print
 			$tblName = $tblAcl->getName();
 			$typeNames[] = array("p5_{$dataSourceName}", $tblName);
 		}
-		$typeNames[] = array("p5_objects", 'File');
+		// $typeNames[] = array("p5_objects", 'File');// @see $this->_printFeatureTypeListXml - all types
 		return $this->_getDescribeFeatureTypes($typeNames, $simple);
 	}