2 commits - plugins/calendar plugins/libcalendaring plugins/libkolab

Thomas Brüderli bruederli at kolabsys.com
Mon Mar 24 17:18:07 CET 2014


 plugins/calendar/calendar.php                      |   10 +++++-----
 plugins/calendar/lib/calendar_itip.php             |    2 +-
 plugins/libcalendaring/lib/libcalendaring_itip.php |    2 +-
 plugins/libkolab/lib/kolab_format_event.php        |    2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)

New commits:
commit c72d4298724ea19301d9b8b2932a262769c7c1ff
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Mon Mar 24 17:18:01 2014 +0100

    Fix external RSVP responses through web interface

diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php
index 9b33136..a742efa 100644
--- a/plugins/calendar/calendar.php
+++ b/plugins/calendar/calendar.php
@@ -1675,7 +1675,7 @@ class calendar extends rcube_plugin
     // send to every attendee
     $sent = 0; $current = array();
     foreach ((array)$event['attendees'] as $attendee) {
-      $current[] = $attendee['email'];
+      $current[] = strtolower($attendee['email']);
       
       // skip myself for obvious reasons
       if (!$attendee['email'] || in_array(strtolower($attendee['email']), $emails))
@@ -2102,13 +2102,13 @@ class calendar extends rcube_plugin
 
         // show message about cancellation
         if ($invitation['cancelled']) {
-          $this->invitestatus = html::div('rsvp-status declined', $this->gettext('eventcancelled'));
+          $this->invitestatus = html::div('rsvp-status declined', $itip->gettext('eventcancelled'));
         }
         // save submitted RSVP status
         else if (!empty($_POST['rsvp'])) {
           $status = null;
           foreach (array('accepted','tentative','declined') as $method) {
-            if ($_POST['rsvp'] == $this->gettext('itip' . $method)) {
+            if ($_POST['rsvp'] == $itip->gettext('itip' . $method)) {
               $status = $method;
               break;
             }
@@ -2116,7 +2116,7 @@ class calendar extends rcube_plugin
 
           // send itip reply to organizer
           if ($status && $itip->update_invitation($invitation, $invitation['attendee'], strtoupper($status))) {
-            $this->invitestatus = html::div('rsvp-status ' . strtolower($status), $this->gettext('youhave'.strtolower($status)));
+            $this->invitestatus = html::div('rsvp-status ' . strtolower($status), $itip->gettext('youhave'.strtolower($status)));
           }
           else
             $this->rc->output->command('display_message', $this->gettext('errorsaving'), 'error', -1);
@@ -2141,7 +2141,7 @@ class calendar extends rcube_plugin
         if (!$this->invitestatus)
           $this->register_handler('plugin.event_rsvp_buttons', array($this->ui, 'event_rsvp_buttons'));
         
-        $this->rc->output->set_pagetitle($this->gettext('itipinvitation') . ' ' . $this->event['title']);
+        $this->rc->output->set_pagetitle($itip->gettext('itipinvitation') . ' ' . $this->event['title']);
       }
       else
         $this->rc->output->command('display_message', $this->gettext('itipinvalidrequest'), 'error', -1);
diff --git a/plugins/calendar/lib/calendar_itip.php b/plugins/calendar/lib/calendar_itip.php
index e128442..43d32a2 100644
--- a/plugins/calendar/lib/calendar_itip.php
+++ b/plugins/calendar/lib/calendar_itip.php
@@ -144,7 +144,7 @@ class calendar_itip extends libcalendaring_itip
       $event['uid'],
       $this->rc->user->ID,
       self::serialize_event($event),
-      date('Y-m-d H:i:s', $event['end'] + 86400 * 2)
+      date('Y-m-d H:i:s', $event['end']->format('U') + 86400 * 2)
     );
     
     if ($this->rc->db->affected_rows($query)) {
diff --git a/plugins/libcalendaring/lib/libcalendaring_itip.php b/plugins/libcalendaring/lib/libcalendaring_itip.php
index 8157968..d285960 100644
--- a/plugins/libcalendaring/lib/libcalendaring_itip.php
+++ b/plugins/libcalendaring/lib/libcalendaring_itip.php
@@ -130,7 +130,7 @@ class libcalendaring_itip
                 'vars' => array('url' => $this->plugin->get_url(array('action' => 'attend', 't' => $token))),
             ));
         }
-        else if ($method == 'CANCEL') {
+        else if ($method == 'CANCEL' && $event['cancelled']) {
             $this->cancel_itip_invitation($event);
         }
 


commit 30327b4e479f75c0cb288f7b8f2a3d397fd2af3d
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Mon Mar 24 16:57:32 2014 +0100

    Avoid 'Illegal string offset' warnings

diff --git a/plugins/libkolab/lib/kolab_format_event.php b/plugins/libkolab/lib/kolab_format_event.php
index 6a8c3ae..c057076 100644
--- a/plugins/libkolab/lib/kolab_format_event.php
+++ b/plugins/libkolab/lib/kolab_format_event.php
@@ -90,7 +90,7 @@ class kolab_format_event extends kolab_format_xcal
         $this->obj->setStatus($status);
 
         // save recurrence exceptions
-        if ($object['recurrence']['EXCEPTIONS']) {
+        if (is_array($object['recurrence']) && $object['recurrence']['EXCEPTIONS']) {
             $vexceptions = new vectorevent;
             foreach((array)$object['recurrence']['EXCEPTIONS'] as $exception) {
                 $exevent = new kolab_format_event;




More information about the commits mailing list