diff options
author | Matthieu Aubry <mattab@users.noreply.github.com> | 2016-09-29 05:03:02 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-29 05:03:02 +0300 |
commit | bd5217287e84d8a2fdc457dd07ce63d78c5835b4 (patch) | |
tree | b0c4121eda233d3bfeeae29a482dc8f5a3d6304b /core/Config.php | |
parent | a8f682a6039e9b765e248c6be531cce54a7903d1 (diff) |
2.16.3-rc1 (#10590)2.16.3-rc1
* Fix depraction test: use assertDeprecatedMethodIsRemovedInPiwik3
* Fix Scheduled Reports sent one hour late in daylight saving timezones (#10443)
* convert hour to send report to/from UTC, to ensure it isn't affected by daylight savings
* adds update script to change existing scheduled reports to use utc time
* code improvement
* adds missing param
* Added new event Archiving.makeNewArchiverObject to allow customising plugin archiving (#10366)
* added hook to alllow plugin archiving prevention
* cr code style notes
* reworked PR to fit CR suggestions
* added PHPDoc for hook
* Event description more consistent
* UI tests: minor changes
* Comment out Visitor Log UI tests refs #10536
* Adds test checking if all screenshots are stored in lfs
* removed screenshots not stored in lfs
* readds screenshots to lfs
* 2.16.3-b4
* Issue translation updates against 2.x-dev
* language update
* Fix bug in widget list remove where the JSON object becomes array
* 2.16.3-rc1
* console command custom-piwik-js:update should work when directory is writable and file does not exist yet (#10576)
* followup #10449
* Fix test
(cherry picked from commit fac3d63)
* Prevent chmod(): No such file or directory
* Automatically update all marketplace plugins when updating Piwik (#10527)
* update plugins and piwik at the same time
* make sure plugins are updated with piwik
* use only one try/catch
* reload plugin information once it has been installed
* make sure to clear caches after an update
* fix ui tests
* make sure to use correct php version without any extras
* Additional informations passed in the hook "isExcludedVisit" (issue #10415) (#10564)
* Additional informations passed in the hook "isExcludedVisit" (issue #10415)
* Added better description to the new parameters
* Update VisitExcluded.php
* Remove two parameters not needed as better to use the Request object
* Update VisitExcluded.php
* remove extra two parameters in VisitExcluded constructor to prevent confusion (#10593)
* Update our libs to latest https://github.com/piwik/piwik/issues/10526
* Update composer libraries to latest https://github.com/piwik/piwik/issues/10526
* Update log analytics to latest
* When updating the config file failed (or when any other file is not writable...), the Updater (for core or plugins) will now automatically throw an error and cancel the update (#10423)
* When updating the config file failed (or when any other file is not writable...), the Updater (for core or plugins) will now automatically throw an error and cancel the update
* add integration test to check the correct exception is thrown when config not writabel
* New integration test for updater
* Make test better
* When opening the visitor profile, do not apply the segment (#10533)
* When opening the visitor profile, do not apply the segment
* added ui test for profile but does work for me
* next try to make ui test work
* add expected screenshot
* added missing doc
Diffstat (limited to 'core/Config.php')
-rw-r--r-- | core/Config.php | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/core/Config.php b/core/Config.php index 01fa144a5c..f9a95feed0 100644 --- a/core/Config.php +++ b/core/Config.php @@ -12,6 +12,7 @@ namespace Piwik; use Exception; use Piwik\Application\Kernel\GlobalSettingsProvider; use Piwik\Container\StaticContainer; +use Piwik\Exception\MissingFilePermissionException; use Piwik\ProfessionalServices\Advertising; /** @@ -375,15 +376,18 @@ class Config */ protected function writeConfig($clear = true) { - if ($this->doNotWriteConfigInTests) { - return; - } - $output = $this->dumpConfig(); if ($output !== null && $output !== false ) { - $success = @file_put_contents($this->getLocalPath(), $output); + + if ($this->doNotWriteConfigInTests) { + // simulate whether it would be successful + $success = is_writable($this->getLocalPath()); + } else { + $success = @file_put_contents($this->getLocalPath(), $output); + } + if ($success === false) { throw $this->getConfigNotWritableException(); } @@ -411,6 +415,6 @@ class Config public function getConfigNotWritableException() { $path = "config/" . basename($this->getLocalPath()); - return new Exception(Piwik::translate('General_ConfigFileIsNotWritable', array("(" . $path . ")", ""))); + return new MissingFilePermissionException(Piwik::translate('General_ConfigFileIsNotWritable', array("(" . $path . ")", ""))); } } |