diff --git a/course/renderer.php b/course/renderer.php index 47992ebd192..8c20c9258a2 100644 --- a/course/renderer.php +++ b/course/renderer.php @@ -1156,7 +1156,14 @@ class core_course_renderer extends plugin_renderer_base { // This is a request for the course information. $courseid = required_param('courseid', PARAM_INT); - $course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST); + $course = $DB->get_record('course', ['id' => $courseid], '*', IGNORE_MISSING); + if ($course === false) { + throw new \moodle_exception('invalidcourseid'); + } + $coursecontext = context_course::instance($course->id, MUST_EXIST); + if ($course->visible == 0 && !has_capability('moodle/course:viewhiddencourses', $coursecontext)) { + throw new \moodle_exception('invalidcourseid'); + } $chelper = new coursecat_helper(); $chelper->set_show_courses(self::COURSECAT_SHOW_COURSES_EXPANDED);