MDL-56535 forum: Do not return user information in single discussion

This patch fixes the forum external functions
This commit is contained in:
Juan Leyva 2016-11-01 20:52:58 +00:00
parent 577bd70d38
commit 30861fbdaa

View file

@ -268,14 +268,20 @@ class mod_forum_external extends external_api {
$post->children = array();
}
$user = new stdclass();
$user->id = $post->userid;
$user = username_load_fields_from_object($user, $post, null, array('picture', 'imagealt', 'email'));
$post->userfullname = fullname($user, $canviewfullname);
if (forum_is_author_hidden($post, $forum)) {
$post->userid = null;
$post->userfullname = null;
$post->userpictureurl = null;
} else {
$user = new stdclass();
$user->id = $post->userid;
$user = username_load_fields_from_object($user, $post, null, array('picture', 'imagealt', 'email'));
$post->userfullname = fullname($user, $canviewfullname);
$userpicture = new user_picture($user);
$userpicture->size = 1; // Size f1.
$post->userpictureurl = $userpicture->get_url($PAGE)->out(false);
$userpicture = new user_picture($user);
$userpicture->size = 1; // Size f1.
$post->userpictureurl = $userpicture->get_url($PAGE)->out(false);
}
$post->subject = external_format_string($post->subject, $modcontext->id);
// Rewrite embedded images URLs.
@ -467,31 +473,6 @@ class mod_forum_external extends external_api {
$discussion->numreplies = (int) $replies[$discussion->discussion]->replies;
}
$picturefields = explode(',', user_picture::fields());
// Load user objects from the results of the query.
$user = new stdclass();
$user->id = $discussion->userid;
$user = username_load_fields_from_object($user, $discussion, null, $picturefields);
// Preserve the id, it can be modified by username_load_fields_from_object.
$user->id = $discussion->userid;
$discussion->userfullname = fullname($user, $canviewfullname);
$userpicture = new user_picture($user);
$userpicture->size = 1; // Size f1.
$discussion->userpictureurl = $userpicture->get_url($PAGE)->out(false);
$usermodified = new stdclass();
$usermodified->id = $discussion->usermodified;
$usermodified = username_load_fields_from_object($usermodified, $discussion, 'um', $picturefields);
// Preserve the id (it can be overwritten due to the prefixed $picturefields).
$usermodified->id = $discussion->usermodified;
$discussion->usermodifiedfullname = fullname($usermodified, $canviewfullname);
$userpicture = new user_picture($usermodified);
$userpicture->size = 1; // Size f1.
$discussion->usermodifiedpictureurl = $userpicture->get_url($PAGE)->out(false);
$discussion->name = external_format_string($discussion->name, $modcontext->id);
$discussion->subject = external_format_string($discussion->subject, $modcontext->id);
// Rewrite embedded images URLs.
@ -512,6 +493,41 @@ class mod_forum_external extends external_api {
$discussion->locked = forum_discussion_is_locked($forum, $discussion);
$discussion->canreply = forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext);
if (forum_is_author_hidden($discussion, $forum)) {
$discussion->userid = null;
$discussion->userfullname = null;
$discussion->userpictureurl = null;
$discussion->usermodified = null;
$discussion->usermodifiedfullname = null;
$discussion->usermodifiedpictureurl = null;
} else {
$picturefields = explode(',', user_picture::fields());
// Load user objects from the results of the query.
$user = new stdclass();
$user->id = $discussion->userid;
$user = username_load_fields_from_object($user, $discussion, null, $picturefields);
// Preserve the id, it can be modified by username_load_fields_from_object.
$user->id = $discussion->userid;
$discussion->userfullname = fullname($user, $canviewfullname);
$userpicture = new user_picture($user);
$userpicture->size = 1; // Size f1.
$discussion->userpictureurl = $userpicture->get_url($PAGE)->out(false);
$usermodified = new stdclass();
$usermodified->id = $discussion->usermodified;
$usermodified = username_load_fields_from_object($usermodified, $discussion, 'um', $picturefields);
// Preserve the id (it can be overwritten due to the prefixed $picturefields).
$usermodified->id = $discussion->usermodified;
$discussion->usermodifiedfullname = fullname($usermodified, $canviewfullname);
$userpicture = new user_picture($usermodified);
$userpicture->size = 1; // Size f1.
$discussion->usermodifiedpictureurl = $userpicture->get_url($PAGE)->out(false);
}
$discussions[] = $discussion;
}
}