diff --git a/grade/report/singleview/renderer.php b/grade/report/singleview/renderer.php index a3ddb52e8ff..6b60db69ce7 100644 --- a/grade/report/singleview/renderer.php +++ b/grade/report/singleview/renderer.php @@ -53,11 +53,20 @@ class gradereport_singleview_renderer extends plugin_renderer_base { // If a particular user option is selected (not in zero state). if ($userid) { // A single user selected. $user = core_user::get_user($userid); + + $context = context_course::instance($course->id); + $hiddenuserfields = explode(',', get_config('core', 'hiddenuserfields')); + + // Determine whether the user's email can be displayed. + $isemailvisible = !in_array('email', $hiddenuserfields) || + has_capability('moodle/course:viewhiddenuserfields', $context); + $data['selectedoption'] = [ 'image' => $this->user_picture($user, ['size' => 40, 'link' => false]), 'text' => fullname($user), - 'additionaltext' => $user->email, + 'additionaltext' => $isemailvisible ? $user->email : '', ]; + $data['userid'] = $userid; } $this->page->requires->js_call_amd('gradereport_singleview/user', 'init'); diff --git a/grade/report/user/renderer.php b/grade/report/user/renderer.php index 1191026a5b6..9e97b8f8ffb 100644 --- a/grade/report/user/renderer.php +++ b/grade/report/user/renderer.php @@ -100,11 +100,20 @@ class gradereport_user_renderer extends plugin_renderer_base { if (!is_null($userid)) { if ($userid) { // A single user selected. $user = core_user::get_user($userid); + + $context = context_course::instance($course->id); + $hiddenuserfields = explode(',', get_config('core', 'hiddenuserfields')); + + // Determine whether the user's email can be displayed. + $isemailvisible = !in_array('email', $hiddenuserfields) || + has_capability('moodle/course:viewhiddenuserfields', $context); + $data['selectedoption'] = [ - 'image' => $this->user_picture($user, ['size' => 40, 'link' => false]), - 'text' => fullname($user), - 'additionaltext' => $user->email, + 'image' => $this->user_picture($user, ['size' => 40, 'link' => false]), + 'text' => fullname($user), + 'additionaltext' => $isemailvisible ? $user->email : '', ]; + $data['userid'] = $userid; } else { // All users selected. // Get the total number of users. $defaultgradeshowactiveenrol = !empty($CFG->grade_report_showonlyactiveenrol);