MDL-51495 calendar: E_WARNING in core_calendar_get_calendar_events
authorNeill Magill <neill.magill@nottingham.ac.uk>
Tue, 20 Oct 2015 09:05:08 +0000 (10:05 +0100)
committerNeill Magill <neill.magill@nottingham.ac.uk>
Wed, 11 Nov 2015 15:24:31 +0000 (15:24 +0000)
If a user does not have the 'moodle/calendar:manageentries' capability then an E_WARNING
can be generated by the core_calendar_external::get_calendar_events() method, that an
expected array is null

This patch creates an array that is missing when a user does not have the capability.

calendar/externallib.php

index 8fdae9b..c2053fa 100644 (file)
@@ -173,6 +173,8 @@ class core_calendar_external extends external_api {
 
         // Let us findout courses that we can return events from.
         if (!$hassystemcap) {
+            $courses = enrol_get_my_courses('id');
+            $courses = array_keys($courses);
             foreach ($params['events']['courseids'] as $id) {
                try {
                     $context = context_course::instance($id);
@@ -185,7 +187,6 @@ class core_calendar_external extends external_api {
                         'warningcode' => 'nopermissions',
                         'message' => 'No access rights in course context '.$e->getMessage().$e->getTraceAsString()
                     );
-                    continue;
                 }
             }
         } else {