From a620c573bcfe40c715eb4d3a4c8bd20e250b847d Mon Sep 17 00:00:00 2001 From: Mike Churchward Date: Tue, 1 Nov 2016 10:27:53 -0400 Subject: [PATCH] MDL-48055 q_u_outline, q_u_complete: added checks for grade visibility. --- mod/quiz/lib.php | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index 06a1a2f1dc1..6212ca6491d 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -458,7 +458,13 @@ function quiz_user_outline($course, $user, $mod, $quiz) { } $result = new stdClass(); - $result->info = get_string('grade') . ': ' . $grade->str_long_grade; + // If the user can't see hidden grades, don't return that information. + $gitem = grade_item::fetch(array('id' => $grades->items[0]->id)); + if (!$gitem->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) { + $result->info = get_string('grade') . ': ' . $grade->str_long_grade; + } else { + $result->info = get_string('grade') . ': ' . get_string('hidden', 'grades'); + } // Datesubmitted == time created. dategraded == time modified or time overridden // if grade was last modified by the user themselves use date graded. Otherwise use @@ -491,9 +497,18 @@ function quiz_user_complete($course, $user, $mod, $quiz) { $grades = grade_get_grades($course->id, 'mod', 'quiz', $quiz->id, $user->id); if (!empty($grades->items[0]->grades)) { $grade = reset($grades->items[0]->grades); - echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade); - if ($grade->str_feedback) { - echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback); + // If the user can't see hidden grades, don't return that information. + $gitem = grade_item::fetch(array('id' => $grades->items[0]->id)); + if (!$gitem->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) { + echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade); + if ($grade->str_feedback) { + echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback); + } + } else { + echo $OUTPUT->container(get_string('grade') . ': ' . get_string('hidden', 'grades')); + if ($grade->str_feedback) { + echo $OUTPUT->container(get_string('feedback').': '.get_string('hidden', 'grades')); + } } }