mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
MDL-47802 mod_forum: Check for required subscription capabilities
Users must be able to both view, and manage their subscription in order to subscribe or be subscribed to a discussion.
This commit is contained in:
parent
0603df04da
commit
71bc139d63
2 changed files with 5 additions and 1 deletions
|
@ -137,7 +137,10 @@
|
||||||
$newdiscussion->forum = $forumto->id;
|
$newdiscussion->forum = $forumto->id;
|
||||||
foreach ($subscriptionchanges as $userid => $preference) {
|
foreach ($subscriptionchanges as $userid => $preference) {
|
||||||
if ($preference === \mod_forum\subscriptions::FORUM_DISCUSSION_SUBSCRIBED) {
|
if ($preference === \mod_forum\subscriptions::FORUM_DISCUSSION_SUBSCRIBED) {
|
||||||
|
// Users must have viewdiscussion to a discussion.
|
||||||
|
if (has_capability('mod/forum:viewdiscussion', $destinationctx, $userid)) {
|
||||||
\mod_forum\subscriptions::subscribe_user_to_discussion($userid, $newdiscussion, $destinationctx);
|
\mod_forum\subscriptions::subscribe_user_to_discussion($userid, $newdiscussion, $destinationctx);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
\mod_forum\subscriptions::unsubscribe_user_from_discussion($userid, $newdiscussion, $destinationctx);
|
\mod_forum\subscriptions::unsubscribe_user_from_discussion($userid, $newdiscussion, $destinationctx);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ $cm = get_coursemodule_from_instance('forum', $forum->id, $course->i
|
||||||
$context = context_module::instance($cm->id);
|
$context = context_module::instance($cm->id);
|
||||||
|
|
||||||
require_login($course, false, $cm);
|
require_login($course, false, $cm);
|
||||||
|
require_capability('mod/forum:viewdiscussion', $context);
|
||||||
|
|
||||||
$return = new stdClass();
|
$return = new stdClass();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue