From ed7a4189951db545cbcd7102f00516e8f99cda5f Mon Sep 17 00:00:00 2001 From: polytan02 Date: Sat, 29 Aug 2015 15:05:43 +0100 Subject: [PATCH] Update to latest sources --- sources/backend/imap/mime_calendar.php | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/sources/backend/imap/mime_calendar.php b/sources/backend/imap/mime_calendar.php index c3e9689..2f83e62 100644 --- a/sources/backend/imap/mime_calendar.php +++ b/sources/backend/imap/mime_calendar.php @@ -158,8 +158,25 @@ function parse_meeting_calendar($part, &$output, $is_sent_folder) { $uid = $props[0]->Value(); } - if (isset($part->ctype_parameters["method"])) { - switch (strtolower($part->ctype_parameters["method"])) { + $method = false; + $props = $ical->GetPropertiesByPath("VCALENDAR/METHOD"); + if (count($props) > 0) { + $method = strtolower($props[0]->Value()); + ZLog::Write(LOGLEVEL_DEBUG, sprintf("BackendIMAP->parse_meeting_calendar(): Using method from vcalendar object: %s", $method)); + } + else { + if (isset($part->ctype_parameters["method"])) { + $method = strtolower($part->ctype_parameters["method"]) + ZLog::Write(LOGLEVEL_DEBUG, sprintf("BackendIMAP->parse_meeting_calendar(): Using method from mime part object: %s", $method)); + } + } + + if ($method === false) { + ZLog::Write(LOGLEVEL_WARN, sprintf("BackendIMAP->parse_meeting_calendar() - No method header, please report it to the developers")); + $output->messageclass = "IPM.Appointment"; + } + else { + switch ($method) { case "cancel": $output->messageclass = "IPM.Schedule.Meeting.Canceled"; $output->meetingrequest->disallownewtimeproposal = 1; @@ -227,10 +244,6 @@ function parse_meeting_calendar($part, &$output, $is_sent_folder) { break; } } - else { - ZLog::Write(LOGLEVEL_WARN, sprintf("BackendIMAP->parse_meeting_calendar() - No method header, please report it to the developers")); - $output->messageclass = "IPM.Appointment"; - } $props = $ical->GetPropertiesByPath('VEVENT/DTSTAMP'); if (count($props) == 1) {