From: mattc-catalyst Date: Mon, 20 Aug 2007 21:30:40 +0000 (+0000) Subject: MDL-10888: Groupings - add support for groupmembersonly flag. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=dcd8db686488a3170ffe7704be507c5bdd381568;p=moodle.git MDL-10888: Groupings - add support for groupmembersonly flag. Make the following respect the groupmembersonly flag: - Course front page - Activities block - Recent Activity, including full report - Calendar --- diff --git a/lib/grouplib.php b/lib/grouplib.php index 4f3cae8eb5..c12a484869 100644 --- a/lib/grouplib.php +++ b/lib/grouplib.php @@ -331,4 +331,32 @@ function groups_get_activity_group($cm, $update=false) { return $SESSION->activegroup[$cm->course][$groupmode][$cm->groupingid]; } +/** + * Determine if a course module is currently visible to a user + * @uses $USER If $userid is null, use the global object. + * @param int $cm The course module + * @param int $userid The user to check against the group. + * @return boolean True if the user can view the course module, false otherwise. + */ +function groups_course_module_visible($cm, $userid=null) { + global $CFG, $USER; + + if (empty($userid)) { + $userid = $USER->id; + } + if (empty($CFG->enablegroupings)) { + return(true); + } + if (empty($cm->groupmembersonly)) { + return(true); + } + if (has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_MODULE, $cm->id), $userid)) { + return(true); + } + if (groups_has_membership($cm, $userid)) { + return(true); + } + return(false); +} + ?>