Merge branch 'MDL-68900-master' of https://github.com/sumitnegi933/moodle

This commit is contained in:
Víctor Déniz 2020-10-14 10:50:27 +01:00
commit e335eb092a
3 changed files with 56 additions and 26 deletions

View File

@ -2245,7 +2245,7 @@ class mod_forum_external extends external_api {
$parentposts = [];
if ($parentids) {
$parentposts = $postbuilder->build(
$user,
$USER,
[$forum],
[$discussion],
$postvault->get_from_ids(array_values($parentids))
@ -2261,7 +2261,7 @@ class mod_forum_external extends external_api {
'timecreated' => $firstpost->get_time_created(),
'authorfullname' => $discussionauthor->get_full_name(),
'posts' => [
'userposts' => $postbuilder->build($user, [$forum], [$discussion], $posts),
'userposts' => $postbuilder->build($USER, [$forum], [$discussion], $posts),
'parentposts' => $parentposts,
],
];

View File

@ -2611,6 +2611,7 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
* Test get forum posts by user id.
*/
public function test_mod_forum_get_discussion_posts_by_userid() {
global $DB;
$this->resetAfterTest(true);
$urlfactory = mod_forum\local\container::get_url_factory();
@ -2722,9 +2723,20 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
// Following line enrol and assign default role id to the user.
// So the user automatically gets mod/forum:viewdiscussion on all forums of the course.
$this->getDataGenerator()->enrol_user($user1->id, $course1->id);
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'teacher');
$this->getDataGenerator()->enrol_user($user2->id, $course1->id);
// Changed display period for the discussions in past.
$time = time();
$discussion = new \stdClass();
$discussion->id = $discussion1->id;
$discussion->timestart = $time - 200;
$discussion->timeend = $time - 100;
$DB->update_record('forum_discussions', $discussion);
$discussion = new \stdClass();
$discussion->id = $discussion2->id;
$discussion->timestart = $time - 200;
$discussion->timeend = $time - 100;
$DB->update_record('forum_discussions', $discussion);
// Create what we expect to be returned when querying the discussion.
$expectedposts = array(
'discussions' => array(),
@ -2773,34 +2785,36 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
'view' => true,
'edit' => true,
'delete' => true,
'split' => false,
'split' => true,
'reply' => true,
'export' => false,
'controlreadstatus' => false,
'canreplyprivately' => false,
'canreplyprivately' => true,
'selfenrol' => false
],
'urls' => [
'view' => $urlfactory->get_view_post_url_from_post_id(
$discussion1reply1->discussion, $discussion1reply1->id)->out(false),
$discussion1reply1->discussion, $discussion1reply1->id)->out(false),
'viewisolated' => $isolatedurluser->out(false),
'viewparent' => $urlfactory->get_view_post_url_from_post_id(
$discussion1reply1->discussion, $discussion1reply1->parent)->out(false),
$discussion1reply1->discussion, $discussion1reply1->parent)->out(false),
'edit' => (new moodle_url('/mod/forum/post.php', [
'edit' => $discussion1reply1->id
'edit' => $discussion1reply1->id
]))->out(false),
'delete' => (new moodle_url('/mod/forum/post.php', [
'delete' => $discussion1reply1->id
'delete' => $discussion1reply1->id
]))->out(false),
'split' => (new moodle_url('/mod/forum/post.php', [
'prune' => $discussion1reply1->id
]))->out(false),
'split' => null,
'reply' => (new moodle_url('/mod/forum/post.php#mformforum', [
'reply' => $discussion1reply1->id
'reply' => $discussion1reply1->id
]))->out(false),
'export' => null,
'markasread' => null,
'markasunread' => null,
'discuss' => $urlfactory->get_discussion_view_url_from_discussion_id(
$discussion1reply1->discussion)->out(false),
$discussion1reply1->discussion)->out(false),
],
]
],
@ -2833,13 +2847,13 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
'charcount' => null,
'capabilities' => [
'view' => true,
'edit' => false,
'delete' => false,
'edit' => true,
'delete' => true,
'split' => false,
'reply' => true,
'export' => false,
'controlreadstatus' => false,
'canreplyprivately' => false,
'canreplyprivately' => true,
'selfenrol' => false
],
'urls' => [
@ -2847,8 +2861,12 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
$discussion1firstpostobject->discussion, $discussion1firstpostobject->id)->out(false),
'viewisolated' => $isolatedurlparent->out(false),
'viewparent' => null,
'edit' => null,
'delete' => null,
'edit' => (new moodle_url('/mod/forum/post.php', [
'edit' => $discussion1firstpostobject->id
]))->out(false),
'delete' => (new moodle_url('/mod/forum/post.php', [
'delete' => $discussion1firstpostobject->id
]))->out(false),
'split' => null,
'reply' => (new moodle_url('/mod/forum/post.php#mformforum', [
'reply' => $discussion1firstpostobject->id
@ -2906,11 +2924,11 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
'view' => true,
'edit' => true,
'delete' => true,
'split' => false,
'split' => true,
'reply' => true,
'export' => false,
'controlreadstatus' => false,
'canreplyprivately' => false,
'canreplyprivately' => true,
'selfenrol' => false
],
'urls' => [
@ -2925,7 +2943,9 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
'delete' => (new moodle_url('/mod/forum/post.php', [
'delete' => $discussion2reply1->id
]))->out(false),
'split' => null,
'split' => (new moodle_url('/mod/forum/post.php', [
'prune' => $discussion2reply1->id
]))->out(false),
'reply' => (new moodle_url('/mod/forum/post.php#mformforum', [
'reply' => $discussion2reply1->id
]))->out(false),
@ -2966,13 +2986,13 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
'charcount' => null,
'capabilities' => [
'view' => true,
'edit' => false,
'delete' => false,
'edit' => true,
'delete' => true,
'split' => false,
'reply' => true,
'export' => false,
'controlreadstatus' => false,
'canreplyprivately' => false,
'canreplyprivately' => true,
'selfenrol' => false
],
'urls' => [
@ -2980,8 +3000,12 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
$discussion2firstpostobject->discussion, $discussion2firstpostobject->id)->out(false),
'viewisolated' => $isolatedurlparent->out(false),
'viewparent' => null,
'edit' => null,
'delete' => null,
'edit' => (new moodle_url('/mod/forum/post.php', [
'edit' => $discussion2firstpostobject->id
]))->out(false),
'delete' => (new moodle_url('/mod/forum/post.php', [
'delete' => $discussion2firstpostobject->id
]))->out(false),
'split' => null,
'reply' => (new moodle_url('/mod/forum/post.php#mformforum', [
'reply' => $discussion2firstpostobject->id

View File

@ -1,6 +1,12 @@
This files describes API changes in /mod/forum/*,
information provided here is intended especially for developers.
=== 3.10 ===
* Changes in external function mod_forum_external::get_discussion_posts_by_userid
Now returns the posts of a given user checking the current user capabilities ($USER, the user who is requesting the posts).
Previously, it returned the posts checking the capabilities of the user that created the posts.
=== 3.8 ===
* The following functions have been finally deprecated and can not be used anymore: