MDL-55371 mod_assign: Do not return empty users in get_participant WS

The WS was returning null users making the WS to fail.
This commit is contained in:
Juan Leyva
2017-05-04 10:10:23 +02:00
parent 75528e9305
commit 3b2ea17ec4
2 changed files with 12 additions and 3 deletions
+3 -1
View File
@@ -2769,7 +2769,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;
+9 -2
View File
@@ -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,13 +2225,14 @@ 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']);
$this->assertFalse($result['requiregrading']);
$this->assertTrue($result['blindmarking']);
// Make sure we don't get any additional info.
$this->assertTrue(empty($result['user']));
$this->assertArrayNotHasKey('user', $result);
}
/**
@@ -2276,13 +2278,14 @@ 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']);
$this->assertTrue($result['requiregrading']);
$this->assertFalse($result['blindmarking']);
// Make sure we don't get any additional info.
$this->assertTrue(empty($result['user']));
$this->assertArrayNotHasKey('user', $result);
}
/**
@@ -2303,6 +2306,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.
@@ -2354,6 +2358,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']);
@@ -2388,6 +2393,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.
@@ -2405,6 +2411,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);