فهرست منبع

updated Core_AclHelper::getRefTable

Piotr Labudda 9 سال پیش
والد
کامیت
bce628b33e
1فایلهای تغییر یافته به همراه7 افزوده شده و 1 حذف شده
  1. 7 1
      SE/se-lib/Core/AclHelper.php

+ 7 - 1
SE/se-lib/Core/AclHelper.php

@@ -325,7 +325,7 @@ class Core_AclHelper {// Helper class for Acl
     ");
   }
 
-  public static function getRefTable($objectName, $childName) {
+  public static function getRefTable($objectName, $childName) {// TODO: wrong - add prefix to avoid name collisions or generate unique hash
     static $cacheRefTables = array();
     $refTable = "{$objectName}__#REF__{$childName}";
     if (in_array($refTable, $cacheRefTables)) return $refTable;
@@ -333,6 +333,7 @@ class Core_AclHelper {// Helper class for Acl
       CREATE TABLE IF NOT EXISTS `{$refTable}` (
         `PRIMARY_KEY` int(11) NOT NULL,
         `REMOTE_PRIMARY_KEY` int(11) NOT NULL,
+        `REMOTE_TYPENAME` varchar(255) NOT NULL DEFAULT '',
         `A_STATUS` enum('WAITING', 'NORMAL', 'DELETED') NOT NULL DEFAULT 'WAITING',
         `A_RECORD_UPDATE_DATE` timestamp ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
         -- TODO `TRANACTION_ID` int(11) NOT NULL
@@ -350,6 +351,11 @@ class Core_AclHelper {// Helper class for Acl
     } catch (Exception $e) {
       // echo 'C.'.get_class($this).' L.' . __LINE__ . " Error:";print_r($e->getMessage());echo "\n";
     }
+    try {
+      DB::getPDO()->exec(" ALTER TABLE `{$refTable}` ADD `REMOTE_TYPENAME` varchar(255) NOT NULL DEFAULT '' ");
+    } catch (Exception $e) {
+      // echo 'C.'.get_class($this).' L.' . __LINE__ . " Error:";print_r($e->getMessage());echo "\n";
+    }
     $cacheRefTables[] = $refTable;
     return $refTable;
   }