mirror of
https://github.com/moodle/moodle.git
synced 2025-04-14 13:02:07 +02:00
MDL-49763 webservices: Handle correctly deleted users for ratings
This commit is contained in:
parent
d7551257a0
commit
d982713ad3
@ -139,13 +139,19 @@ class core_rating_external extends external_api {
|
||||
if ($rating->rating > $maxrating) {
|
||||
$rating->rating = $maxrating;
|
||||
}
|
||||
$usercontext = context_user::instance($rating->userid);
|
||||
$profileimageurl = moodle_url::make_webservice_pluginfile_url($usercontext->id, 'user', 'icon', null, '/', 'f1');
|
||||
|
||||
$profileimageurl = '';
|
||||
// We can have ratings from deleted users. In this case, those users don't have a valid context.
|
||||
$usercontext = context_user::instance($rating->userid, IGNORE_MISSING);
|
||||
if ($usercontext) {
|
||||
$profileimageurl = moodle_url::make_webservice_pluginfile_url($usercontext->id, 'user', 'icon', null,
|
||||
'/', 'f1')->out(false);
|
||||
}
|
||||
|
||||
$result = array();
|
||||
$result['id'] = $rating->id;
|
||||
$result['userid'] = $rating->userid;
|
||||
$result['userpictureurl'] = $profileimageurl->out(false);
|
||||
$result['userpictureurl'] = $profileimageurl;
|
||||
$result['userfullname'] = fullname($rating);
|
||||
$result['rating'] = $scalemenu[$rating->rating];
|
||||
$result['timemodified'] = $rating->timemodified;
|
||||
|
@ -103,6 +103,9 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
|
||||
$rating2->timemodified = time() + 1;
|
||||
$rating2->id = $DB->insert_record('rating', $rating2);
|
||||
|
||||
// Delete teacher2, we must still receive the ratings.
|
||||
delete_user($teacher2);
|
||||
|
||||
// Teachers can see all the ratings.
|
||||
$this->setUser($teacher1);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user