From 16c5835a804d3dcede2d813389a2df0eeeff09a6 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Mon, 10 Jan 2022 17:25:47 +0000 Subject: [PATCH 1/2] MDL-73138 user: avoid double encoding participant filter values. --- lib/templates/datafilter/filter_type.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/templates/datafilter/filter_type.mustache b/lib/templates/datafilter/filter_type.mustache index c841d5d0b95..8fae28768d9 100644 --- a/lib/templates/datafilter/filter_type.mustache +++ b/lib/templates/datafilter/filter_type.mustache @@ -56,6 +56,6 @@ }}{{#filtertypeclass}}data-filter-type-class="{{filtertypeclass}}" {{/filtertypeclass}}{{! }}> {{#values}} - + {{/values}} From 017f8a9c4daa912fd69f028f9d882eea4193c374 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Tue, 21 Mar 2023 12:01:55 +0000 Subject: [PATCH 2/2] MDL-73138 group: remove double encoding of group/role names. --- group/index.php | 7 ++++--- user/selector/lib.php | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/group/index.php b/group/index.php index 67654cacef3..4ec9e893e58 100644 --- a/group/index.php +++ b/group/index.php @@ -95,7 +95,7 @@ switch ($action) { foreach($groupmemberroles as $roleid=>$roledata) { $shortroledata = new stdClass(); - $shortroledata->name = $roledata->name; + $shortroledata->name = html_entity_decode($roledata->name, ENT_QUOTES, 'UTF-8'); $shortroledata->users = array(); foreach($roledata->users as $member) { $shortmember = new stdClass(); @@ -183,7 +183,7 @@ if ($groups) { foreach ($groups as $group) { $selected = false; $usercount = $DB->count_records('groups_members', array('groupid' => $group->id)); - $groupname = format_string($group->name) . ' (' . $usercount . ')'; + $groupname = format_string($group->name, true, ['context' => $context, 'escape' => false]) . ' (' . $usercount . ')'; if (in_array($group->id, $groupids)) { $selected = true; if ($singlegroup) { @@ -234,8 +234,9 @@ if ($singlegroup) { $users[] = $shortmember; } + $members[] = (object)[ - 'role' => s($roledata->name), + 'role' => html_entity_decode($roledata->name, ENT_QUOTES, 'UTF-8'), 'rolemembers' => $users ]; } diff --git a/user/selector/lib.php b/user/selector/lib.php index 43cb5f478bd..c4fe61e7e09 100644 --- a/user/selector/lib.php +++ b/user/selector/lib.php @@ -763,11 +763,11 @@ abstract class groups_user_selector_base extends user_selector_base { foreach ($roles as $role) { if ($search) { $a = new stdClass; - $a->role = $role->name; + $a->role = html_entity_decode($role->name, ENT_QUOTES, 'UTF-8'); $a->search = $search; $groupname = get_string('matchingsearchandrole', '', $a); } else { - $groupname = $role->name; + $groupname = html_entity_decode($role->name, ENT_QUOTES, 'UTF-8'); } $groupedusers[$groupname] = $role->users; foreach ($groupedusers[$groupname] as &$user) {