diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index c59a2dcd147..4a652b16054 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -1306,26 +1306,6 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription return $result; } - /** - * This method validates if a filter (as passed to calendarSearch) matches - * the given object. - * - * @param array $object - * @param array $filters - * @return bool - */ - protected function validateFilterForCalendarSearch(array $object, array $filters) { - $vObject = Reader::read($object['calendardata']); - - $validator = new Search\CalendarSearchValidator(); - $result = $validator->validate($vObject, $filters); - - // Destroy circular references so PHP will GC the object. - $vObject->destroy(); - - return $result; - } - /** * Searches through all of a users calendars and calendar objects to find * an object with a specific UID. diff --git a/apps/dav/lib/CalDAV/Search/CalendarSearchValidator.php b/apps/dav/lib/CalDAV/Search/CalendarSearchValidator.php deleted file mode 100644 index 7e52e84ebdd..00000000000 --- a/apps/dav/lib/CalDAV/Search/CalendarSearchValidator.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * @copyright Copyright (c) 2017 Georg Ehrke - * @license GNU AGPL version 3 or any later version - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ -namespace OCA\DAV\CalDAV\Search; - -use Sabre\VObject; - -class CalendarSearchValidator { - - /** - * Verify if a list of filters applies to the calendar data object - * - * The list of filters must be formatted as parsed by Xml\Request\CalendarSearchReport - * - * @param VObject\Component\VCalendar $vObject - * @param array $filters - * @return bool - */ - function validate(VObject\Component\VCalendar $vObject, array $filters) { - $comps = $vObject->getComponents(); - $filters['comps'][] = 'VTIMEZONE'; - - $matches = false; - foreach($comps as $comp) { - if ($comp->name === 'VTIMEZONE') { - continue; - } - if ($matches) { - break; - } - - // check comps - if (!in_array($comp->name, $filters['comps'])) { - return false; - } - - $children = $comp->children(); - foreach($children as $child) { - if (!($child instanceof VObject\Property)) { - continue; - } - if ($matches) { - break; - } - - foreach($filters['props'] as $prop) { - if ($child->name !== $prop) { - continue; - } - - $value = $child->getValue(); - if (substr_count($value, $filters['search-term'])) { - $matches = true; - break; - } - } - - foreach($filters['params'] as $param) { - $propName = $param['property']; - $paramName = $param['parameter']; - - if ($child->name !== $propName) { - continue; - } - if ($matches) { - break; - } - - $parameters = $child->parameters(); - foreach ($parameters as $key => $value) { - if ($paramName !== $key) { - continue; - } - if (substr_count($value, $filters['search-term'])) { - $matches = true; - break; - } - } - } - } - } - - return $matches; - } -}