### Eclipse Workspace Patch 1.0
#P moodle
Index: mod/forum/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/forum/lib.php,v
retrieving revision 1.609.2.72
diff -u -r1.609.2.72 lib.php
--- mod/forum/lib.php	1 Nov 2008 00:28:40 -0000	1.609.2.72
+++ mod/forum/lib.php	4 Dec 2008 09:28:59 -0000
@@ -4502,6 +4502,7 @@
  */
 function forum_user_can_see_post($forum, $discussion, $post, $user=NULL, $cm=NULL) {
     global $USER;
+    global $CFG;
 
     // retrieve objects (yuk)
     if (is_numeric($forum)) {
@@ -4562,9 +4563,10 @@
     if ($forum->type == 'qanda') {
         $firstpost = forum_get_firstpost_from_discussion($discussion->id);
         $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+        $userfirstpost = forum_get_user_first_post($discussion->id, $user->id);
 
-        return (forum_user_has_posted($forum->id,$discussion->id,$user->id) ||
-                $firstpost->id == $post->id ||
+        return (($userfirstpost !== false && (time() - $userfirstpost >= $CFG->maxeditingtime)) ||
+                $firstpost->id == $post->id || $post->userid == $user->id || $firstpost->userid == $user->id ||
                 has_capability('mod/forum:viewqandawithoutposting', $modcontext, $user->id, false));
     }
     return true;
@@ -6788,4 +6790,21 @@
     return array('moodle/site:accessallgroups', 'moodle/site:viewfullnames', 'moodle/site:trustcontent');
 }
 
+/**
+ * Returns creation time of the first user's post in given discussion
+ */
+function forum_get_user_first_post($did, $userid) {
+    global $CFG;
+
+    $sql = "SELECT p.created
+              FROM {$CFG->prefix}forum_posts p
+              WHERE p.userid = $userid AND p.discussion = $did
+              ORDER BY p.created";
+    $posts = get_record_sql($sql, true);
+    if ($posts===false) {
+        return false;
+    }
+    return $posts->created;
+}
+
 ?>
