From 3b3535c7ea74ef92e8d65dce40b2fbf2d0e327e8 Mon Sep 17 00:00:00 2001 From: David Knuplesch Date: Fri, 1 Sep 2017 12:58:02 +0200 Subject: [PATCH] MDL-55358 mod_lti: Add group variable Moodle.Person.userGroupIds --- mod/lti/locallib.php | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/mod/lti/locallib.php b/mod/lti/locallib.php index 949644998ad..0d6c17f6b51 100644 --- a/mod/lti/locallib.php +++ b/mod/lti/locallib.php @@ -373,7 +373,7 @@ function lti_build_sourcedid($instanceid, $userid, $servicesalt, $typeid = null, * @return array Request details */ function lti_build_request($instance, $typeconfig, $course, $typeid = null, $islti2 = false) { - global $USER, $COURSE, $CFG; + global $USER, $CFG; if (empty($instance->cmid)) { $instance->cmid = 0; @@ -385,7 +385,6 @@ function lti_build_request($instance, $typeconfig, $course, $typeid = null, $isl 'user_id' => $USER->id, 'lis_person_sourcedid' => $USER->idnumber, 'roles' => $role, - 'groups' => implode(",", groups_get_user_groups($COURSE->id, $USER->id)[0]), 'context_id' => $course->id, 'context_label' => trim(html_to_text($course->shortname, 0)), 'context_title' => trim(html_to_text($course->fullname, 0)), @@ -1248,6 +1247,8 @@ function lti_parse_custom_parameter($toolproxy, $tool, $params, $value, $islti2) $value = str_replace('
' , ' ', $value); $value = format_string($value); } + } else { + $value = lti_calculate_custom_parameter($value1); } } else if ($islti2) { $val = $value; @@ -1266,6 +1267,23 @@ function lti_parse_custom_parameter($toolproxy, $tool, $params, $value, $islti2) return $value; } +/** + * Calculates the value of a custom parameter that has not been specified earlier + * + * @param string $value Custom parameter value + * + * @return string Calculated value of custom parameter + */ +function lti_calculate_custom_parameter($value) { + global $USER, $COURSE; + + switch ($value) { + case 'Moodle.Person.userGroupIds': + return implode(",", groups_get_user_groups($COURSE->id, $USER->id)[0]); + } + return null; +} + /** * Used for building the names of the different custom parameters * @@ -2556,7 +2574,7 @@ function lti_get_capabilities() { 'Membership.role' => 'roles', 'Result.sourcedId' => 'lis_result_sourcedid', 'Result.autocreate' => 'lis_outcome_service_url', - 'Group.sourceId' => 'groups'); + 'Moodle.Person.userGroupIds' => null); return $capabilities;