From e6af7a2cd3964fc02a3bd91978ca1b29bcd24abd Mon Sep 17 00:00:00 2001 From: robocoder <anthon.pang@gmail.com> Date: Sun, 25 Jul 2010 14:11:23 +0000 Subject: [PATCH] refs #1507 - override umask only on public folders git-svn-id: http://dev.piwik.org/svn/trunk@2669 59fd770c-687e-43c8-a1e3-f5a4ff64c105 --- core/Piwik.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/core/Piwik.php b/core/Piwik.php index 060817cbb7..5fd809edd8 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -290,6 +290,10 @@ class Piwik */ static public function checkDirectoriesWritable($directoriesToCheck = null) { + static $publicFolders = array( + '/tmp/assets/', + ); + if( $directoriesToCheck == null ) { $directoriesToCheck = array( @@ -305,6 +309,7 @@ class Piwik $resultCheck = array(); foreach($directoriesToCheck as $directoryToCheck) { + $overrideUmask = in_array($directoryToCheck, $publicFolders); if( !preg_match('/^'.preg_quote(PIWIK_USER_PATH, '/').'/', $directoryToCheck) ) { $directoryToCheck = PIWIK_USER_PATH . $directoryToCheck; @@ -312,7 +317,14 @@ class Piwik if(!file_exists($directoryToCheck)) { + // the mode in mkdir is modified by the current umask Piwik_Common::mkdir($directoryToCheck, 0755, false); + + // override an overly restrictive umask for public folders only + if($overrideUmask) + { + @chmod($directoryToCheck, 0755); + } } $directory = Piwik_Common::realpath($directoryToCheck); -- GitLab