MDL-78026 group: format retrieved group names from external methods.

This commit is contained in:
Paul Holden 2023-04-28 16:51:33 +01:00
parent 063ffc8073
commit 543dcf3e9c
No known key found for this signature in database
GPG key ID: A81A96D6045F6164
2 changed files with 18 additions and 7 deletions

View file

@ -218,7 +218,8 @@ class core_group_external extends external_api {
} }
require_capability('moodle/course:managegroups', $context); require_capability('moodle/course:managegroups', $context);
list($group->description, $group->descriptionformat) = $group->name = \core_external\util::format_string($group->name, $context);
[$group->description, $group->descriptionformat] =
\core_external\util::format_text($group->description, $group->descriptionformat, \core_external\util::format_text($group->description, $group->descriptionformat,
$context, 'group', 'description', $group->id); $context, 'group', 'description', $group->id);
@ -240,7 +241,7 @@ class core_group_external extends external_api {
array( array(
'id' => new external_value(PARAM_INT, 'group record id'), 'id' => new external_value(PARAM_INT, 'group record id'),
'courseid' => new external_value(PARAM_INT, 'id of course'), 'courseid' => new external_value(PARAM_INT, 'id of course'),
'name' => new external_value(PARAM_TEXT, 'multilang compatible name, course unique'), 'name' => new external_value(PARAM_TEXT, 'group name'),
'description' => new external_value(PARAM_RAW, 'group description text'), 'description' => new external_value(PARAM_RAW, 'group description text'),
'descriptionformat' => new external_format_value('description'), 'descriptionformat' => new external_format_value('description'),
'enrolmentkey' => new external_value(PARAM_RAW, 'group enrol secret phrase'), 'enrolmentkey' => new external_value(PARAM_RAW, 'group enrol secret phrase'),
@ -296,7 +297,8 @@ class core_group_external extends external_api {
$groups = array(); $groups = array();
foreach ($gs as $group) { foreach ($gs as $group) {
list($group->description, $group->descriptionformat) = $group->name = \core_external\util::format_string($group->name, $context);
[$group->description, $group->descriptionformat] =
\core_external\util::format_text($group->description, $group->descriptionformat, \core_external\util::format_text($group->description, $group->descriptionformat,
$context, 'group', 'description', $group->id); $context, 'group', 'description', $group->id);
$groups[] = (array)$group; $groups[] = (array)$group;
@ -317,7 +319,7 @@ class core_group_external extends external_api {
array( array(
'id' => new external_value(PARAM_INT, 'group record id'), 'id' => new external_value(PARAM_INT, 'group record id'),
'courseid' => new external_value(PARAM_INT, 'id of course'), 'courseid' => new external_value(PARAM_INT, 'id of course'),
'name' => new external_value(PARAM_TEXT, 'multilang compatible name, course unique'), 'name' => new external_value(PARAM_TEXT, 'group name'),
'description' => new external_value(PARAM_RAW, 'group description text'), 'description' => new external_value(PARAM_RAW, 'group description text'),
'descriptionformat' => new external_format_value('description'), 'descriptionformat' => new external_format_value('description'),
'enrolmentkey' => new external_value(PARAM_RAW, 'group enrol secret phrase'), 'enrolmentkey' => new external_value(PARAM_RAW, 'group enrol secret phrase'),
@ -1304,7 +1306,8 @@ class core_group_external extends external_api {
'g.id, g.name, g.description, g.descriptionformat, g.idnumber'); 'g.id, g.name, g.description, g.descriptionformat, g.idnumber');
foreach ($groups as $group) { foreach ($groups as $group) {
list($group->description, $group->descriptionformat) = $group->name = \core_external\util::format_string($group->name, $course->context);
[$group->description, $group->descriptionformat] =
\core_external\util::format_text($group->description, $group->descriptionformat, \core_external\util::format_text($group->description, $group->descriptionformat,
$course->context, 'group', 'description', $group->id); $course->context, 'group', 'description', $group->id);
$group->courseid = $course->id; $group->courseid = $course->id;
@ -1343,7 +1346,7 @@ class core_group_external extends external_api {
return new external_single_structure( return new external_single_structure(
array( array(
'id' => new external_value(PARAM_INT, 'group record id'), 'id' => new external_value(PARAM_INT, 'group record id'),
'name' => new external_value(PARAM_TEXT, 'multilang compatible name, course unique'), 'name' => new external_value(PARAM_TEXT, 'group name'),
'description' => new external_value(PARAM_RAW, 'group description text'), 'description' => new external_value(PARAM_RAW, 'group description text'),
'descriptionformat' => new external_format_value('description'), 'descriptionformat' => new external_format_value('description'),
'idnumber' => new external_value(PARAM_RAW, 'id number'), 'idnumber' => new external_value(PARAM_RAW, 'id number'),
@ -1428,7 +1431,8 @@ class core_group_external extends external_api {
$groups = groups_get_activity_allowed_groups($cm, $user->id); $groups = groups_get_activity_allowed_groups($cm, $user->id);
foreach ($groups as $group) { foreach ($groups as $group) {
list($group->description, $group->descriptionformat) = $group->name = \core_external\util::format_string($group->name, $coursecontext);
[$group->description, $group->descriptionformat] =
\core_external\util::format_text($group->description, $group->descriptionformat, \core_external\util::format_text($group->description, $group->descriptionformat,
$coursecontext, 'group', 'description', $group->id); $coursecontext, 'group', 'description', $group->id);
$group->courseid = $cm->course; $group->courseid = $cm->course;

View file

@ -1,6 +1,13 @@
This files describes API changes in /group/*, This files describes API changes in /group/*,
information provided here is intended especially for developers. information provided here is intended especially for developers.
=== 4.3 ===
* The following external methods now return group names correctly formatted:
- `core_group_get_groups`
- `core_group_get_course_groups`
- `core_group_get_course_user_groups`
- `core_group_get_activity_allowed_groups`
=== 4.2 === === 4.2 ===
* `\core_group\visibility` class added to support new `visibility` field in group records. This holds the visibility constants * `\core_group\visibility` class added to support new `visibility` field in group records. This holds the visibility constants
and helper functions for applying visibility restrictions when querying groups or group members in the database. and helper functions for applying visibility restrictions when querying groups or group members in the database.