diff -ur old/lib.php new/lib.php --- old/lib.php 2009-03-05 19:48:12.000000000 +1100 +++ new/lib.php 2009-03-31 03:24:30.000000000 +1100 @@ -1158,7 +1158,8 @@ } $context = get_context_instance(CONTEXT_MODULE, $cm->id); - if (!has_capability('mod/forum:viewdiscussion', $context)) { + if (!has_capability('mod/forum:viewdiscussion', $context) && + !has_capability('moodle/user:readuserposts', get_context_instance(CONTEXT_USER, $menteeid))) { continue; } @@ -1614,7 +1615,14 @@ // And admins can see all courses, so pass the $doanything flag enabled $courses1 = get_records('course', 'id', SITEID); $courses2 = get_my_courses($userid, null, null, true); - $courses = array_merge($courses1, $courses2); + // UPDATE: And parents can see their mentee's courses (if readuserposts selected). + // Look for the relevant role on the possible mentee id. + $menteeid = optional_param('id', 0, PARAM_INT); + if(has_capability('moodle/user:readuserposts', get_context_instance(CONTEXT_USER, $menteeid))) { + $courses3 = get_my_courses($menteeid, null, null, true); + } + $courses1and2 = array_merge($courses1, $courses2); + $courses = array_merge($courses1and2, $courses3); } if (!$courses) { return array(); @@ -4589,6 +4597,7 @@ */ function forum_user_can_see_post($forum, $discussion, $post, $user=NULL, $cm=NULL) { global $USER; + $menteeid = optional_param('id', 0, PARAM_INT); // retrieve objects (yuk) if (is_numeric($forum)) { @@ -4626,7 +4635,8 @@ } if (isset($cm->cache->caps['mod/forum:viewdiscussion'])) { - if (!$cm->cache->caps['mod/forum:viewdiscussion']) { + if (!$cm->cache->caps['mod/forum:viewdiscussion'] && + !has_capability('moodle/user:readuserposts', get_context_instance(CONTEXT_USER, $menteeid))) { return false; } } else {