Explorar el Código

added instance list for default_objects:TestPerms

Piotr Labudda hace 9 años
padre
commit
c3892b1b96
Se han modificado 2 ficheros con 32 adiciones y 0 borrados
  1. 24 0
      SE/se-lib/Api/WfsServerBase.php
  2. 8 0
      SE/se-lib/Schema/TestPermsStorageAcl.php

+ 24 - 0
SE/se-lib/Api/WfsServerBase.php

@@ -1516,6 +1516,30 @@ if($DBG){echo 'L.' . __LINE__ . ' $validateConvertedTransactionXsdString:';print
 				}
 			}
 
+			if (!$simple) {
+				$instanceNode = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:attribute');
+				$extNode->appendChild($instanceNode);
+				$instanceNode->setAttribute('name', 'instance');
+				$instanceNode->setAttribute('type', $acl->getSourceName() . ':' . "instanceType");
+
+				$instanceTypeNode = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:simpleType');
+				$rootNode->appendChild($instanceTypeNode);
+				$instanceTypeNode->setAttribute('name', "instanceType");
+					$insResNode = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:restriction');
+					$instanceTypeNode->appendChild($insResNode);
+					$insResNode->setAttribute('base', "xsd:string");
+						$insEnumNode = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:enumeration');
+						$insResNode->appendChild($insEnumNode);
+						$insEnumNode->setAttribute('value', $acl->getName());
+						if (method_exists($acl, 'getInstanceList')) {
+							foreach ($acl->getInstanceList() as $instanceName) {
+								$insEnumNode = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:enumeration');
+								$insResNode->appendChild($insEnumNode);
+								$insEnumNode->setAttribute('value', $instanceName);
+							}
+						}
+			}
+
 			$elNode = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:element');
 			$rootNode->appendChild($elNode);
 			$elNode->setAttribute('name', $objectName);

+ 8 - 0
SE/se-lib/Schema/TestPermsStorageAcl.php

@@ -142,4 +142,12 @@ class Schema_TestPermsStorageAcl extends Core_AclBase {
     return $this->parentAcl->isGeomField($fldName);
   }
 
+  public function getInstanceList() {
+    return [
+      'TestPermsOczekujący',
+      'TestPermsAktywny',
+      'TestPermsUsunięty',
+    ];
+  }
+
 }