MDL-52573 report_grader: only check cap of installed plugins

Previously we were linking to gradebook plugins regardless of whether
they were installed. This should be fixed properly in MDL-52678.
This commit is contained in:
Dan Poltawski 2016-01-07 11:16:59 +00:00
parent e65dfd9f28
commit 2811831ae6

View File

@ -589,9 +589,16 @@ class grade_report_grader extends grade_report {
$rows = array();
$showuserimage = $this->get_pref('showuserimage');
$canseeuserreport = has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context);
$canseesingleview = has_all_capabilities(array('gradereport/singleview:view', 'moodle/grade:viewall',
// FIXME: MDL-52678 This get_capability_info is hacky and we should have an API for inserting grade row links instead.
$canseeuserreport = false;
$canseesingleview = false;
if (get_capability_info('gradereport/'.$CFG->grade_profilereport.':view')) {
$canseeuserreport = has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context);
}
if (get_capability_info('gradereport/singleview:view')) {
$canseesingleview = has_all_capabilities(array('gradereport/singleview:view', 'moodle/grade:viewall',
'moodle/grade:edit'), $this->context);
}
$hasuserreportcell = $canseeuserreport || $canseesingleview;
$strfeedback = $this->get_lang_string("feedback");
@ -838,17 +845,21 @@ class grade_report_grader extends grade_report {
}
$singleview = '';
if (has_all_capabilities(array('gradereport/singleview:view', 'moodle/grade:viewall',
'moodle/grade:edit'), $this->context)) {
$url = new moodle_url('/grade/report/singleview/index.php', array(
'id' => $this->course->id,
'item' => 'grade',
'itemid' => $element['object']->id));
$singleview = $OUTPUT->action_icon(
$url,
new pix_icon('t/editstring', get_string('singleview', 'grades', $element['object']->get_name()))
);
// FIXME: MDL-52678 This is extremely hacky we should have an API for inserting grade column links.
if (get_capability_info('gradereport/singleview:view')) {
if (has_all_capabilities(array('gradereport/singleview:view', 'moodle/grade:viewall',
'moodle/grade:edit'), $this->context)) {
$url = new moodle_url('/grade/report/singleview/index.php', array(
'id' => $this->course->id,
'item' => 'grade',
'itemid' => $element['object']->id));
$singleview = $OUTPUT->action_icon(
$url,
new pix_icon('t/editstring', get_string('singleview', 'grades', $element['object']->get_name()))
);
}
}
$itemcell->colspan = $colspan;