return false;
}
}
-
-function calendar_get_allowed_types(&$allowed) {
- global $USER, $CFG, $SESSION;
-
- $allowed->user = true; // User events always allowed
- $allowed->groups = false; // This may change just below
- $allowed->courses = false; // This may change just below
- $allowed->site = has_capability('moodle/calendar:manageentries', get_context_instance(CONTEXT_COURSE, SITEID));
-
- if(!empty($SESSION->cal_course_referer) && $SESSION->cal_course_referer != SITEID && has_capability('moodle/calendar:manageentries', get_context_instance(CONTEXT_COURSE, $SESSION->cal_course_referer))) {
- $course = get_record('course', 'id', $SESSION->cal_course_referer);
-
- $allowed->courses = array($course->id => 1);
-
- if($course->groupmode != NOGROUPS || !$course->groupmodeforce) {
- $allowed->groups = get_groups($SESSION->cal_course_referer);
- }
- }
-}
-
?>
return true;
}
+function calendar_get_allowed_types(&$allowed) {
+ global $USER, $CFG, $SESSION;
+ $sitecontext = get_context_instance(CONTEXT_SYSTEM);
+ $allowed->user = has_capability('moodle/calendar:manageownentries', $sitecontext);
+ $allowed->groups = false; // This may change just below
+ $allowed->courses = false; // This may change just below
+ $allowed->site = has_capability('moodle/calendar:manageentries', get_context_instance(CONTEXT_COURSE, SITEID));
+
+ if(!empty($SESSION->cal_course_referer) && $SESSION->cal_course_referer != SITEID && has_capability('moodle/calendar:manageentries', get_context_instance(CONTEXT_COURSE, $SESSION->cal_course_referer))) {
+ $course = get_record('course', 'id', $SESSION->cal_course_referer);
+
+ $allowed->courses = array($course->id => 1);
+
+ if($course->groupmode != NOGROUPS || !$course->groupmodeforce) {
+ $allowed->groups = get_groups($SESSION->cal_course_referer);
+ }
+ }
+}
+
+/**
+ * see if user can add calendar entries at all
+ * used to print the "New Event" button
+ * @return bool
+ */
+function calendar_user_can_add_event() {
+ calendar_get_allowed_types($allowed);
+ return (bool)($allowed->user || $allowed->groups || $allowed->courses || $allowed->site);
+}
?>
$events = calendar_get_upcoming($courses, $groups, $users, 1, 100, $starttime);
$text = '';
- if (!isguest() && !empty($USER->id)) {
+ if (!isguest() && !empty($USER->id) && calendar_user_can_add_event()) {
$text.= '<div class="buttons">';
$text.= '<form action="'.CALENDAR_URL.'event.php" method="get">';
$text.= '<div>';
calendar_events_by_day($events, $m, $y, $eventsbyday, $durationbyday, $typesbyday, $courses);
$text = '';
- if(!isguest() && !empty($USER->id)) {
+ if(!isguest() && !empty($USER->id) && calendar_user_can_add_event()) {
$text.= '<div class="buttons"><form action="'.CALENDAR_URL.'event.php" method="get">';
$text.= '<div>';
$text.= '<input type="hidden" name="action" value="new" />';
$text = '';
- if(!isguest() && !empty($USER->id)) {
+ if(!isguest() && !empty($USER->id) && calendar_user_can_add_event()) {
$text.= '<div class="buttons">';
$text.= '<form action="'.CALENDAR_URL.'event.php" method="get">';
$text.= '<div>';