Преглед изворни кода

added StorageAcl to TableAcl::getInstance - used in P5Menu

Piotr Labudda пре 8 година
родитељ
комит
0fe4a52535
2 измењених фајлова са 25 додато и 14 уклоњено
  1. 0 2
      SE/se-lib/Core/AclHelper.php
  2. 25 12
      SE/se-lib/TableAcl.php

+ 0 - 2
SE/se-lib/Core/AclHelper.php

@@ -104,9 +104,7 @@ class Core_AclHelper {// Helper class for Acl
 					}
 
 					Lib::loadClass('StorageAclBase');
-					DBG::log($objItem, 'array', "DBG:StorageAclBase \$conf");
 					$acl = StorageAclBase::buildInstance($objItem['idZasob'], $objItem);
-					DBG::log($acl, 'array', "DBG:StorageAclBase \$acl");
 					return $acl;
 				} break;
 				default: throw new Exception("Not Implemented acl type '{$objItem['_type']}'");

+ 25 - 12
SE/se-lib/TableAcl.php

@@ -953,19 +953,32 @@ class TableAcl extends Core_AclBase {
 
 				$objItem = reset($objectList);
 				DBG::log($objItem, 'array', "DBG objItem({$idTable})");
-				if (!in_array($objItem['_type'], [
-					// 'TableAcl', // TODO: TEST - to replace TableAcl by AntAcl or use object with namespace + '/tableName'?
-					'AntAcl',
-				])) throw new Exception("Not Implemented acl type '{$objItem['_type']}'");
-				if (!$objItem['isObjectActive']) {
-					if (!$objItem['hasStruct']) throw new Exception("namespace has no structure '{$namespace}'");
-					if (!$objItem['isStructInstalled']) throw new Exception("namespace structure not installed '{$namespace}'");
-					throw new Exception("namespace is not activated '{$namespace}'");
-				}
+				switch ($objItem['_type']) {
+					// case 'TableAcl': // TODO: TEST - to replace TableAcl by AntAcl or use object with namespace + '/tableName'?
+					case 'AntAcl': {
+						if (!$objItem['isObjectActive']) {
+							if (!$objItem['hasStruct']) throw new Exception("namespace has no structure '{$namespace}'");
+							if (!$objItem['isStructInstalled']) throw new Exception("namespace structure not installed '{$namespace}'");
+							throw new Exception("namespace is not activated '{$namespace}'");
+						}
 
-				Lib::loadClass('AntAclBase');
-				$_cache[$idTable] = AntAclBase::buildInstance($objItem['idZasob'], $objItem);
-				return $_cache[$idTable];
+						Lib::loadClass('AntAclBase');
+						$_cache[$idTable] = AntAclBase::buildInstance($objItem['idZasob'], $objItem);
+						return $_cache[$idTable];
+					}
+					case 'StorageAcl': {
+						if (!$objItem['isObjectActive']) {
+							if (!$objItem['hasStruct']) throw new Exception("namespace has no structure '{$namespace}'");
+							if (!$objItem['isStructInstalled']) throw new Exception("namespace structure not installed '{$namespace}'");
+							throw new Exception("namespace is not activated '{$namespace}'");
+						}
+
+						Lib::loadClass('StorageAclBase');
+						$_cache[$idTable] = StorageAclBase::buildInstance($objItem['idZasob'], $objItem);
+						return $_cache[$idTable];
+					}
+					default: throw new Exception("Not Implemented acl type '{$objItem['_type']}'");
+				}
 			} catch (Exception $e) {
 				DBG::log($e);
 			}