MDL-55876 core_course: prevent changes on front page course
authorSimey Lameze <simey@moodle.com>
Thu, 15 Sep 2016 07:06:53 +0000 (15:06 +0800)
committerSimey Lameze <simey@moodle.com>
Mon, 19 Sep 2016 07:45:43 +0000 (15:45 +0800)
course/lib.php
course/tests/courselib_test.php

index 0ed11fc..631500d 100644 (file)
@@ -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);
 
index f1a1b8a..ce3105f 100644 (file)
@@ -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);
+    }
 }