diff options
author | Anna Larch <anna@nextcloud.com> | 2022-10-31 11:16:45 +0100 |
---|---|---|
committer | Anna Larch <anna@nextcloud.com> | 2022-11-03 10:07:09 +0100 |
commit | aebcc3126adf91e5666b76abc8e4b72a061e3243 (patch) | |
tree | 04537bddbdc7b53aeeb435977284527a83b7ad18 /lib | |
parent | bfb764b5f3a26add7059391134c86a1fca460dfd (diff) | |
download | nextcloud-server-aebcc3126adf91e5666b76abc8e4b72a061e3243.tar.gz nextcloud-server-aebcc3126adf91e5666b76abc8e4b72a061e3243.zip |
Move iMIP to it's own interface
and clean up the code a bit.
Added:
- author
Removed:
- unused imports
Changed:
- moved iMIP handling to new interface
- pointed code to new implementation
Signed-off-by: Anna Larch <anna@nextcloud.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Calendar/Manager.php | 6 | ||||
-rw-r--r-- | lib/public/Calendar/ICreateFromString.php | 7 | ||||
-rw-r--r-- | lib/public/Calendar/IHandleImipMessage.php | 48 |
3 files changed, 52 insertions, 9 deletions
diff --git a/lib/private/Calendar/Manager.php b/lib/private/Calendar/Manager.php index 550ba36dd6b..e85c2d2e377 100644 --- a/lib/private/Calendar/Manager.php +++ b/lib/private/Calendar/Manager.php @@ -7,6 +7,7 @@ declare(strict_types=1); * * @author Christoph Wurst <christoph@winzerhof-wurst.at> * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Anna Larch <anna.larch@gmx.net> * * @license GNU AGPL version 3 or any later version * @@ -33,6 +34,7 @@ use OCP\Calendar\ICalendar; use OCP\Calendar\ICalendarProvider; use OCP\Calendar\ICalendarQuery; use OCP\Calendar\ICreateFromString; +use OCP\Calendar\IHandleImipMessage; use OCP\Calendar\IManager; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; @@ -280,7 +282,7 @@ class Manager implements IManager { // Drawback: attendees that have been deleted will still be able to update their partstat foreach ($calendars as $calendar) { // We should not search in writable calendars - if ($calendar instanceof ICreateFromString) { + if ($calendar instanceof IHandleImipMessage) { $o = $calendar->search($sender, ['ATTENDEE'], ['uid' => $vEvent->{'UID'}->getValue()]); if (!empty($o)) { $found = $calendar; @@ -358,7 +360,7 @@ class Manager implements IManager { // Drawback: attendees that have been deleted will still be able to update their partstat foreach ($calendars as $calendar) { // We should not search in writable calendars - if ($calendar instanceof ICreateFromString) { + if ($calendar instanceof IHandleImipMessage) { $o = $calendar->search($recipient, ['ATTENDEE'], ['uid' => $vEvent->{'UID'}->getValue()]); if (!empty($o)) { $found = $calendar; diff --git a/lib/public/Calendar/ICreateFromString.php b/lib/public/Calendar/ICreateFromString.php index 8c4bdd44041..17d529cdef3 100644 --- a/lib/public/Calendar/ICreateFromString.php +++ b/lib/public/Calendar/ICreateFromString.php @@ -40,11 +40,4 @@ interface ICreateFromString extends ICalendar { * @throws CalendarException */ public function createFromString(string $name, string $calendarData): void; - - /** - * @since 25.0.0 - * - * @throws CalendarException - */ - public function handleIMipMessage(string $name, string $calendarData): void; } diff --git a/lib/public/Calendar/IHandleImipMessage.php b/lib/public/Calendar/IHandleImipMessage.php new file mode 100644 index 00000000000..58c1400d987 --- /dev/null +++ b/lib/public/Calendar/IHandleImipMessage.php @@ -0,0 +1,48 @@ +<?php + +declare(strict_types=1); +/** + * @copyright 2022 Anna Larch <anna.larch@gmx.net> + * + * @author Anna Larch <anna.larch@gmx.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +namespace OCP\Calendar; + +use OCP\Calendar\Exceptions\CalendarException; + +/** + * Extends the current ICalendar interface + * to add a public write method to handle + * iMIP data + * + * @link https://www.rfc-editor.org/rfc/rfc6047 + * + * @since 26.0.0 + */ +interface IHandleImipMessage extends ICalendar { + + /** + * Handle an iMIP VEvent for validation and processing + * + * @since 26.0.0 + * + * @throws CalendarException on validation failure or calendar write error + */ + public function handleIMipMessage(string $name, string $calendarData): void; +} |