MDL-58318 setuplib: Redirect on https mismatch
authorDamyon Wiese <damyon@moodle.com>
Wed, 24 May 2017 05:42:34 +0000 (13:42 +0800)
committerDamyon Wiese <damyon@moodle.com>
Wed, 24 May 2017 05:42:34 +0000 (13:42 +0800)
When the wwwroot indicates https support and a page is accessed over http,
redirect to the wwwroot. This is a better experience than displaying an error.

lib/setuplib.php

index 9759ced..5314dc9 100644 (file)
@@ -897,7 +897,11 @@ function initialise_fullme() {
     // (That is, the Moodle server uses http, with an external box translating everything to https).
     if (empty($CFG->sslproxy)) {
         if ($rurl['scheme'] === 'http' and $wwwroot['scheme'] === 'https') {
-            print_error('sslonlyaccess', 'error');
+            if (defined('REQUIRE_CORRECT_ACCESS') && REQUIRE_CORRECT_ACCESS) {
+                print_error('sslonlyaccess', 'error');
+            } else {
+                redirect($CFG->wwwroot, get_string('wwwrootmismatch', 'error', $CFG->wwwroot), 3);
+            }
         }
     } else {
         if ($wwwroot['scheme'] !== 'https') {