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