#5798: [PATCH] _deleteLinks() ignores HABTM conditions
----------------------------------------------+-----------------------------
Reporter: ksch | Type: Bug
Status: new | Priority: Medium
Milestone: 1.2.x.x | Component: Model
Version: RC3 | Severity: Major
Keywords: model habtm delete conditions | Php_version: PHP 5
Cake_version: 1.2.0.7692 RC3 |
----------------------------------------------+-----------------------------
If you define a HABTM with 'conditions', the _deleteLinks() method ignores
them in finding deletable records.
That can lead to SEVERE DATA LOSS, as all records are deleted instead!
This patch merges the Model's defined HABTM conditions into the
_deleteLinks() query.
{{{
Index: libs/model/model.php
===================================================================
--- libs/model/model.php (revision 7884)
+++ libs/model/model.php (working copy)
@@ -1698,8 +1698,10 @@
$db =&
ConnectionManager::getDataSource($this->useDbConfig);
foreach ($this->hasAndBelongsToMany as $assoc => $data) {
+ $conditions = array_merge((array)
$data['conditions'], array($data['foreignKey'] => $id));
+
$records = $this->{$data['with']}->find('all',
array(
- 'conditions' => array($data['foreignKey']
=> $id),
+ 'conditions' => $conditions,
'fields' =>
$this->{$data['with']}->primaryKey,
'recursive' => -1
));
--
Ticket URL: <https://trac.cakephp.org/ticket/5798>
CakePHP : The Rapid Development Framework for PHP <https://trac.cakephp.org/>
Cake is a rapid development framework for PHP which uses commonly known design
patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC.
Our primary goal is to provide a structured framework that enables PHP users at
all levels to rapidly develop robust web applications, without any loss to
flexibility.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"tickets cakephp" 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/tickets-cakephp?hl=en
-~----------~----~----~----~------~----~------~--~---