From 8a7eb6a6c34d1ef35a2a3b677eda1184478b84f6 Mon Sep 17 00:00:00 2001 From: Thomas B Date: Tue, 8 May 2012 08:34:29 +0200 Subject: [PATCH] Send user authentication if required for free-busy download; uses PEAR HTTP_Request class --- plugins/calendar/drivers/kolab/kolab_driver.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php index adca9623..0dd48779 100644 --- a/plugins/calendar/drivers/kolab/kolab_driver.php +++ b/plugins/calendar/drivers/kolab/kolab_driver.php @@ -901,6 +901,7 @@ class kolab_driver extends calendar_driver public function get_freebusy_list($email, $start, $end) { require_once('Horde/iCalendar.php'); + require_once('HTTP/Request.php'); if (empty($email)/* || $end < time()*/) return false; @@ -913,7 +914,17 @@ class kolab_driver extends calendar_driver 'OOF' => calendar::FREEBUSY_OOF); // ask kolab server first - $fbdata = @file_get_contents(rcube_kolab::get_freebusy_url($email)); + $request = new HTTP_Request($url = rcube_kolab::get_freebusy_url($email)); + $result = $request->sendRequest(true); + + // authentication required + if (!PEAR::isError($result) && $request->getResponseCode() == 401) { + $request->setBasicAuth($this->rc->user->get_username(), $this->rc->decrypt($_SESSION['password'])); + $result = $request->sendRequest(true); + } + + if (!PEAR::isError($result) && $request->getResponseCode() == 200) + $fbdata = $request->getResponseBody(); // get free-busy url from contacts if (!$fbdata) {