MDL-51167 tool_monitor: check course visibility and user capabilities
authorSimey Lameze <simey@moodle.com>
Mon, 29 Feb 2016 05:39:39 +0000 (13:39 +0800)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 8 Mar 2016 02:08:33 +0000 (03:08 +0100)
admin/tool/monitor/lib.php

index 7e91f0b..2904832 100644 (file)
@@ -103,10 +103,13 @@ function tool_monitor_get_user_courses() {
     if (has_capability('tool/monitor:subscribe', context_system::instance())) {
         $options[0] = get_string('site');
     }
-    if ($courses = get_user_capability_course('tool/monitor:subscribe', null, true, 'fullname', $orderby)) {
+    if ($courses = get_user_capability_course('tool/monitor:subscribe', null, true, 'fullname, visible', $orderby)) {
         foreach ($courses as $course) {
-            $options[$course->id] = format_string($course->fullname, true,
-                array('context' => context_course::instance($course->id)));
+            if ($course->visible === true || has_capability('moodle/course:viewhiddencourses',
+                    context_course::instance($course->id))) {
+                $options[$course->id] = format_string($course->fullname, true,
+                    array('context' => context_course::instance($course->id)));
+            }
         }
     }
     // If there are no courses and there is no site permission then return false.