]> source.dussan.org Git - nextcloud-server.git/commitdiff
Correct calendar loading when calendar are from hooks. fix oc-619
authorBrice Maron <brice@bmaron.net>
Thu, 10 May 2012 19:36:30 +0000 (19:36 +0000)
committerBrice Maron <brice@bmaron.net>
Thu, 10 May 2012 19:36:30 +0000 (19:36 +0000)
apps/calendar/ajax/events.php
apps/calendar/lib/app.php

index afb4d61d315acdc6263cd2286d2ab78528252597..0618c0f3fdfed9f6a5557835a89f5d314a4a0855 100755 (executable)
@@ -12,16 +12,20 @@ require_once('when/When.php');
 OCP\JSON::checkLoggedIn();
 OCP\JSON::checkAppEnabled('calendar');
 
-$calendar = OC_Calendar_App::getCalendar($_GET['calendar_id'], false, false);
-if(is_numeric($calendar['userid']) && $calendar['userid'] != OCP\User::getUser){
-       OCP\JSON::error();
-       exit;
+// Look for the calendar id
+$calendar_id = OC_Calendar_App::getCalendar($_GET['calendar_id'], false, false);
+if($calendar_id !== false){
+       if(! is_numeric($calendar['userid']) && $calendar['userid'] != OCP\User::getUser()){
+               OCP\JSON::error();
+               exit;
+       }
+       $start = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['start']):new DateTime('@' . $_GET['start']);
+       $end = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['end']):new DateTime('@' . $_GET['end']);
 }
-
-$start = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['start']):new DateTime('@' . $_GET['start']);
-$end = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['end']):new DateTime('@' . $_GET['end']);
-
-$events = OC_Calendar_App::getrequestedEvents($calendar['id'], $start, $end);
+else {
+       $calendar_id = $_GET['calendar_id'];
+}
+$events = OC_Calendar_App::getrequestedEvents($calendar_id, $start, $end);
 
 $output = array();
 foreach($events as $event){
index 8cbef4646fcd5fd3e72b25de173416108f8de5f6..2cd28c0f782ba536c41c73f62fa1e13addf4ecff 100755 (executable)
@@ -36,6 +36,9 @@ class OC_Calendar_App{
         * @return mixed - bool / array
         */
        public static function getCalendar($id, $security = true, $shared = false){
+               if(! is_numeric($id)){
+                       return false;
+               }
                $calendar = OC_Calendar_Calendar::find($id);
                if($shared === true){
                        if(OC_Calendar_Share::check_access(OCP\USER::getUser(), $id, OC_Calendar_Share::CALENDAR)){