Просмотр исходного кода

updated createRefTable function

Piotr Labudda 9 лет назад
Родитель
Сommit
6882a235a4
2 измененных файлов с 4 добавлено и 5 удалено
  1. 3 4
      SE/se-lib/Core/AclBase.php
  2. 1 1
      SE/se-lib/Schema/TestPermsStorageAcl.php

+ 3 - 4
SE/se-lib/Core/AclBase.php

@@ -632,7 +632,7 @@ class Core_AclBase {
   }
 
   public function _insertRef($childName, $pk, $childPk) {// TODO: $idTransaction
-    $refTable = $this->createRefTable($childName);
+    $refTable = $this->createRefTable($this->getName(), $childName);
     $sqlPk = DB::getPDO()->quote($pk, PDO::PARAM_STR);
     $sqlChildPk = DB::getPDO()->quote($childPk, PDO::PARAM_STR);
     DB::getPDO()->exec("
@@ -642,7 +642,7 @@ class Core_AclBase {
   }
 
   public function _cleanRefs($childName, $pk) {// TODO: $idTransaction
-    $refTable = $this->createRefTable($childName);
+    $refTable = $this->createRefTable($this->getName(), $childName);
     $sqlPk = DB::getPDO()->quote($pk, PDO::PARAM_STR);
     DB::getPDO()->exec("
       update `{$refTable}` set `A_STATUS` = 'DELETED'
@@ -650,9 +650,8 @@ class Core_AclBase {
     ");
   }
 
-  public function createRefTable($childName) {// TODO: $idTransaction
+  public function createRefTable($objectName, $childName) {
     static $cacheRefTables = array();
-    $objectName = $this->getName();
     $refTable = "{$objectName}__#REF__{$childName}";
     if (in_array($refTable, $cacheRefTables)) return $refTable;
     DB::getPDO()->exec("

+ 1 - 1
SE/se-lib/Schema/TestPermsStorageAcl.php

@@ -121,7 +121,7 @@ class Schema_TestPermsStorageAcl extends Core_AclBase {
     foreach ($refs as $fieldName => $type) {
       $acl = Core_AclHelper::getAclByTypeName($type);
       // TODO: Core_AclBase->fetchRefs($fieldName, $pkList = array());// $refPk[$fieldName] = $this->fetchRefs($fieldName, $pkList);
-      $refTableName = $this->createRefTable($fieldName);
+      $refTableName = $this->createRefTable($this->getName(), $fieldName);
       if($DBG>2){echo 'C.'.get_class($this).' L.' . __LINE__ . " getItems loop(\$fieldName:{$fieldName}) \$refTableName:({$refTableName})";echo"\n";}
       $refRows[$fieldName] = DB::getPDO()->fetchAllByKey("
         select r.*