]> git.mjollnir.org Git - moodle.git/commitdiff
Merging fix for bug 1957 from MOODLE_14_STABLE.
authordefacer <defacer>
Sun, 19 Sep 2004 22:25:21 +0000 (22:25 +0000)
committerdefacer <defacer>
Sun, 19 Sep 2004 22:25:21 +0000 (22:25 +0000)
blocks/calendar_month/block_calendar_month.php
blocks/calendar_upcoming/block_calendar_upcoming.php
calendar/lib.php

index be288cd2136b508d4ba2f9ea5c38ab222d1b7a8b..130409f20987332d57740da508a6420f8b8245a4 100644 (file)
@@ -32,22 +32,12 @@ class CourseBlock_calendar_month extends MoodleBlock {
 
             $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);
             }
index 2d7f9fbc46e71143cdeda2acbe2000e224345574..752888762fd1c7c4ed4057ef722584f75183e354 100644 (file)
@@ -38,22 +38,10 @@ class CourseBlock_calendar_upcoming extends MoodleBlock {
                                       '/calendar/event.php?action=new&amp;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.
index 2be1eaf98632683e346adcb2b14defba2d689baa..e4588dc1cb06af0cfabb76f30a0867f5c210312c 100644 (file)
@@ -864,6 +864,19 @@ function calendar_get_course_cached(&$coursecache, $courseid) {
 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;
     }