As per bug 2578:

Creating course and group events now requires the same privileges as posting
in a forum. For course events (including site course, i.e. site events), any
teacher can create one.

For group events, the teacher must either have editing rights in the course
or be a member of the group the event is for.
This commit is contained in:
defacer
2005-04-20 21:07:55 +00:00
parent a11b4f3d8d
commit 4eb1a1df3f
+10 -3
View File
@@ -516,7 +516,14 @@ function calendar_add_event_allowed($courseid, $groupid, $userid) {
else if($courseid == 0 && $groupid == 0 && $userid == $USER->id) {
return true;
}
else if($courseid != 0 && isteacheredit($courseid)) {
else if($courseid == 0 && $groupid != 0) {
$group = get_record('groups', 'id', $groupid);
if($group === false) {
return false;
}
return isteacheredit($group->courseid) || isteacher($group->courseid) && ismember($groupid);
}
else if($courseid != 0 && isteacher($courseid)) {
return true;
}
@@ -529,9 +536,9 @@ function calendar_get_allowed_types(&$allowed) {
$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 = isteacheredit(SITEID);
$allowed->site = isteacher(SITEID);
if(!empty($SESSION->cal_course_referer) && $SESSION->cal_course_referer != SITEID && isteacheredit($SESSION->cal_course_referer, $USER->id)) {
if(!empty($SESSION->cal_course_referer) && $SESSION->cal_course_referer != SITEID && isteacher($SESSION->cal_course_referer, $USER->id)) {
$allowed->courses = array($SESSION->cal_course_referer => 1);
$allowed->groups = get_groups($SESSION->cal_course_referer);
}