From 121ccf159388a7b093a5063687f5ea32c92bde92 Mon Sep 17 00:00:00 2001 From: Mihail Geshoski Date: Wed, 1 May 2019 15:56:33 +0800 Subject: [PATCH] MDL-65071 forum: Include starred discussions info in the web service --- mod/forum/externallib.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mod/forum/externallib.php b/mod/forum/externallib.php index c346151a0e0..100a50dfbd0 100644 --- a/mod/forum/externallib.php +++ b/mod/forum/externallib.php @@ -594,11 +594,6 @@ class mod_forum_external extends external_api { $canlock = has_capability('moodle/course:manageactivities', $modcontext, $USER); $replies = forum_count_discussion_replies($forumid, $sort, -1, $page, $perpage, $canseeprivatereplies); - if (isloggedin()) { - $usercontext = context_user::instance($USER->id); - $ufservice = core_favourites\service_factory::get_service_for_user_context($usercontext); - } - $canfavourite = has_capability('mod/forum:cantogglefavourite', $modcontext, $USER); foreach ($alldiscussions as $discussion) { // This function checks for qanda forums. @@ -647,10 +642,7 @@ class mod_forum_external extends external_api { $discussion->locked = forum_discussion_is_locked($forum, $discussion); $discussion->canlock = $canlock; - $discussion->starred = !empty($ufservice) ? $ufservice->favourite_exists('mod_forum', 'discussions', - $discussionrec->id, $modcontext) : false; $discussion->canreply = forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext); - $discussion->canfavourite = $canfavourite; if (forum_is_author_hidden($discussion, $forum)) { $discussion->userid = null; @@ -741,10 +733,8 @@ class mod_forum_external extends external_api { 'numunread' => new external_value(PARAM_INT, 'The number of unread discussions.'), 'pinned' => new external_value(PARAM_BOOL, 'Is the discussion pinned'), 'locked' => new external_value(PARAM_BOOL, 'Is the discussion locked'), - 'starred' => new external_value(PARAM_BOOL, 'Is the discussion starred'), 'canreply' => new external_value(PARAM_BOOL, 'Can the user reply to the discussion'), 'canlock' => new external_value(PARAM_BOOL, 'Can the user lock the discussion'), - 'canfavourite' => new external_value(PARAM_BOOL, 'Can the user star the discussion'), ), 'post' ) ), @@ -880,6 +870,11 @@ class mod_forum_external extends external_api { $canlock = $capabilitymanager->can_manage_forum($USER); + $usercontext = context_user::instance($USER->id); + $ufservice = core_favourites\service_factory::get_service_for_user_context($usercontext); + + $canfavourite = has_capability('mod/forum:cantogglefavourite', $modcontext, $USER); + foreach ($alldiscussions as $discussionsummary) { $discussion = $discussionsummary->get_discussion(); $firstpostauthor = $discussionsummary->get_first_post_author(); @@ -938,7 +933,10 @@ class mod_forum_external extends external_api { $discussionobject->locked = $forum->is_discussion_locked($discussion); $discussionobject->canlock = $canlock; + $discussionobject->starred = !empty($ufservice) ? $ufservice->favourite_exists('mod_forum', 'discussions', + $discussion->get_id(), $modcontext) : false; $discussionobject->canreply = $capabilitymanager->can_post_in_discussion($USER, $discussion); + $discussionobject->canfavourite = $canfavourite; if (forum_is_author_hidden($discussionobject, $forumrecord)) { $discussionobject->userid = null; @@ -1011,8 +1009,10 @@ class mod_forum_external extends external_api { 'numunread' => new external_value(PARAM_INT, 'The number of unread discussions.'), 'pinned' => new external_value(PARAM_BOOL, 'Is the discussion pinned'), 'locked' => new external_value(PARAM_BOOL, 'Is the discussion locked'), + 'starred' => new external_value(PARAM_BOOL, 'Is the discussion starred'), 'canreply' => new external_value(PARAM_BOOL, 'Can the user reply to the discussion'), 'canlock' => new external_value(PARAM_BOOL, 'Can the user lock the discussion'), + 'canfavourite' => new external_value(PARAM_BOOL, 'Can the user star the discussion'), ), 'post' ) ),