diff -Naurw moodle-clean/moodle/local/db/access.php moodle-dev/local/db/access.php --- moodle-clean/moodle/local/db/access.php 2009-05-13 12:42:19.000000000 +0100 +++ moodle-dev/local/db/access.php 2009-05-13 12:45:04.000000000 +0100 @@ -9,6 +9,16 @@ 'editingteacher' => CAP_ALLOW, 'student' => CAP_ALLOW ) + ), + 'moodle/calendar:view' => array( + + 'captype' => 'read', + 'contextlevel' => CONTEXT_COURSE, + 'legacy' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'student' => CAP_ALLOW + ) ) ); ?> diff -Naurw moodle-clean/moodle/calendar/lib.php moodle-dev/calendar/lib.php --- moodle-clean/moodle/calendar/lib.php 2009-05-13 14:08:24.000000000 +0100 +++ moodle-dev/calendar/lib.php 2009-05-13 14:09:35.000000000 +0100 @@ -1429,11 +1429,23 @@ } else { $courses = get_my_courses($USER->id, null, null, false); + $courses=array_filter($courses,"hidecourse"); } return $courses; } +function hidecourse($course){ + + $context_course = get_context_instance(CONTEXT_COURSE,$course->id); + //decide whether they need to see obs on calendar + if(has_capability('moodle/calendar:view', $context_course)){ + return true; + }else{ + return false; + } +} + function calendar_preferences_button() { global $CFG, $USER; diff -Naur moodle-clean/moodle/lang/en_utf8/role.php moodle-dev/lang/en_utf8/role.php --- moodle-clean/moodle/lang/en_utf8/role.php 2009-05-13 12:02:11.000000000 +0100 +++ moodle-dev/lang/en_utf8/role.php 2009-05-12 15:23:12.000000000 +0100 @@ -19,6 +19,7 @@ $string['calendar:manageentries'] = 'Manage any calendar entries'; $string['calendar:managegroupentries'] = 'Manage group calendar entries'; $string['calendar:manageownentries'] = 'Manage own calendar entries'; +$string['calendar:view'] = 'View calendar entries'; $string['capabilities'] = 'Capabilities'; $string['capability'] = 'Capability'; $string['category:create'] = 'Create categories';