mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Only enable cacheSources if both the datasource + model agree on it.
This prevents models from flipping cacheSources on when the datasource has it disabled already. Refs #2364
This commit is contained in:
parent
99fd6e40fe
commit
ec38ee1c48
2 changed files with 5 additions and 4 deletions
|
@ -843,6 +843,7 @@ class Model extends Object implements CakeEventListener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!$className) {
|
if (!$className) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1128,7 +1129,7 @@ class Model extends Object implements CakeEventListener {
|
||||||
|
|
||||||
if (method_exists($db, 'listSources')) {
|
if (method_exists($db, 'listSources')) {
|
||||||
$restore = $db->cacheSources;
|
$restore = $db->cacheSources;
|
||||||
$db->cacheSources = $this->cacheSources;
|
$db->cacheSources = ($restore && $this->cacheSources);
|
||||||
$sources = $db->listSources();
|
$sources = $db->listSources();
|
||||||
$db->cacheSources = $restore;
|
$db->cacheSources = $restore;
|
||||||
|
|
||||||
|
|
|
@ -155,17 +155,17 @@ class ModelIntegrationTest extends BaseModelTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that $cacheSources can only be disabled in the db using model settings, not enabled
|
* Tests that $cacheSources is restored despite the settings on the model.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function testCacheSourcesDisabling() {
|
public function testCacheSourcesRestored() {
|
||||||
$this->loadFixtures('JoinA', 'JoinB', 'JoinAB', 'JoinC', 'JoinAC');
|
$this->loadFixtures('JoinA', 'JoinB', 'JoinAB', 'JoinC', 'JoinAC');
|
||||||
$this->db->cacheSources = true;
|
$this->db->cacheSources = true;
|
||||||
$TestModel = new JoinA();
|
$TestModel = new JoinA();
|
||||||
$TestModel->cacheSources = false;
|
$TestModel->cacheSources = false;
|
||||||
$TestModel->setSource('join_as');
|
$TestModel->setSource('join_as');
|
||||||
$this->assertFalse($this->db->cacheSources);
|
$this->assertTrue($this->db->cacheSources);
|
||||||
|
|
||||||
$this->db->cacheSources = false;
|
$this->db->cacheSources = false;
|
||||||
$TestModel = new JoinA();
|
$TestModel = new JoinA();
|
||||||
|
|
Loading…
Reference in a new issue