]> git.mjollnir.org Git - moodle.git/commitdiff
install: MDL-19610 encapsulate empty($CFG->rolesactive) checks in a during_initial_in...
authortjhunt <tjhunt>
Wed, 24 Jun 2009 09:17:56 +0000 (09:17 +0000)
committertjhunt <tjhunt>
Wed, 24 Jun 2009 09:17:56 +0000 (09:17 +0000)
admin/index.php
admin/settings/users.php
lib/accesslib.php
lib/adminlib.php
lib/pagelib.php
lib/setuplib.php
lib/weblib.php
mnet/environment.php

index 3719835f0f29abe79eb9abff6fb64deb5a8d28a5..e833f1842b3ee56d9a58c05e64966ef6b97591ad 100644 (file)
@@ -244,9 +244,10 @@ if ($release <> $CFG->release) {  // Update the release version
 // upgrade all plugins and other parts
 upgrade_noncore(true);
 
-// indicate that this site is fully configured except the admin password
-if (empty($CFG->rolesactive)) {
-    set_config('rolesactive', 1);
+// If this is the first install, indicate that this site is fully configured
+// except the admin password
+if (during_initial_install()) {
+    set_config('rolesactive', 1); // after this, during_initial_install will return false.
     set_config('adminsetuppending', 1);
     // we neeed this redirect to setup proper session
     upgrade_finished("index.php?sessionstarted=1&amp;lang=$CFG->lang");
index 9d61028e830f20ec474c6a4009ee3cdca42432e7..080be841d8b67bc06656d9c0e966e803dc814009 100644 (file)
@@ -82,7 +82,7 @@ if ($hassiteconfig
     // "userpolicies" settingpage
     $temp = new admin_settingpage('userpolicies', get_string('userpolicies', 'admin'));
     if ($ADMIN->fulltree) {
-        if (!empty($CFG->rolesactive)) {
+        if (!during_initial_install()) {
             $context = get_context_instance(CONTEXT_SYSTEM);
             if (!$guestrole = get_guest_role()) {
                 $guestrole->id = 0;
@@ -138,7 +138,7 @@ if ($hassiteconfig
 
         $temp->add(new admin_setting_configcheckbox('nodefaultuserrolelists', get_string('nodefaultuserrolelists', 'admin'), get_string('confignodefaultuserrolelists', 'admin'), 0));
 
-        if (!empty($CFG->rolesactive)) {
+        if (!during_initial_install()) {
             $temp->add(new admin_setting_configselect('defaultcourseroleid', get_string('defaultcourseroleid', 'admin'),
                           get_string('configdefaultcourseroleid', 'admin'), $studentrole->id, $allroles));
             $temp->add(new admin_setting_configselect('creatornewroleid', get_string('creatornewroleid', 'admin'),
@@ -147,7 +147,7 @@ if ($hassiteconfig
 
         $temp->add(new admin_setting_configcheckbox('autologinguests', get_string('autologinguests', 'admin'), get_string('configautologinguests', 'admin'), 0));
 
-        if (!empty($CFG->rolesactive)) {
+        if (!during_initial_install()) {
             $temp->add(new admin_setting_configmultiselect('nonmetacoursesyncroleids', get_string('nonmetacoursesyncroleids', 'admin'),
                       get_string('confignonmetacoursesyncroleids', 'admin'), array(), $allroles));
         }
index b55a65cd1b74de2b9d525383198306bd626f927d..761e5adbef8bd812cc92a4e9adf2318089b181c3 100755 (executable)
@@ -453,7 +453,7 @@ function get_guest_role() {
 function has_capability($capability, $context, $userid=NULL, $doanything=true) {
     global $USER, $CFG, $DB, $SCRIPT, $ACCESSLIB_PRIVATE;
 
-    if (empty($CFG->rolesactive)) {
+    if (during_initial_install()) {
         if ($SCRIPT === "/$CFG->admin/index.php" or $SCRIPT === "/$CFG->admin/cliupgrade.php") {
             // we are in an installer - roles can not work yet
             return true;
@@ -1768,7 +1768,7 @@ function load_all_capabilities() {
     global $USER, $CFG, $ACCESSLIB_PRIVATE;
 
     // roles not installed yet - we are in the middle of installation
-    if (empty($CFG->rolesactive)) {
+    if (during_initial_install()) {
         return;
     }
 
@@ -6207,7 +6207,7 @@ function get_dirty_contexts($time) {
 function mark_context_dirty($path) {
     global $CFG, $ACCESSLIB_PRIVATE;
 
-    if (empty($CFG->rolesactive)) {
+    if (during_initial_install()) {
         return;
     }
 
index 66715c581de66e950f81dea74ac588ba4ab587e8..09ccc5b740c1a82ac9d8410c7125fa7d5016365b 100644 (file)
@@ -1260,7 +1260,7 @@ abstract class admin_setting {
 
         // log change
         $log = new object();
-        $log->userid       = empty($CFG->rolesactive) ? 0 :$USER->id; // 0 as user id during install
+        $log->userid       = during_initial_install() ? 0 :$USER->id; // 0 as user id during install
         $log->timemodified = time();
         $log->plugin       = $this->plugin;
         $log->name         = $name;
@@ -3713,7 +3713,7 @@ class admin_setting_pickroles extends admin_setting_configmulticheckbox {
      */
     public function load_choices() {
         global $CFG, $DB;
-        if (empty($CFG->rolesactive)) {
+        if (during_initial_install()) {
             return false;
         }
         if (is_array($this->choices)) {
@@ -3738,7 +3738,7 @@ class admin_setting_pickroles extends admin_setting_configmulticheckbox {
     public function get_defaultsetting() {
         global $CFG;
 
-        if (empty($CFG->rolesactive)) {
+        if (during_initial_install()) {
             return null;
         }
         $result = array();
index b1518da268452021c7e17fe075de33eb9d5dcd97..13d128d2d925294a0e1b64a1c75abbdf2964d8a3 100644 (file)
@@ -608,7 +608,7 @@ class moodle_page {
     protected function starting_output() {
         global $SITE, $CFG;
 
-        if (empty($CFG->rolesactive)) {
+        if (during_initial_install()) {
             $this->_course = new stdClass;
             $this->_course->id = 1;
             moodle_setlocale();
index eb8e893529a70b8b9c1b3a485a4b710ab2752795..66cc0f40c14670569d39bf8589d87990b5f23a55 100644 (file)
@@ -352,6 +352,21 @@ function init_performance_info() {
     }
 }
 
+/**
+ * Indicates whether we are in the middle of the initial Moodle install.
+ *
+ * Very occasionally it is necessary avoid running certain bits of code before the
+ * Moodle installation has completed. The installed flag is set in admin/index.php
+ * after Moodle core and all the plugins have been installed, but just before
+ * the person doing the initial install is asked to choose the admin password.
+ *
+ * @return boolean true if the initial install is not complete.
+ */
+function during_initial_install() {
+    global $CFG;
+    return empty($CFG->rolesactive);
+}
+
 /**
  * Function to raise the memory limit to a new value.
  * Will respect the memory limit if it is higher, thus allowing
index d0074b7bf2ef27a6480c5a9ed84d5047c2fe3ab7..79139a9e1ad354c15a868df33461b4aff070b406 100644 (file)
@@ -3688,13 +3688,13 @@ function build_navigation($extranavlinks, $cm = null) {
     // Work out whether we should be showing the activity (e.g. Forums) link.
     // Note: build_navigation() is called from many places --
     // install & upgrade for example -- where we cannot count on the
-    // roles infrastructure to be defined. Hence the $CFG->rolesactive check.
+    // roles infrastructure to be defined. Hence the during_initial_install() check.
     if (!isset($CFG->hideactivitytypenavlink)) {
         $CFG->hideactivitytypenavlink = 0;
     }
     if ($CFG->hideactivitytypenavlink == 2) {
         $hideactivitylink = true;
-    } else if ($CFG->hideactivitytypenavlink == 1 && $CFG->rolesactive &&
+    } else if ($CFG->hideactivitytypenavlink == 1 && !during_initial_install() &&
             !empty($COURSE->id) && $COURSE->id != SITEID) {
         if (!isset($COURSE->context)) {
             $COURSE->context = get_context_instance(CONTEXT_COURSE, $COURSE->id);
@@ -6931,7 +6931,7 @@ function convert_tabrows_to_tree($tabrows, $selected, $inactive, $activated) {
 function page_doc_link($text='', $iconpath='') {
     global $CFG, $PAGE;
 
-    if (empty($CFG->docroot) || empty($CFG->rolesactive)) {
+    if (empty($CFG->docroot) || during_initial_install()) {
         return '';
     }
     if (!has_capability('moodle/site:doclinks', $PAGE->context)) {
index a4792717aed0d1321f4aad2a0717ea5170d898ea..2af14ed2c3ef1ed81772da626f852ee23538953f 100644 (file)
@@ -64,7 +64,7 @@ class mnet_environment {
 
         // We don't generate keys on install/upgrade because we want the USER
         // record to have an email address, city and country already.
-        if (empty($CFG->rolesactive)) return true;
+        if (during_initial_install()) return true;
         if ($CFG->mnet_dispatcher_mode == 'off') return true;
         if (!extension_loaded("openssl")) return true;
         if (!empty($this->keypair)) return true;