From bdcfa3d4ca47ea305eac0ea869f0b6e7156d48f2 Mon Sep 17 00:00:00 2001 From: Andrew Gosali Date: Fri, 7 Feb 2025 16:10:54 +0700 Subject: [PATCH] MDL-84447 mod_assign: show anonymous name when selecting user on blind submissions --- mod/assign/classes/output/grading_actionmenu.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mod/assign/classes/output/grading_actionmenu.php b/mod/assign/classes/output/grading_actionmenu.php index b02ce48f9d5..eb5f42341e0 100644 --- a/mod/assign/classes/output/grading_actionmenu.php +++ b/mod/assign/classes/output/grading_actionmenu.php @@ -57,6 +57,9 @@ class grading_actionmenu implements templatable, renderable { /** @var array Applied user initials filters, containing 'firstname' and 'lastname'. **/ protected array $userinitials; + /** @var bool true if the user has this capability. Otherwise false. */ + private bool $hasviewblind; + /** * Constructor for this object. * @@ -81,6 +84,9 @@ class grading_actionmenu implements templatable, renderable { $this->assign = $assign; $this->showdownload = $this->assign->is_any_submission_plugin_enabled() && $this->assign->count_submissions(); $this->userinitials = $userinitials; + + // Check if we have the elevated view capablities to see the blind details. + $this->hasviewblind = has_capability('mod/assign:viewblinddetails', $this->assign->get_context()); } /** @@ -101,12 +107,17 @@ class grading_actionmenu implements templatable, renderable { // string with the full name of the selected user. $usersearch = $userid ? fullname(\core_user::get_user($userid)) : optional_param('search', '', PARAM_NOTAGS); + $isblind = $this->assign->is_blind_marking() && !$this->hasviewblind; + if ($isblind) { + $usersearch = $userid ? get_string('hiddenuser', 'assign') . $this->assign->get_uniqueid_for_user($userid) : $usersearch; + } + $resetlink = new moodle_url('/mod/assign/view.php', ['id' => $this->cmid, 'action' => 'grading']); $groupid = groups_get_course_group($course, true); $userselector = new user_selector( course: $course, resetlink: $resetlink, - userid: $userid, + userid: !$isblind ? $userid : null, groupid: $groupid, usersearch: $usersearch, instanceid: $this->assign->get_instance()->id