$courseshown = $this->course->id;
- if ($this->course->id == SITEID) { // Site-level calendar
- if (!empty($USER) and !isadmin()) { /// Normal users just see their own courses
- if (!empty($USER->student)) {
- foreach ($USER->student as $courseid => $info) {
- $filtercourse[$courseid] = 1;
- }
- }
- if (!empty($USER->teacher)) {
- foreach ($USER->teacher as $courseid => $info) {
- $filtercourse[$courseid] = 1;
- }
- }
- } else { /// Let the filter sort it out for admins and guests
- $filtercourse = NULL;
- }
- } else {
+ if($this->course->id == SITEID) {
+ // Being displayed at site level. This will cause the filter to fall back to auto-detecting
+ // the list of courses it will be grabbing events from.
+ $filtercourse = NULL;
+ }
+ else {
// Forcibly filter events to include only those from the particular course we are in.
$filtercourse = array($courseshown => 1);
}
'/calendar/event.php?action=new&course='.$this->course->id.'">'.
get_string('newevent', 'calendar').'</a>...';
- if($this->course->id == SITEID) { // Being displayed at site level.
-
- if (!empty($USER) and !isadmin()) { /// Normal users just see their own courses
- if (!empty($USER->student)) {
- foreach ($USER->student as $courseid => $info) {
- $filtercourse[$courseid] = 1;
- }
- }
- if (!empty($USER->teacher)) {
- foreach ($USER->teacher as $courseid => $info) {
- $filtercourse[$courseid] = 1;
- }
- }
- } else { /// Let the filter sort it out for admins and guests
- $filtercourse = NULL;
- }
+ if($this->course->id == SITEID) {
+ // Being displayed at site level. This will cause the filter to fall back to auto-detecting
+ // the list of courses it will be grabbing events from.
+ $filtercourse = NULL;
}
else {
// Forcibly filter events to include only those from the particular course we are in.
function calendar_session_vars() {
global $SESSION, $USER;
+ if(isset($USER) && isset($USER->realuser) && !isset($SESSION->cal_loggedinas)) {
+ // We just logged in as someone else, update the filtering
+ unset($SESSION->cal_users_shown);
+ unset($SESSION->cal_courses_shown);
+ $SESSION->cal_loggedinas = true;
+ }
+ else if(isset($USER) && !isset($USER->realuser) && isset($SESSION->cal_loggedinas)) {
+ // We just logged back to our real self, update again
+ unset($SESSION->cal_users_shown);
+ unset($SESSION->cal_courses_shown);
+ unset($SESSION->cal_loggedinas);
+ }
+
if(!isset($SESSION->cal_course_referer)) {
$SESSION->cal_course_referer = 0;
}