MDL-24955 improved reply link logic for users that are not enrolled yet
authorPetr Skoda <skodak@moodle.org>
Wed, 10 Nov 2010 02:43:56 +0000 (02:43 +0000)
committerPetr Skoda <skodak@moodle.org>
Wed, 10 Nov 2010 02:43:56 +0000 (02:43 +0000)
mod/forum/discuss.php

index e521c13..c439baa 100644 (file)
 /// If so, make sure the current person is allowed to see this discussion
 /// Also, if we know they should be able to reply, then explicitly set $canreply for performance reasons
 
-    if (isguestuser() or !isloggedin() or (!is_enrolled($modcontext) and !is_viewing($modcontext))) {
-        // allow guests and not-logged-in to see the link - they are prompted to log in after clicking the link
-        // normal users with temporary guest access see this link too, they are asked to enrol instead
-        $canreply = ($forum->type != 'news'); // no reply in news forums
-
-    } else {
-        $canreply = forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext);
+    $canreply = forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext);
+    if (!$canreply and $forum->type !== 'news') {
+        if (isguestuser() or !isloggedin()) {
+            $canreply = true;
+        }
+        if (!is_enrolled($modcontext) and !is_viewing($modcontext)) {
+            // allow guests and not-logged-in to see the link - they are prompted to log in after clicking the link
+            // normal users with temporary guest access see this link too, they are asked to enrol instead
+            $canreply = enrol_selfenrol_available($course->id);
+        }
     }
 
 /// Print the controls across the top