mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 12:32:08 +02:00
MDL-65032 mod_forum: Update existing function to include lock params
This commit is contained in:
parent
bdb4a87daa
commit
565cccfafa
@ -40,7 +40,7 @@ abstract class db_table_vault {
|
||||
private $db;
|
||||
/** @var entity_factory $entityfactory Entity factory */
|
||||
private $entityfactory;
|
||||
/** @var legacy_factor $legacyfactory Entity->legacy factory */
|
||||
/** @var object $legacyfactory Entity->legacy factory */
|
||||
private $legacyfactory;
|
||||
|
||||
/**
|
||||
@ -53,7 +53,7 @@ abstract class db_table_vault {
|
||||
public function __construct(
|
||||
moodle_database $db,
|
||||
entity_factory $entityfactory,
|
||||
object $legacyfactory
|
||||
$legacyfactory
|
||||
) {
|
||||
$this->db = $db;
|
||||
$this->entityfactory = $entityfactory;
|
||||
|
@ -588,6 +588,7 @@ class mod_forum_external extends external_api {
|
||||
}
|
||||
// The forum function returns the replies for all the discussions in a given forum.
|
||||
$canseeprivatereplies = has_capability('mod/forum:readprivatereplies', $modcontext);
|
||||
$canlock = has_capability('moodle/course:manageactivities', $modcontext, $USER);
|
||||
$replies = forum_count_discussion_replies($forumid, $sort, -1, $page, $perpage, $canseeprivatereplies);
|
||||
|
||||
foreach ($alldiscussions as $discussion) {
|
||||
@ -636,7 +637,8 @@ class mod_forum_external extends external_api {
|
||||
$discussion->messageinlinefiles = $messageinlinefiles;
|
||||
}
|
||||
|
||||
$discussion->timelocked = forum_discussion_is_locked($forum, $discussion);
|
||||
$discussion->locked = forum_discussion_is_locked($forum, $discussion);
|
||||
$discussion->canlock = $canlock;
|
||||
$discussion->canreply = forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext);
|
||||
|
||||
if (forum_is_author_hidden($discussion, $forum)) {
|
||||
@ -728,6 +730,7 @@ class mod_forum_external extends external_api {
|
||||
'pinned' => new external_value(PARAM_BOOL, 'Is the discussion pinned'),
|
||||
'locked' => new external_value(PARAM_BOOL, 'Is the discussion locked'),
|
||||
'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'),
|
||||
), 'post'
|
||||
)
|
||||
),
|
||||
|
@ -985,6 +985,7 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
|
||||
'pinned' => FORUM_DISCUSSION_UNPINNED,
|
||||
'locked' => false,
|
||||
'canreply' => false,
|
||||
'canlock' => false,
|
||||
);
|
||||
|
||||
// Call the external function passing forum id.
|
||||
@ -1025,6 +1026,11 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
|
||||
} catch (moodle_exception $e) {
|
||||
$this->assertEquals('requireloginerror', $e->errorcode);
|
||||
}
|
||||
|
||||
$this->setAdminUser();
|
||||
$discussions = mod_forum_external::get_forum_discussions_paginated($forum1->id);
|
||||
$discussions = external_api::clean_returnvalue(mod_forum_external::get_forum_discussions_paginated_returns(), $discussions);
|
||||
$this->assertTrue($discussions['discussions'][0]['canlock']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -193,8 +193,8 @@ class mod_forum_generator extends testing_module_generator {
|
||||
$record['pinned'] = FORUM_DISCUSSION_UNPINNED;
|
||||
}
|
||||
|
||||
if (!isset($record['locked'])) {
|
||||
$record['locked'] = 0;
|
||||
if (!isset($record['timelocked'])) {
|
||||
$record['timelocked'] = 0;
|
||||
}
|
||||
|
||||
if (isset($record['mailed'])) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user