diff --git a/mod/assign/externallib.php b/mod/assign/externallib.php index 92d0e83001a..adb0a7996bd 100644 --- a/mod/assign/externallib.php +++ b/mod/assign/externallib.php @@ -2775,7 +2775,9 @@ class mod_assign_external extends external_api { // Skip the expensive lookup of user detail if we're blind marking or the caller // hasn't asked for user details to be embedded. if (!$assign->is_blind_marking() && $embeduser) { - $return['user'] = user_get_user_details($participant, $course); + if ($userdetails = user_get_user_details($participant, $course)) { + $return['user'] = $userdetails; + } } return $return; diff --git a/mod/assign/tests/externallib_test.php b/mod/assign/tests/externallib_test.php index 38906920540..e5a0ccf50ac 100644 --- a/mod/assign/tests/externallib_test.php +++ b/mod/assign/tests/externallib_test.php @@ -2203,6 +2203,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->setUser($teacher); $result = mod_assign_external::get_participant($assign->id, $student->id, false); + $result = external_api::clean_returnvalue(mod_assign_external::get_participant_returns(), $result); } /** @@ -2224,6 +2225,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->setUser($teacher); $result = mod_assign_external::get_participant($assign->id, $student->id, true); + $result = external_api::clean_returnvalue(mod_assign_external::get_participant_returns(), $result); $this->assertEquals($student->id, $result['id']); $this->assertFalse(fullname($student) == $result['fullname']); $this->assertFalse($result['submitted']); @@ -2231,7 +2233,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->assertFalse($result['grantedextension']); $this->assertTrue($result['blindmarking']); // Make sure we don't get any additional info. - $this->assertTrue(empty($result['user'])); + $this->assertArrayNotHasKey('user', $result); } /** @@ -2277,6 +2279,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->setUser($teacher); $result = mod_assign_external::get_participant($assignmodule->id, $student->id, false); + $result = external_api::clean_returnvalue(mod_assign_external::get_participant_returns(), $result); $this->assertEquals($student->id, $result['id']); $this->assertEquals(fullname($student), $result['fullname']); $this->assertTrue($result['submitted']); @@ -2284,7 +2287,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->assertFalse($result['grantedextension']); $this->assertFalse($result['blindmarking']); // Make sure we don't get any additional info. - $this->assertTrue(empty($result['user'])); + $this->assertArrayNotHasKey('user', $result); } /** @@ -2305,6 +2308,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->setUser($teacher); $result = mod_assign_external::get_participant($assign->id, $student->id, true); + $result = external_api::clean_returnvalue(mod_assign_external::get_participant_returns(), $result); // Check some of the extended properties we get when requesting the user. $this->assertEquals($student->id, $result['id']); // We should get user infomation back. @@ -2356,6 +2360,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->setUser($teacher); $result = mod_assign_external::get_participant($assignmodule->id, $student->id, false); + $result = external_api::clean_returnvalue(mod_assign_external::get_participant_returns(), $result); // Check some of the extended properties we get when not requesting a summary. $this->assertEquals($student->id, $result['id']); $this->assertEquals($group->id, $result['groupid']); @@ -2390,6 +2395,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->setUser($teacher); $participants = mod_assign_external::list_participants($assignment->id, 0, '', 0, 0, false, true); + $participants = external_api::clean_returnvalue(mod_assign_external::list_participants_returns(), $participants); $this->assertCount(1, $participants); // Asser that we have a valid response data. @@ -2407,6 +2413,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { $this->assertArrayHasKey('enrolledcourses', $participant); $participants = mod_assign_external::list_participants($assignment->id, 0, '', 0, 0, false, false); + $participants = external_api::clean_returnvalue(mod_assign_external::list_participants_returns(), $participants); // Check that the list of courses the participant is enrolled is not returned. $participant = $participants[0]; $this->assertArrayNotHasKey('enrolledcourses', $participant);