From ffe5ef2268bb4732670f231832b4e0b04e8400e2 Mon Sep 17 00:00:00 2001 From: Brice Maron <brice@bmaron.net> Date: Thu, 10 May 2012 19:36:30 +0000 Subject: [PATCH] Correct calendar loading when calendar are from hooks. fix oc-619 --- apps/calendar/ajax/events.php | 22 +++++++++++++--------- apps/calendar/lib/app.php | 3 +++ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/apps/calendar/ajax/events.php b/apps/calendar/ajax/events.php index afb4d61d31..0618c0f3fd 100755 --- a/apps/calendar/ajax/events.php +++ b/apps/calendar/ajax/events.php @@ -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){ diff --git a/apps/calendar/lib/app.php b/apps/calendar/lib/app.php index 8cbef4646f..2cd28c0f78 100755 --- a/apps/calendar/lib/app.php +++ b/apps/calendar/lib/app.php @@ -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)){ -- GitLab