Author: david
Date: Wed Feb 16 15:43:01 2011
New Revision: 8985

Log:
Cascade delete slug rows when foreign-key related object is deleted

Modified:
   trunk/config/schema.yml
   trunk/data/sql/lib.model.schema.sql
   trunk/lib/model/map/ObjectTableMap.php
   trunk/lib/model/map/SlugTableMap.php
   trunk/lib/model/map/UserTableMap.php
   trunk/lib/model/om/BaseObject.php
   trunk/lib/model/om/BaseUser.php
   trunk/plugins/qbAclPlugin/lib/model/om/BaseAclGroup.php
   trunk/plugins/qbAclPlugin/lib/model/om/BaseAclGroupI18n.php
   trunk/plugins/qbAclPlugin/lib/model/om/BaseAclPermission.php
   trunk/plugins/qbAclPlugin/lib/model/om/BaseAclUserGroup.php

Modified: trunk/config/schema.yml
==============================================================================
--- trunk/config/schema.yml     Wed Feb 16 10:20:59 2011        (r8984)
+++ trunk/config/schema.yml     Wed Feb 16 15:43:01 2011        (r8985)
@@ -340,7 +340,7 @@
     value: longvarchar
 
   slug:
-    object_id: { type: integer, index: unique, required: true, foreignTable: 
object, foreignReference: id }
+    object_id: { type: integer, index: unique, required: true, foreignTable: 
object, foreignReference: id, onDelete: cascade }
     slug: { index: unique, required: true }
 
   static_page:

Modified: trunk/data/sql/lib.model.schema.sql
==============================================================================
--- trunk/data/sql/lib.model.schema.sql Wed Feb 16 10:20:59 2011        (r8984)
+++ trunk/data/sql/lib.model.schema.sql Wed Feb 16 15:43:01 2011        (r8985)
@@ -1209,6 +1209,7 @@
        CONSTRAINT `slug_FK_1`
                FOREIGN KEY (`object_id`)
                REFERENCES `object` (`id`)
+               ON DELETE CASCADE
 )Type=InnoDB;
 
 #-----------------------------------------------------------------------------

Modified: trunk/lib/model/map/ObjectTableMap.php
==============================================================================
--- trunk/lib/model/map/ObjectTableMap.php      Wed Feb 16 10:20:59 2011        
(r8984)
+++ trunk/lib/model/map/ObjectTableMap.php      Wed Feb 16 15:43:01 2011        
(r8985)
@@ -49,7 +49,6 @@
         */
        public function buildRelations()
        {
-    $this->addRelation('aclPermission', 'aclPermission', 
RelationMap::ONE_TO_MANY, array('id' => 'object_id', ), 'CASCADE', null);
     $this->addRelation('actor', 'actor', RelationMap::ONE_TO_ONE, array('id' 
=> 'id', ), 'CASCADE', null);
     $this->addRelation('digitalObject', 'digitalObject', 
RelationMap::ONE_TO_ONE, array('id' => 'id', ), 'CASCADE', null);
     $this->addRelation('event', 'event', RelationMap::ONE_TO_ONE, array('id' 
=> 'id', ), 'CASCADE', null);
@@ -67,11 +66,12 @@
     $this->addRelation('relationRelatedByobjectId', 'relation', 
RelationMap::ONE_TO_MANY, array('id' => 'object_id', ), null, null);
     $this->addRelation('rights', 'rights', RelationMap::ONE_TO_MANY, 
array('id' => 'object_id', ), 'CASCADE', null);
     $this->addRelation('rightsActorRelation', 'rightsActorRelation', 
RelationMap::ONE_TO_ONE, array('id' => 'id', ), 'CASCADE', null);
-    $this->addRelation('slug', 'slug', RelationMap::ONE_TO_MANY, array('id' => 
'object_id', ), null, null);
+    $this->addRelation('slug', 'slug', RelationMap::ONE_TO_MANY, array('id' => 
'object_id', ), 'CASCADE', null);
     $this->addRelation('staticPage', 'staticPage', RelationMap::ONE_TO_ONE, 
array('id' => 'id', ), 'CASCADE', null);
     $this->addRelation('status', 'status', RelationMap::ONE_TO_MANY, 
array('id' => 'object_id', ), 'CASCADE', null);
     $this->addRelation('taxonomy', 'taxonomy', RelationMap::ONE_TO_ONE, 
array('id' => 'id', ), 'CASCADE', null);
     $this->addRelation('term', 'term', RelationMap::ONE_TO_ONE, array('id' => 
'id', ), 'CASCADE', null);
+    $this->addRelation('aclPermission', 'aclPermission', 
RelationMap::ONE_TO_MANY, array('id' => 'object_id', ), 'CASCADE', null);
        } // buildRelations()
 
 } // ObjectTableMap

Modified: trunk/lib/model/map/SlugTableMap.php
==============================================================================
--- trunk/lib/model/map/SlugTableMap.php        Wed Feb 16 10:20:59 2011        
(r8984)
+++ trunk/lib/model/map/SlugTableMap.php        Wed Feb 16 15:43:01 2011        
(r8985)
@@ -48,7 +48,7 @@
         */
        public function buildRelations()
        {
-    $this->addRelation('object', 'object', RelationMap::MANY_TO_ONE, 
array('object_id' => 'id', ), null, null);
+    $this->addRelation('object', 'object', RelationMap::MANY_TO_ONE, 
array('object_id' => 'id', ), 'CASCADE', null);
        } // buildRelations()
 
 } // SlugTableMap

Modified: trunk/lib/model/map/UserTableMap.php
==============================================================================
--- trunk/lib/model/map/UserTableMap.php        Wed Feb 16 10:20:59 2011        
(r8984)
+++ trunk/lib/model/map/UserTableMap.php        Wed Feb 16 15:43:01 2011        
(r8985)
@@ -50,10 +50,10 @@
        public function buildRelations()
        {
     $this->addRelation('actor', 'actor', RelationMap::MANY_TO_ONE, array('id' 
=> 'id', ), 'CASCADE', null);
-    $this->addRelation('aclPermission', 'aclPermission', 
RelationMap::ONE_TO_MANY, array('id' => 'user_id', ), 'CASCADE', null);
-    $this->addRelation('aclUserGroup', 'aclUserGroup', 
RelationMap::ONE_TO_MANY, array('id' => 'user_id', ), 'CASCADE', null);
     $this->addRelation('note', 'note', RelationMap::ONE_TO_MANY, array('id' => 
'user_id', ), null, null);
     $this->addRelation('systemEvent', 'systemEvent', RelationMap::ONE_TO_MANY, 
array('id' => 'user_id', ), null, null);
+    $this->addRelation('aclPermission', 'aclPermission', 
RelationMap::ONE_TO_MANY, array('id' => 'user_id', ), 'CASCADE', null);
+    $this->addRelation('aclUserGroup', 'aclUserGroup', 
RelationMap::ONE_TO_MANY, array('id' => 'user_id', ), 'CASCADE', null);
        } // buildRelations()
 
 } // UserTableMap

Modified: trunk/lib/model/om/BaseObject.php
==============================================================================
--- trunk/lib/model/om/BaseObject.php   Wed Feb 16 10:20:59 2011        (r8984)
+++ trunk/lib/model/om/BaseObject.php   Wed Feb 16 15:43:01 2011        (r8985)
@@ -180,11 +180,6 @@
       }
     }
 
-    if ('aclPermissions' == $name)
-    {
-      return true;
-    }
-
     if ('notes' == $name)
     {
       return true;
@@ -230,6 +225,11 @@
       return true;
     }
 
+    if ('aclPermissions' == $name)
+    {
+      return true;
+    }
+
     throw new sfException("Unknown record property \"$name\" on 
\"".get_class($this).'"');
   }
 
@@ -271,23 +271,6 @@
       }
     }
 
-    if ('aclPermissions' == $name)
-    {
-      if (!isset($this->refFkValues['aclPermissions']))
-      {
-        if (!isset($this->id))
-        {
-          $this->refFkValues['aclPermissions'] = QubitQuery::create();
-        }
-        else
-        {
-          $this->refFkValues['aclPermissions'] = 
self::getaclPermissionsById($this->id, array('self' => $this) + $options);
-        }
-      }
-
-      return $this->refFkValues['aclPermissions'];
-    }
-
     if ('notes' == $name)
     {
       if (!isset($this->refFkValues['notes']))
@@ -441,6 +424,23 @@
       return $this->refFkValues['statuss'];
     }
 
+    if ('aclPermissions' == $name)
+    {
+      if (!isset($this->refFkValues['aclPermissions']))
+      {
+        if (!isset($this->id))
+        {
+          $this->refFkValues['aclPermissions'] = QubitQuery::create();
+        }
+        else
+        {
+          $this->refFkValues['aclPermissions'] = 
self::getaclPermissionsById($this->id, array('self' => $this) + $options);
+        }
+      }
+
+      return $this->refFkValues['aclPermissions'];
+    }
+
     throw new sfException("Unknown record property \"$name\" on 
\"".get_class($this).'"');
   }
 
@@ -739,26 +739,6 @@
                $this->setid($key);
        }
 
-  public static function addaclPermissionsCriteriaById(Criteria $criteria, $id)
-  {
-    $criteria->add(QubitAclPermission::OBJECT_ID, $id);
-
-    return $criteria;
-  }
-
-  public static function getaclPermissionsById($id, array $options = array())
-  {
-    $criteria = new Criteria;
-    self::addaclPermissionsCriteriaById($criteria, $id);
-
-    return QubitAclPermission::get($criteria, $options);
-  }
-
-  public function addaclPermissionsCriteria(Criteria $criteria)
-  {
-    return self::addaclPermissionsCriteriaById($criteria, $this->id);
-  }
-
   public static function addnotesCriteriaById(Criteria $criteria, $id)
   {
     $criteria->add(QubitNote::OBJECT_ID, $id);
@@ -939,6 +919,26 @@
     return self::addstatussCriteriaById($criteria, $this->id);
   }
 
+  public static function addaclPermissionsCriteriaById(Criteria $criteria, $id)
+  {
+    $criteria->add(QubitAclPermission::OBJECT_ID, $id);
+
+    return $criteria;
+  }
+
+  public static function getaclPermissionsById($id, array $options = array())
+  {
+    $criteria = new Criteria;
+    self::addaclPermissionsCriteriaById($criteria, $id);
+
+    return QubitAclPermission::get($criteria, $options);
+  }
+
+  public function addaclPermissionsCriteria(Criteria $criteria)
+  {
+    return self::addaclPermissionsCriteriaById($criteria, $this->id);
+  }
+
   public function __call($name, $args)
   {
     if ('get' == substr($name, 0, 3) || 'set' == substr($name, 0, 3))

Modified: trunk/lib/model/om/BaseUser.php
==============================================================================
--- trunk/lib/model/om/BaseUser.php     Wed Feb 16 10:20:59 2011        (r8984)
+++ trunk/lib/model/om/BaseUser.php     Wed Feb 16 15:43:01 2011        (r8985)
@@ -82,22 +82,22 @@
     {
     }
 
-    if ('aclPermissions' == $name)
+    if ('notes' == $name)
     {
       return true;
     }
 
-    if ('aclUserGroups' == $name)
+    if ('systemEvents' == $name)
     {
       return true;
     }
 
-    if ('notes' == $name)
+    if ('aclPermissions' == $name)
     {
       return true;
     }
 
-    if ('systemEvents' == $name)
+    if ('aclUserGroups' == $name)
     {
       return true;
     }
@@ -123,154 +123,154 @@
     {
     }
 
-    if ('aclPermissions' == $name)
+    if ('notes' == $name)
     {
-      if (!isset($this->refFkValues['aclPermissions']))
+      if (!isset($this->refFkValues['notes']))
       {
         if (!isset($this->id))
         {
-          $this->refFkValues['aclPermissions'] = QubitQuery::create();
+          $this->refFkValues['notes'] = QubitQuery::create();
         }
         else
         {
-          $this->refFkValues['aclPermissions'] = 
self::getaclPermissionsById($this->id, array('self' => $this) + $options);
+          $this->refFkValues['notes'] = self::getnotesById($this->id, 
array('self' => $this) + $options);
         }
       }
 
-      return $this->refFkValues['aclPermissions'];
+      return $this->refFkValues['notes'];
     }
 
-    if ('aclUserGroups' == $name)
+    if ('systemEvents' == $name)
     {
-      if (!isset($this->refFkValues['aclUserGroups']))
+      if (!isset($this->refFkValues['systemEvents']))
       {
         if (!isset($this->id))
         {
-          $this->refFkValues['aclUserGroups'] = QubitQuery::create();
+          $this->refFkValues['systemEvents'] = QubitQuery::create();
         }
         else
         {
-          $this->refFkValues['aclUserGroups'] = 
self::getaclUserGroupsById($this->id, array('self' => $this) + $options);
+          $this->refFkValues['systemEvents'] = 
self::getsystemEventsById($this->id, array('self' => $this) + $options);
         }
       }
 
-      return $this->refFkValues['aclUserGroups'];
+      return $this->refFkValues['systemEvents'];
     }
 
-    if ('notes' == $name)
+    if ('aclPermissions' == $name)
     {
-      if (!isset($this->refFkValues['notes']))
+      if (!isset($this->refFkValues['aclPermissions']))
       {
         if (!isset($this->id))
         {
-          $this->refFkValues['notes'] = QubitQuery::create();
+          $this->refFkValues['aclPermissions'] = QubitQuery::create();
         }
         else
         {
-          $this->refFkValues['notes'] = self::getnotesById($this->id, 
array('self' => $this) + $options);
+          $this->refFkValues['aclPermissions'] = 
self::getaclPermissionsById($this->id, array('self' => $this) + $options);
         }
       }
 
-      return $this->refFkValues['notes'];
+      return $this->refFkValues['aclPermissions'];
     }
 
-    if ('systemEvents' == $name)
+    if ('aclUserGroups' == $name)
     {
-      if (!isset($this->refFkValues['systemEvents']))
+      if (!isset($this->refFkValues['aclUserGroups']))
       {
         if (!isset($this->id))
         {
-          $this->refFkValues['systemEvents'] = QubitQuery::create();
+          $this->refFkValues['aclUserGroups'] = QubitQuery::create();
         }
         else
         {
-          $this->refFkValues['systemEvents'] = 
self::getsystemEventsById($this->id, array('self' => $this) + $options);
+          $this->refFkValues['aclUserGroups'] = 
self::getaclUserGroupsById($this->id, array('self' => $this) + $options);
         }
       }
 
-      return $this->refFkValues['systemEvents'];
+      return $this->refFkValues['aclUserGroups'];
     }
 
     throw new sfException("Unknown record property \"$name\" on 
\"".get_class($this).'"');
   }
 
-  public static function addaclPermissionsCriteriaById(Criteria $criteria, $id)
+  public static function addnotesCriteriaById(Criteria $criteria, $id)
   {
-    $criteria->add(QubitAclPermission::USER_ID, $id);
+    $criteria->add(QubitNote::USER_ID, $id);
 
     return $criteria;
   }
 
-  public static function getaclPermissionsById($id, array $options = array())
+  public static function getnotesById($id, array $options = array())
   {
     $criteria = new Criteria;
-    self::addaclPermissionsCriteriaById($criteria, $id);
+    self::addnotesCriteriaById($criteria, $id);
 
-    return QubitAclPermission::get($criteria, $options);
+    return QubitNote::get($criteria, $options);
   }
 
-  public function addaclPermissionsCriteria(Criteria $criteria)
+  public function addnotesCriteria(Criteria $criteria)
   {
-    return self::addaclPermissionsCriteriaById($criteria, $this->id);
+    return self::addnotesCriteriaById($criteria, $this->id);
   }
 
-  public static function addaclUserGroupsCriteriaById(Criteria $criteria, $id)
+  public static function addsystemEventsCriteriaById(Criteria $criteria, $id)
   {
-    $criteria->add(QubitAclUserGroup::USER_ID, $id);
+    $criteria->add(QubitSystemEvent::USER_ID, $id);
 
     return $criteria;
   }
 
-  public static function getaclUserGroupsById($id, array $options = array())
+  public static function getsystemEventsById($id, array $options = array())
   {
     $criteria = new Criteria;
-    self::addaclUserGroupsCriteriaById($criteria, $id);
+    self::addsystemEventsCriteriaById($criteria, $id);
 
-    return QubitAclUserGroup::get($criteria, $options);
+    return QubitSystemEvent::get($criteria, $options);
   }
 
-  public function addaclUserGroupsCriteria(Criteria $criteria)
+  public function addsystemEventsCriteria(Criteria $criteria)
   {
-    return self::addaclUserGroupsCriteriaById($criteria, $this->id);
+    return self::addsystemEventsCriteriaById($criteria, $this->id);
   }
 
-  public static function addnotesCriteriaById(Criteria $criteria, $id)
+  public static function addaclPermissionsCriteriaById(Criteria $criteria, $id)
   {
-    $criteria->add(QubitNote::USER_ID, $id);
+    $criteria->add(QubitAclPermission::USER_ID, $id);
 
     return $criteria;
   }
 
-  public static function getnotesById($id, array $options = array())
+  public static function getaclPermissionsById($id, array $options = array())
   {
     $criteria = new Criteria;
-    self::addnotesCriteriaById($criteria, $id);
+    self::addaclPermissionsCriteriaById($criteria, $id);
 
-    return QubitNote::get($criteria, $options);
+    return QubitAclPermission::get($criteria, $options);
   }
 
-  public function addnotesCriteria(Criteria $criteria)
+  public function addaclPermissionsCriteria(Criteria $criteria)
   {
-    return self::addnotesCriteriaById($criteria, $this->id);
+    return self::addaclPermissionsCriteriaById($criteria, $this->id);
   }
 
-  public static function addsystemEventsCriteriaById(Criteria $criteria, $id)
+  public static function addaclUserGroupsCriteriaById(Criteria $criteria, $id)
   {
-    $criteria->add(QubitSystemEvent::USER_ID, $id);
+    $criteria->add(QubitAclUserGroup::USER_ID, $id);
 
     return $criteria;
   }
 
-  public static function getsystemEventsById($id, array $options = array())
+  public static function getaclUserGroupsById($id, array $options = array())
   {
     $criteria = new Criteria;
-    self::addsystemEventsCriteriaById($criteria, $id);
+    self::addaclUserGroupsCriteriaById($criteria, $id);
 
-    return QubitSystemEvent::get($criteria, $options);
+    return QubitAclUserGroup::get($criteria, $options);
   }
 
-  public function addsystemEventsCriteria(Criteria $criteria)
+  public function addaclUserGroupsCriteria(Criteria $criteria)
   {
-    return self::addsystemEventsCriteriaById($criteria, $this->id);
+    return self::addaclUserGroupsCriteriaById($criteria, $this->id);
   }
 }

Modified: trunk/plugins/qbAclPlugin/lib/model/om/BaseAclGroup.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/om/BaseAclGroup.php     Wed Feb 16 
10:20:59 2011        (r8984)
+++ trunk/plugins/qbAclPlugin/lib/model/om/BaseAclGroup.php     Wed Feb 16 
15:43:01 2011        (r8985)
@@ -636,7 +636,7 @@
         if ($this->tables[0] == $table)
         {
           $columns = $table->getPrimaryKeyColumns();
-          $this->values[$columns[0]->getPhpName()] = $id;
+          $this->values[$columns[0]->getPhpName()] = 
$this->keys[$columns[0]->getPhpName()] = $id;
         }
       }
     }

Modified: trunk/plugins/qbAclPlugin/lib/model/om/BaseAclGroupI18n.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/om/BaseAclGroupI18n.php Wed Feb 16 
10:20:59 2011        (r8984)
+++ trunk/plugins/qbAclPlugin/lib/model/om/BaseAclGroupI18n.php Wed Feb 16 
15:43:01 2011        (r8985)
@@ -424,7 +424,7 @@
         if ($this->tables[0] == $table)
         {
           $columns = $table->getPrimaryKeyColumns();
-          $this->values[$columns[0]->getPhpName()] = $id;
+          $this->values[$columns[0]->getPhpName()] = 
$this->keys[$columns[0]->getPhpName()] = $id;
         }
       }
     }

Modified: trunk/plugins/qbAclPlugin/lib/model/om/BaseAclPermission.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/om/BaseAclPermission.php        Wed Feb 
16 10:20:59 2011        (r8984)
+++ trunk/plugins/qbAclPlugin/lib/model/om/BaseAclPermission.php        Wed Feb 
16 15:43:01 2011        (r8985)
@@ -435,7 +435,7 @@
         if ($this->tables[0] == $table)
         {
           $columns = $table->getPrimaryKeyColumns();
-          $this->values[$columns[0]->getPhpName()] = $id;
+          $this->values[$columns[0]->getPhpName()] = 
$this->keys[$columns[0]->getPhpName()] = $id;
         }
       }
     }

Modified: trunk/plugins/qbAclPlugin/lib/model/om/BaseAclUserGroup.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/om/BaseAclUserGroup.php Wed Feb 16 
10:20:59 2011        (r8984)
+++ trunk/plugins/qbAclPlugin/lib/model/om/BaseAclUserGroup.php Wed Feb 16 
15:43:01 2011        (r8985)
@@ -421,7 +421,7 @@
         if ($this->tables[0] == $table)
         {
           $columns = $table->getPrimaryKeyColumns();
-          $this->values[$columns[0]->getPhpName()] = $id;
+          $this->values[$columns[0]->getPhpName()] = 
$this->keys[$columns[0]->getPhpName()] = $id;
         }
       }
     }

-- 
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/qubit-commits?hl=en.

Reply via email to