diff --git a/blocks/admin/block_admin.php b/blocks/admin/block_admin.php index bd963d86e99..19b03475d39 100644 --- a/blocks/admin/block_admin.php +++ b/blocks/admin/block_admin.php @@ -70,10 +70,20 @@ class block_admin extends block_list { } /// View course grades (or just your own grades, same link) - if ((has_capability('moodle/grade:viewall', $context) or - (has_capability('moodle/grade:view', $context) && $course->showgrades)) && ($course->id!==SITEID)) { - $this->content->items[]=''.get_string('grades').''; - $this->content->icons[]=''; + /// find all accessible reports + if ($course->id!==SITEID) { + if ($reports = get_list_of_plugins('grade/report', 'CVS')) { // Get all installed reports + foreach ($reports as $key => $plugin) { // Remove ones we can't see + if (!has_capability('gradereport/'.$plugin.':view', $context)) { + unset($reports[$key]); + } + } + } + + if (!empty($reports)) { + $this->content->items[]=''.get_string('grades').''; + $this->content->icons[]=''; + } } /// Course outcomes (to help give it more prominence because it's important)