From 20cd50e2e71dcc0889371ebce4dfcb8b70260e79 Mon Sep 17 00:00:00 2001 From: tjhunt Date: Tue, 9 Dec 2008 04:49:06 +0000 Subject: [PATCH] course settings: MDL-17501 fix potential problem for people upgrading 1.6 -> 1.9.4. I am amazed that Petr spotted this. Great catch. --- lib/db/upgrade.php | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 10258b19373..f3f1cdd13b8 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -3076,20 +3076,22 @@ function xmldb_main_upgrade($oldversion=0) { /// For MDL-17501. Ensure that any role that has moodle/course:update also /// has moodle/course:visibility. if ($result && $oldversion < 2007101532.10) { - /// Get the roles with 'moodle/course:update'. - $systemcontext = get_context_instance(CONTEXT_SYSTEM); - $roles = get_roles_with_capability('moodle/course:update', CAP_ALLOW, $systemcontext); + if (!empty($CFG->rolesactive)) { // In case we are upgrading from Moodle 1.6. + /// Get the roles with 'moodle/course:update'. + $systemcontext = get_context_instance(CONTEXT_SYSTEM); + $roles = get_roles_with_capability('moodle/course:update', CAP_ALLOW, $systemcontext); - /// Give those roles 'moodle/course:visibility'. - foreach ($roles as $role) { - assign_capability('moodle/course:visibility', CAP_ALLOW, $role->id, $systemcontext->id); + /// Give those roles 'moodle/course:visibility'. + foreach ($roles as $role) { + assign_capability('moodle/course:visibility', CAP_ALLOW, $role->id, $systemcontext->id); + } + + /// Force all sessions to refresh access data. + mark_context_dirty($systemcontext->path); } - /// Force all sessions to refresh access data. - mark_context_dirty($systemcontext->path); - - /// Main savepoint reached - upgrade_main_savepoint($result, 2007101532.10); + /// Main savepoint reached + upgrade_main_savepoint($result, 2007101532.10); } return $result;