]> git.mjollnir.org Git - moodle.git/commitdiff
merged fix for 5551
authortoyomoyo <toyomoyo>
Mon, 22 May 2006 02:39:14 +0000 (02:39 +0000)
committertoyomoyo <toyomoyo>
Mon, 22 May 2006 02:39:14 +0000 (02:39 +0000)
mod/forum/lib.php
mod/forum/post.php

index 1a1c6d75cc4f4f271320b67e2ac21d03734d064b..2146cf7f37f4f37c69b863660b1eb3093dfc092d 100644 (file)
@@ -2706,12 +2706,16 @@ function forum_user_has_posted($forumid,$did,$userid) {
     return record_exists('forum_posts','discussion',$did,'userid',$userid);
 }
 
-function forum_user_can_post_discussion($forum, $currentgroup=false, $groupmode='') {
+function forum_user_can_post_discussion($forum, $currentgroup=false, $groupmode='', $edit=0) {
 // $forum is an object
     global $USER, $SESSION;
-
     if ($forum->type == "eachuser") {
-        return (! forum_user_has_posted_discussion($forum->id, $USER->id));
+        if ($edit) { // fix for 5551, if 1 post per user, should allow edit, if poster is owner
+            $post = get_record('forum_posts','id',$edit);
+            return ($post->userid == $USER->id); // editting your own post?
+        } else {
+            return (! forum_user_has_posted_discussion($forum->id, $USER->id));
+        }
     } else if ($forum->type == 'qanda') {
         return isteacher($forum->course);
     } else if ($forum->type == "teacher") {
index f60855f4a65b0ba9649368c16f39c17f71f995cd..74af5d1505a069705cc67029c8d81a2ea826421f 100644 (file)
     if (!empty($parent) && !forum_user_can_see_post($forum,$discussion,$post)) {
         error("You cannot reply to this post");
     }
-    if (empty($parent) && !forum_user_can_post_discussion($forum)) {
+    if (empty($parent) && !forum_user_can_post_discussion($forum, false, '', $edit)) {
         error("You cannot start a new discussion in this forum");
     }