diff options
Diffstat (limited to 'plugins/CustomPiwikJs/Diagnostic/PiwikJsCheck.php')
-rw-r--r-- | plugins/CustomPiwikJs/Diagnostic/PiwikJsCheck.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/plugins/CustomPiwikJs/Diagnostic/PiwikJsCheck.php b/plugins/CustomPiwikJs/Diagnostic/PiwikJsCheck.php new file mode 100644 index 0000000000..3766dc650b --- /dev/null +++ b/plugins/CustomPiwikJs/Diagnostic/PiwikJsCheck.php @@ -0,0 +1,54 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ +namespace Piwik\Plugins\CustomPiwikJs\Diagnostic; + +use Piwik\Filechecks; +use Piwik\Filesystem; +use Piwik\Plugins\CustomPiwikJs\File; +use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic; +use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult; +use Piwik\SettingsServer; +use Piwik\Translation\Translator; + +/** + * Check Piwik JS is writable + */ +class PiwikJsCheck implements Diagnostic +{ + /** + * @var Translator + */ + private $translator; + + public function __construct(Translator $translator) + { + $this->translator = $translator; + } + + public function execute() + { + $label = $this->translator->translate('CustomPiwikJs_DiagnosticPiwikJsWritable'); + + $file = new File(PIWIK_DOCUMENT_ROOT . '/piwik.js'); + + if ($file->hasWriteAccess()) { + return array(DiagnosticResult::singleResult($label, DiagnosticResult::STATUS_OK, '')); + } + + $comment = $this->translator->translate('CustomPiwikJs_DiagnosticPiwikJsNotWritable'); + + if(!SettingsServer::isWindows()) { + $realpath = Filesystem::realpath(PIWIK_INCLUDE_PATH . '/piwik.js'); + $command = "<br/><code> chmod +w $realpath<br/> chown ". Filechecks::getUserAndGroup() ." " . $realpath . "</code><br />"; + $comment .= $this->translator->translate('CustomPiwikJs_DiagnosticPiwikJsMakeWritable', $command); + } + + return array(DiagnosticResult::singleResult($label, DiagnosticResult::STATUS_WARNING, $comment)); + } + +} |