MDL-28030 setup: Ensure $CFG->urlrewriteclass is properly setup
authorDan Poltawski <dan@moodle.com>
Tue, 16 Feb 2016 10:01:45 +0000 (10:01 +0000)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 16 Feb 2016 10:35:07 +0000 (11:35 +0100)
(To avoid crippling a site)

lib/setup.php

index a1324f0..4c5930b 100644 (file)
@@ -947,6 +947,17 @@ if ($USER && function_exists('apache_note')
     apache_note('MOODLEUSER', $logname);
 }
 
+// Ensure the urlrewriteclass is setup correctly (to avoid crippling site).
+if (isset($CFG->urlrewriteclass)) {
+    if (!class_exists($CFG->urlrewriteclass)) {
+        debugging("urlrewriteclass {$CFG->urlrewriteclass} was not found, disabling.");
+        unset($CFG->urlrewriteclass);
+    } else if (!in_array('core\output\url_rewriter', class_implements($CFG->urlrewriteclass))) {
+        debugging("{$CFG->urlrewriteclass} does not implement core\output\url_rewriter, disabling.", DEBUG_DEVELOPER);
+        unset($CFG->urlrewriteclass);
+    }
+}
+
 // Use a custom script replacement if one exists
 if (!empty($CFG->customscripts)) {
     if (($customscript = custom_script_path()) !== false) {