MDL-22546 improving dir creation handling and improving dataroot support in config...
authorPetr Skoda <skodak@moodle.org>
Sat, 22 May 2010 19:59:59 +0000 (19:59 +0000)
committerPetr Skoda <skodak@moodle.org>
Sat, 22 May 2010 19:59:59 +0000 (19:59 +0000)
lib/moodlelib.php
lib/setup.php

index 42a10e8..d3c7070 100644 (file)
@@ -9239,8 +9239,9 @@ function remove_dir($dir, $content_only=false) {
 function check_dir_exists($dir, $create=false, $recursive=false) {
     global $CFG;
 
-    if (strstr(cleardoubleslashes($dir), cleardoubleslashes($CFG->dataroot.'/')) === false) {
+    if (strpos(str_replace('\\', '/', $dir), str_replace('\\', '/', $CFG->dataroot.'/')) !== 0) {
         debugging('Warning. Wrong call to check_dir_exists(). $dir must be an absolute path under $CFG->dataroot ("' . $dir . '" is incorrect)', DEBUG_DEVELOPER);
+        return false;
     }
 
     $status = true;
index 07e9ca3..d57484d 100644 (file)
@@ -108,6 +108,16 @@ if (!defined('AJAX_SCRIPT')) {
     define('AJAX_SCRIPT', false);
 }
 
+// File permissions on created directories in the $CFG->dataroot
+if (empty($CFG->directorypermissions)) {
+    $CFG->directorypermissions = 02777;      // Must be octal (that's why it's here)
+}
+if (empty($CFG->filepermissions)) {
+    $CFG->filepermissions = ($CFG->directorypermissions & 0666); // strip execute flags
+}
+// better also set default umask because recursive mkdir() does not apply permissions recursively otherwise
+umask(0000);
+
 // exact version of currently used yui2 and 3 library
 $CFG->yui2version = '2.8.1';
 $CFG->yui3version = '3.1.1';
@@ -476,16 +486,6 @@ if (!empty($CFG->cachetype)) {
     $CFG->rcache    = false;
 }
 
-// File permissions on created directories in the $CFG->dataroot
-if (empty($CFG->directorypermissions)) {
-    $CFG->directorypermissions = 0777;      // Must be octal (that's why it's here)
-}
-if (empty($CFG->filepermissions)) {
-    $CFG->filepermissions = ($CFG->directorypermissions & 0666); // strip execute flags
-}
-// better also set default umask because recursive mkdir() does not apply permissions recursively otherwise
-umask(0000);
-
 // Calculate and set $CFG->ostype to be used everywhere. Possible values are:
 // - WINDOWS: for any Windows flavour.
 // - UNIX: for the rest