Sfoglia il codice sorgente

updated sys obj field storage acl enum tabel definition

Piotr Labudda 8 anni fa
parent
commit
4c92f9254b
1 ha cambiato i file con 8 aggiunte e 7 eliminazioni
  1. 8 7
      SE/se-lib/Schema/SystemObjectFieldStorageAcl.php

+ 8 - 7
SE/se-lib/Schema/SystemObjectFieldStorageAcl.php

@@ -32,9 +32,11 @@ class Schema_SystemObjectFieldStorageAcl extends Core_AclSimpleSchemaBase {
 	];
 	// public $_rootTableName = 'CRM_LISTA_ZASOBOW';
 	public $_rootTableName = 'CRM_#CACHE_ACL_OBJECT_FIELD';
+	public $_enumRootTableName = 'CRM_#CACHE_ACL_OBJECT_FIELD_enum';
 	public $_version = '1';
 
 	public static function getAntAclXsdBasePath($typeName) {
+		if (!$typeName) throw new Exception("Missing typeName");
 		$antAclPath = null;
 		if ($activeProject = Config::getProjectPath()) {
 			$tryProjectSchemaPath = "{$activeProject}/schema/ant-object/" . str_replace(['__x3A__', ':'], ['.', '/'], $typeName);
@@ -80,9 +82,8 @@ class Schema_SystemObjectFieldStorageAcl extends Core_AclSimpleSchemaBase {
 		} catch (Exception $e) {
 			DBG::log($e);
 		}
-		// DB::getPDO()->execSql(" drop table if exists `{$this->_rootTableName}_enum` ");// TODO: DBG
 		DB::getPDO()->execSql("
-			create table if not exists `{$this->_rootTableName}_enum` (
+			create table if not exists `{$this->_enumRootTableName}` (
 				`namespace` varchar(255) DEFAULT '' COMMENT 'concat obj ns / field ns / value',
 				`fieldNamespace` varchar(255) DEFAULT '',
 				`objectNamespace` varchar(255) DEFAULT '',
@@ -98,7 +99,7 @@ class Schema_SystemObjectFieldStorageAcl extends Core_AclSimpleSchemaBase {
 		if (!$namespace) return;
 
 		DB::getPDO()->update($this->_rootTableName, 'objectNamespace', $namespace, ['isActive' => 0]);
-		DB::getPDO()->update("{$this->_rootTableName}_enum", 'objectNamespace', $namespace, ['isActive' => 0]);
+		DB::getPDO()->update("{$this->_enumRootTableName}", 'objectNamespace', $namespace, ['isActive' => 0]);
 		if (!$namespace) throw new Exception("Missing namespace '{$namespace}'");
 		$objectItem = SchemaFactory::loadDefaultObject('SystemObject')->getItem($namespace);
 		DBG::nicePrint($objectItem, '$objectItem');
@@ -163,7 +164,7 @@ class Schema_SystemObjectFieldStorageAcl extends Core_AclSimpleSchemaBase {
 			if (!empty($listEnum)) {
 				DBG::nicePrint($listEnum, '$listEnum');
 				foreach ($listEnum as $value => $label) {
-					DB::getPDO()->insertOrUpdate("{$this->_rootTableName}_enum", [
+					DB::getPDO()->insertOrUpdate("{$this->_enumRootTableName}", [
 						'namespace' => "{$item['namespace']}/{$fieldName}/@{$value}",
 						'fieldNamespace' => $fieldName,
 						'objectNamespace' => $item['namespace'],
@@ -237,7 +238,7 @@ class Schema_SystemObjectFieldStorageAcl extends Core_AclSimpleSchemaBase {
 			if (!empty($listEnum)) {
 				DBG::nicePrint($listEnum, '$listEnum');
 				foreach ($listEnum as $value => $label) {
-					DB::getPDO()->insertOrUpdate("{$this->_rootTableName}_enum", [
+					DB::getPDO()->insertOrUpdate("{$this->_enumRootTableName}", [
 						'namespace' => "{$item['namespace']}/{$fieldName}/@{$value}",
 						'fieldNamespace' => $fieldName,
 						'objectNamespace' => $item['namespace'],
@@ -300,7 +301,7 @@ class Schema_SystemObjectFieldStorageAcl extends Core_AclSimpleSchemaBase {
 			if (!empty($listEnum)) {
 				DBG::nicePrint($listEnum, '$listEnum');
 				foreach ($listEnum as $value => $label) {
-					DB::getPDO()->insertOrUpdate("{$this->_rootTableName}_enum", [
+					DB::getPDO()->insertOrUpdate("{$this->_enumRootTableName}", [
 						'namespace' => "{$item['namespace']}/{$fieldName}/@{$value}",
 						'fieldNamespace' => $fieldName,
 						'objectNamespace' => $item['namespace'],
@@ -523,7 +524,7 @@ class Schema_SystemObjectFieldStorageAcl extends Core_AclSimpleSchemaBase {
 			$xsdRestrictions['enumeration'] = [];
 			foreach (DB::getPDO()->fetchAll("
 				select t.value, t.label
-				from `{$this->_rootTableName}_enum` t
+				from `{$this->_enumRootTableName}` t
 				where t.objectNamespace = '{$item['objectNamespace']}'
 					and t.fieldNamespace = '{$item['fieldNamespace']}'
 					and t.isActive = 1