Skip to content

Commit

Permalink
Merge pull request #7357 from cakephp/issue-7076
Browse files Browse the repository at this point in the history
Always update updated/modified columns when a fieldList is used.
  • Loading branch information
lorenzo committed Sep 7, 2015
2 parents 0dbabce + e4cce7a commit 2d2c5be
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 3 deletions.
7 changes: 6 additions & 1 deletion lib/Cake/Model/Model.php
Expand Up @@ -1835,7 +1835,12 @@ protected function _doSave($data = null, $options = array()) {
$now = time();

foreach ($dateFields as $updateCol) {
if (in_array($updateCol, $fields) || !$this->hasField($updateCol)) {
$fieldHasValue = in_array($updateCol, $fields);
$fieldInWhitelist = (
count($this->whitelist) === 0 ||
in_array($updateCol, $this->whitelist)
);
if (($fieldHasValue && $fieldInWhitelist) || !$this->hasField($updateCol)) {
continue;
}

Expand Down
32 changes: 30 additions & 2 deletions lib/Cake/Test/Case/Model/ModelWriteTest.php
Expand Up @@ -387,6 +387,34 @@ public function testSaveFieldListResetsWhitelistOnFailedSave() {
$this->assertEquals($whitelist, $model->whitelist);
}

/**
* Test that save() with a fieldList continues to write
* updated in all cases.
*
* @return void
*/
public function testSaveUpdatedWithFieldList() {
$this->loadFixtures('Post', 'Author');
$model = ClassRegistry::init('Post');
$original = $model->find('first', array(
'conditions' => array('Post.id' => 1)
));
$data = array(
'Post' => array(
'id' => 1,
'title' => 'New title',
'updated' => '1999-01-01 00:00:00',
)
);
$model->save($data, array(
'fieldList' => array('title')
));
$new = $model->find('first', array(
'conditions' => array('Post.id' => 1)
));
$this->assertGreaterThan($original['Post']['updated'], $new['Post']['updated']);
}

/**
* Test save() resets the whitelist after afterSave
*
Expand Down Expand Up @@ -1960,8 +1988,8 @@ public function testSaveHabtm() {
'title' => 'New Article With Tags and fieldList',
'body' => '',
'published' => 'N',
'created' => '',
'updated' => ''
'created' => static::date(),
'updated' => static::date(),
),
'Tag' => array(
0 => array(
Expand Down

0 comments on commit 2d2c5be

Please sign in to comment.