adds blacklist for ics uris
authorPhilipp Schüle <p.schuele@metaways.de>
Mon, 1 Sep 2014 18:37:32 +0000 (20:37 +0200)
committerPhilipp Schüle <p.schuele@metaways.de>
Thu, 4 Sep 2014 09:26:49 +0000 (11:26 +0200)
TODO allow to define blacklisted ics in config/as cli param

Change-Id: I9b673c14a15cb1ac28cc5cef1848ccac0f137ed9
Reviewed-on: http://gerrit.tine20.com/customers/1081
Tested-by: Jenkins CI (http://ci.tine20.com/)
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Calendar/Import/CalDav/Client.php

index 46746b2..096544c 100644 (file)
@@ -33,6 +33,16 @@ class Calendar_Import_CalDav_Client extends Tinebase_Import_CalDav_Client
     protected $webdavFrontend = 'Calendar_Frontend_WebDAV_Event';
     protected $_uuidPrefix = '';
     
     protected $webdavFrontend = 'Calendar_Frontend_WebDAV_Event';
     protected $_uuidPrefix = '';
     
+    /**
+     * skip those ics
+     * 
+     * TODO move to config
+     * @var array
+     */
+    protected $_icsBlacklist = array(
+        '/calendars/__uids__/2BCFF349-136E-4AF8-BF7B-18761C7F7C6B/2A65B5DF-0B4E-48D1-BD87-897E534DC24F/DF8AA6F6-6814-4392-AEB0-BD870F53FD69.ics'
+    );
+    
     const calendarDataKey = '{urn:ietf:params:xml:ns:caldav}calendar-data';
     const findAllCalendarsRequest =
 '<?xml version="1.0"?>
     const calendarDataKey = '{urn:ietf:params:xml:ns:caldav}calendar-data';
     const findAllCalendarsRequest =
 '<?xml version="1.0"?>
@@ -550,13 +560,18 @@ class Calendar_Import_CalDav_Client extends Tinebase_Import_CalDav_Client
             // use importAllCalendars to have the grants set
             //$grants = $this->getCalendarGrants($calUri);
             //Tinebase_Container::getInstance()->setGrants($container->getId(), $grants, TRUE, FALSE);
             // use importAllCalendars to have the grants set
             //$grants = $this->getCalendarGrants($calUri);
             //Tinebase_Container::getInstance()->setGrants($container->getId(), $grants, TRUE, FALSE);
-            
+
             $start = 0;
             $max = count($calICSs);
             do {
                 $etags = array();
                 $requestEnd = '';
                 for ($i = $start; $i < $max && $i < ($this->maxBulkRequest+$start); ++$i) {
             $start = 0;
             $max = count($calICSs);
             do {
                 $etags = array();
                 $requestEnd = '';
                 for ($i = $start; $i < $max && $i < ($this->maxBulkRequest+$start); ++$i) {
+                    if (in_array($calICSs[$i], $this->_icsBlacklist)) {
+                        if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) Tinebase_Core::getLogger()->info(__METHOD__ . ' ' . __LINE__
+                               . ' Ignoring blacklisted ics: ' . $calICSs[$i]);
+                        continue;
+                    }
                     $requestEnd .= '  <a:href>' . $calICSs[$i] . "</a:href>\n";
                 }
                 $start = $i;
                     $requestEnd .= '  <a:href>' . $calICSs[$i] . "</a:href>\n";
                 }
                 $start = $i;