From 46bd37bfa83ababa7c2fd5f13a87ba937a4807c4 Mon Sep 17 00:00:00 2001 From: skodak Date: Fri, 25 Apr 2008 14:10:02 +0000 Subject: [PATCH] MDL-14556 reset coursepage state after switchrole merged from MOODLE_19_STABLE --- course/view.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/course/view.php b/course/view.php index 04f83fab40..60b7547526 100644 --- a/course/view.php +++ b/course/view.php @@ -51,6 +51,7 @@ require_login($course); // Switchrole - sanity check in cost-order... + $reset_user_allowed_editing = false; if ($switchrole > 0 && confirm_sesskey() && has_capability('moodle/role:switchroles', $context)) { // is this role assignable in this context? @@ -61,6 +62,13 @@ // Double check that this role is allowed here require_login($course->id); } + // reset course page state - this prevents some weird problems ;-) + $USER->activitycopy = false; + $USER->activitycopycourse = NULL; + unset($USER->activitycopyname); + unset($SESSION->modform); + $USER->editing = 0; + $reset_user_allowed_editing = true; } //If course is hosted on an external server, redirect to corresponding @@ -87,6 +95,10 @@ $PAGE = page_create_object(PAGE_COURSE_VIEW, $course->id); $pageblocks = blocks_setup($PAGE, BLOCKS_PINNED_BOTH); + if ($reset_user_allowed_editing) { + // ugly hack + unset($PAGE->_user_allowed_editing); + } if (!isset($USER->editing)) { $USER->editing = 0; -- 2.39.5