MDL-27767 install: Shows notifications rather than throwing exceptions when installat...
authorSam Hemelryk <sam@moodle.com>
Thu, 29 Sep 2011 04:07:16 +0000 (17:07 +1300)
committerSam Hemelryk <sam@moodle.com>
Mon, 5 Dec 2011 23:21:57 +0000 (12:21 +1300)
lib/db/install.php

index de4c45b..8ad8f1a 100644 (file)
@@ -27,7 +27,7 @@
 defined('MOODLE_INTERNAL') || die();
 
 function xmldb_main_install() {
 defined('MOODLE_INTERNAL') || die();
 
 function xmldb_main_install() {
-    global $CFG, $DB, $SITE;
+    global $CFG, $DB, $SITE, $OUTPUT;
 
     /// Make sure system context exists
     $syscontext = context_system::instance(0, MUST_EXIST, false);
 
     /// Make sure system context exists
     $syscontext = context_system::instance(0, MUST_EXIST, false);
@@ -178,7 +178,7 @@ function xmldb_main_install() {
     $guest->timemodified= time();
     $guest->id = $DB->insert_record('user', $guest);
     if ($guest->id != 1) {
     $guest->timemodified= time();
     $guest->id = $DB->insert_record('user', $guest);
     if ($guest->id != 1) {
-        throw new moodle_exception('generalexceptionmessage', 'error', '', 'Unexpected new guest user id!');
+        echo $OUTPUT->notification('Unexpected id generated for the Guest account. Your database configuration or clustering setup may not be fully supported', 'notifyproblem');
     }
     // Store guest id
     set_config('siteguest', $guest->id);
     }
     // Store guest id
     set_config('siteguest', $guest->id);
@@ -201,10 +201,15 @@ function xmldb_main_install() {
     $admin->timemodified = time();
     $admin->lastip       = CLI_SCRIPT ? '0.0.0.0' : getremoteaddr(); // installation hijacking prevention
     $admin->id = $DB->insert_record('user', $admin);
     $admin->timemodified = time();
     $admin->lastip       = CLI_SCRIPT ? '0.0.0.0' : getremoteaddr(); // installation hijacking prevention
     $admin->id = $DB->insert_record('user', $admin);
+
     if ($admin->id != 2) {
     if ($admin->id != 2) {
-        throw new moodle_exception('generalexceptionmessage', 'error', '', 'Unexpected new admin user id!');
+        echo $OUTPUT->notification('Unexpected id generated for the Admin account. Your database configuration or clustering setup may not be fully supported', 'notifyproblem');
+    }
+    if ($admin->id != ($guest->id + 1)) {
+        echo $OUTPUT->notification('Nonconsecutive id generated for the Admin account. Your database configuration or clustering setup may not be fully supported.', 'notifyproblem');
     }
     }
-    // Store list of admins
+
+    /// Store list of admins
     set_config('siteadmins', $admin->id);
     // Make sure user context exists
     context_user::instance($admin->id);
     set_config('siteadmins', $admin->id);
     // Make sure user context exists
     context_user::instance($admin->id);