Skip to content

Commit

Permalink
install: MDL-19610 encapsulate empty($CFG->rolesactive) checks in a d…
Browse files Browse the repository at this point in the history
…uring_initial_install() function.
  • Loading branch information
tjhunt committed Jun 24, 2009
1 parent 6847d4d commit 31a9987
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 17 deletions.
7 changes: 4 additions & 3 deletions admin/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -244,9 +244,10 @@
// 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&lang=$CFG->lang");
Expand Down
6 changes: 3 additions & 3 deletions admin/settings/users.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
// "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;
Expand Down Expand Up @@ -138,7 +138,7 @@

$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'),
Expand All @@ -147,7 +147,7 @@

$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));
}
Expand Down
6 changes: 3 additions & 3 deletions lib/accesslib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}

Expand Down
6 changes: 3 additions & 3 deletions lib/adminlib.php
Original file line number Diff line number Diff line change
Expand Up @@ -1260,7 +1260,7 @@ public function config_write($name, $value) {

// 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;
Expand Down Expand Up @@ -3713,7 +3713,7 @@ public function __construct($name, $visiblename, $description, $types) {
*/
public function load_choices() {
global $CFG, $DB;
if (empty($CFG->rolesactive)) {
if (during_initial_install()) {
return false;
}
if (is_array($this->choices)) {
Expand All @@ -3738,7 +3738,7 @@ public function load_choices() {
public function get_defaultsetting() {
global $CFG;

if (empty($CFG->rolesactive)) {
if (during_initial_install()) {
return null;
}
$result = array();
Expand Down
2 changes: 1 addition & 1 deletion lib/pagelib.php
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,7 @@ public function set_other_editing_capability($capability) {
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();
Expand Down
15 changes: 15 additions & 0 deletions lib/setuplib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions lib/weblib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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)) {
Expand Down
2 changes: 1 addition & 1 deletion mnet/environment.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ function get_keypair() {

// 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;
Expand Down

0 comments on commit 31a9987

Please sign in to comment.