diff --git a/course/lib.php b/course/lib.php index 0ed11fc6b87..631500de196 100644 --- a/course/lib.php +++ b/course/lib.php @@ -2776,6 +2776,11 @@ function update_course($data, $editoroptions = NULL) { $data->timemodified = time(); + // Prevent changes on front page course. + if ($data->id == SITEID) { + throw new moodle_exception('invalidcourse', 'error'); + } + $oldcourse = course_get_format($data->id)->get_course(); $context = context_course::instance($oldcourse->id); diff --git a/course/tests/courselib_test.php b/course/tests/courselib_test.php index f1a1b8a6f25..ce3105ff702 100644 --- a/course/tests/courselib_test.php +++ b/course/tests/courselib_test.php @@ -3124,4 +3124,17 @@ class core_course_courselib_testcase extends advanced_testcase { $adminoptions = course_get_user_administration_options($course, $context); $this->assertFalse($adminoptions->badges); } + + /** + * Test test_update_course_frontpage_category. + */ + public function test_update_course_frontpage_category() { + // Fetch front page course. + $course = get_course(SITEID); + // Test update information on front page course. + $course->category = 99; + $this->expectException('moodle_exception'); + $this->expectExceptionMessage(get_string('invalidcourse', 'error')); + update_course($course); + } }