Completed
Pull Request — master (#9942)
by Georg
249:18 queued 220:32
created
apps/dav/lib/CalDAV/Schedule/IMipPlugin.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -102,7 +102,7 @@
 block discarded – undo
102 102
 	 * @param ILogger $logger
103 103
 	 * @param ITimeFactory $timeFactory
104 104
 	 * @param L10NFactory $l10nFactory
105
-	 * @param IUrlGenerator $urlGenerator
105
+	 * @param IURLGenerator $urlGenerator
106 106
 	 * @param Defaults $defaults
107 107
 	 * @param ISecureRandom $random
108 108
 	 * @param IDBConnection $db
Please login to merge, or discard this patch.
Indentation   +489 added lines, -489 removed lines patch added patch discarded remove patch
@@ -60,494 +60,494 @@
 block discarded – undo
60 60
  */
61 61
 class IMipPlugin extends SabreIMipPlugin {
62 62
 
63
-	/** @var string */
64
-	private $userId;
65
-
66
-	/** @var IConfig */
67
-	private $config;
68
-
69
-	/** @var IMailer */
70
-	private $mailer;
71
-
72
-	/** @var ILogger */
73
-	private $logger;
74
-
75
-	/** @var ITimeFactory */
76
-	private $timeFactory;
77
-
78
-	/** @var L10NFactory */
79
-	private $l10nFactory;
80
-
81
-	/** @var IURLGenerator */
82
-	private $urlGenerator;
83
-
84
-	/** @var ISecureRandom */
85
-	private $random;
86
-
87
-	/** @var IDBConnection */
88
-	private $db;
89
-
90
-	/** @var Defaults */
91
-	private $defaults;
92
-
93
-	const MAX_DATE = '2038-01-01';
94
-
95
-	const METHOD_REQUEST = 'request';
96
-	const METHOD_REPLY = 'reply';
97
-	const METHOD_CANCEL = 'cancel';
98
-
99
-	/**
100
-	 * @param IConfig $config
101
-	 * @param IMailer $mailer
102
-	 * @param ILogger $logger
103
-	 * @param ITimeFactory $timeFactory
104
-	 * @param L10NFactory $l10nFactory
105
-	 * @param IUrlGenerator $urlGenerator
106
-	 * @param Defaults $defaults
107
-	 * @param ISecureRandom $random
108
-	 * @param IDBConnection $db
109
-	 * @param string $userId
110
-	 */
111
-	public function __construct(IConfig $config, IMailer $mailer, ILogger $logger,
112
-								ITimeFactory $timeFactory, L10NFactory $l10nFactory,
113
-								IURLGenerator $urlGenerator, Defaults $defaults,
114
-								ISecureRandom $random, IDBConnection $db, $userId) {
115
-		parent::__construct('');
116
-		$this->userId = $userId;
117
-		$this->config = $config;
118
-		$this->mailer = $mailer;
119
-		$this->logger = $logger;
120
-		$this->timeFactory = $timeFactory;
121
-		$this->l10nFactory = $l10nFactory;
122
-		$this->urlGenerator = $urlGenerator;
123
-		$this->random = $random;
124
-		$this->db = $db;
125
-		$this->defaults = $defaults;
126
-	}
127
-
128
-	/**
129
-	 * Event handler for the 'schedule' event.
130
-	 *
131
-	 * @param Message $iTipMessage
132
-	 * @return void
133
-	 */
134
-	public function schedule(Message $iTipMessage) {
135
-
136
-		// Not sending any emails if the system considers the update
137
-		// insignificant.
138
-		if (!$iTipMessage->significantChange) {
139
-			if (!$iTipMessage->scheduleStatus) {
140
-				$iTipMessage->scheduleStatus = '1.0;We got the message, but it\'s not significant enough to warrant an email';
141
-			}
142
-			return;
143
-		}
144
-
145
-		$summary = $iTipMessage->message->VEVENT->SUMMARY;
146
-
147
-		if (parse_url($iTipMessage->sender, PHP_URL_SCHEME) !== 'mailto') {
148
-			return;
149
-		}
150
-
151
-		if (parse_url($iTipMessage->recipient, PHP_URL_SCHEME) !== 'mailto') {
152
-			return;
153
-		}
154
-
155
-		// don't send out mails for events that already took place
156
-		$lastOccurrence = $this->getLastOccurrence($iTipMessage->message);
157
-		$currentTime = $this->timeFactory->getTime();
158
-		if ($lastOccurrence < $currentTime) {
159
-			return;
160
-		}
161
-
162
-		// Strip off mailto:
163
-		$sender = substr($iTipMessage->sender, 7);
164
-		$recipient = substr($iTipMessage->recipient, 7);
165
-
166
-		$senderName = $iTipMessage->senderName ?: null;
167
-		$recipientName = $iTipMessage->recipientName ?: null;
168
-
169
-		/** @var VEvent $vevent */
170
-		$vevent = $iTipMessage->message->VEVENT;
171
-
172
-		$attendee = $this->getCurrentAttendee($iTipMessage);
173
-		$defaultLang = $this->config->getUserValue($this->userId, 'core', 'lang', $this->l10nFactory->findLanguage());
174
-		$lang = $this->getAttendeeLangOrDefault($defaultLang, $attendee);
175
-		$l10n = $this->l10nFactory->get('dav', $lang);
176
-
177
-		$meetingAttendeeName = $recipientName ?: $recipient;
178
-		$meetingInviteeName = $senderName ?: $sender;
179
-
180
-		$meetingTitle = $vevent->SUMMARY;
181
-		$meetingDescription = $vevent->DESCRIPTION;
182
-
183
-		$start = $vevent->DTSTART;
184
-		if (isset($vevent->DTEND)) {
185
-			$end = $vevent->DTEND;
186
-		} elseif (isset($vevent->DURATION)) {
187
-			$isFloating = $vevent->DTSTART->isFloating();
188
-			$end = clone $vevent->DTSTART;
189
-			$endDateTime = $end->getDateTime();
190
-			$endDateTime = $endDateTime->add(DateTimeParser::parse($vevent->DURATION->getValue()));
191
-			$end->setDateTime($endDateTime, $isFloating);
192
-		} elseif (!$vevent->DTSTART->hasTime()) {
193
-			$isFloating = $vevent->DTSTART->isFloating();
194
-			$end = clone $vevent->DTSTART;
195
-			$endDateTime = $end->getDateTime();
196
-			$endDateTime = $endDateTime->modify('+1 day');
197
-			$end->setDateTime($endDateTime, $isFloating);
198
-		} else {
199
-			$end = clone $vevent->DTSTART;
200
-		}
201
-
202
-		$meetingWhen = $this->generateWhenString($l10n, $start, $end);
203
-
204
-		$meetingUrl = $vevent->URL;
205
-		$meetingLocation = $vevent->LOCATION;
206
-
207
-		$defaultVal = '--';
208
-
209
-		$method = self::METHOD_REQUEST;
210
-		switch (strtolower($iTipMessage->method)) {
211
-			case self::METHOD_REPLY:
212
-				$method = self::METHOD_REPLY;
213
-				break;
214
-			case self::METHOD_CANCEL:
215
-				$method = self::METHOD_CANCEL;
216
-				break;
217
-		}
218
-
219
-		$data = array(
220
-			'attendee_name' => (string)$meetingAttendeeName ?: $defaultVal,
221
-			'invitee_name' => (string)$meetingInviteeName ?: $defaultVal,
222
-			'meeting_title' => (string)$meetingTitle ?: $defaultVal,
223
-			'meeting_description' => (string)$meetingDescription ?: $defaultVal,
224
-			'meeting_url' => (string)$meetingUrl ?: $defaultVal,
225
-		);
226
-
227
-		$fromEMail = \OCP\Util::getDefaultEmailAddress('invitations-noreply');
228
-		$fromName = $l10n->t('%s via %s', [$senderName, $this->defaults->getName()]);
229
-
230
-		$message = $this->mailer->createMessage()
231
-			->setFrom([$fromEMail => $fromName])
232
-			->setReplyTo([$sender => $senderName])
233
-			->setTo([$recipient => $recipientName]);
234
-
235
-		$template = $this->mailer->createEMailTemplate('dav.calendarInvite.' . $method, $data);
236
-		$template->addHeader();
237
-
238
-		$this->addSubjectAndHeading($template, $l10n, $method, $summary,
239
-			$meetingAttendeeName, $meetingInviteeName);
240
-		$this->addBulletList($template, $l10n, $meetingWhen, $meetingLocation,
241
-			$meetingDescription, $meetingUrl);
242
-		$this->addResponseButtons($template, $l10n, $iTipMessage, $lastOccurrence);
243
-
244
-		$template->addFooter();
245
-		$message->useTemplate($template);
246
-
247
-		$attachment = $this->mailer->createAttachment(
248
-			$iTipMessage->message->serialize(),
249
-			'event.ics',// TODO(leon): Make file name unique, e.g. add event id
250
-			'text/calendar; method=' . $iTipMessage->method
251
-		);
252
-		$message->attach($attachment);
253
-
254
-		try {
255
-			$failed = $this->mailer->send($message);
256
-			$iTipMessage->scheduleStatus = '1.1; Scheduling message is sent via iMip';
257
-			if ($failed) {
258
-				$this->logger->error('Unable to deliver message to {failed}', ['app' => 'dav', 'failed' =>  implode(', ', $failed)]);
259
-				$iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
260
-			}
261
-		} catch(\Exception $ex) {
262
-			$this->logger->logException($ex, ['app' => 'dav']);
263
-			$iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
264
-		}
265
-	}
266
-
267
-	/**
268
-	 * check if event took place in the past already
269
-	 * @param VCalendar $vObject
270
-	 * @return int
271
-	 */
272
-	private function getLastOccurrence(VCalendar $vObject) {
273
-		/** @var VEvent $component */
274
-		$component = $vObject->VEVENT;
275
-
276
-		$firstOccurrence = $component->DTSTART->getDateTime()->getTimeStamp();
277
-		// Finding the last occurrence is a bit harder
278
-		if (!isset($component->RRULE)) {
279
-			if (isset($component->DTEND)) {
280
-				$lastOccurrence = $component->DTEND->getDateTime()->getTimeStamp();
281
-			} elseif (isset($component->DURATION)) {
282
-				/** @var \DateTime $endDate */
283
-				$endDate = clone $component->DTSTART->getDateTime();
284
-				// $component->DTEND->getDateTime() returns DateTimeImmutable
285
-				$endDate = $endDate->add(DateTimeParser::parse($component->DURATION->getValue()));
286
-				$lastOccurrence = $endDate->getTimestamp();
287
-			} elseif (!$component->DTSTART->hasTime()) {
288
-				/** @var \DateTime $endDate */
289
-				$endDate = clone $component->DTSTART->getDateTime();
290
-				// $component->DTSTART->getDateTime() returns DateTimeImmutable
291
-				$endDate = $endDate->modify('+1 day');
292
-				$lastOccurrence = $endDate->getTimestamp();
293
-			} else {
294
-				$lastOccurrence = $firstOccurrence;
295
-			}
296
-		} else {
297
-			$it = new EventIterator($vObject, (string)$component->UID);
298
-			$maxDate = new \DateTime(self::MAX_DATE);
299
-			if ($it->isInfinite()) {
300
-				$lastOccurrence = $maxDate->getTimestamp();
301
-			} else {
302
-				$end = $it->getDtEnd();
303
-				while($it->valid() && $end < $maxDate) {
304
-					$end = $it->getDtEnd();
305
-					$it->next();
306
-
307
-				}
308
-				$lastOccurrence = $end->getTimestamp();
309
-			}
310
-		}
311
-
312
-		return $lastOccurrence;
313
-	}
314
-
315
-
316
-	/**
317
-	 * @param Message $iTipMessage
318
-	 * @return null|Property
319
-	 */
320
-	private function getCurrentAttendee(Message $iTipMessage) {
321
-		/** @var VEvent $vevent */
322
-		$vevent = $iTipMessage->message->VEVENT;
323
-		$attendees = $vevent->select('ATTENDEE');
324
-		foreach ($attendees as $attendee) {
325
-			/** @var Property $attendee */
326
-			if (strcasecmp($attendee->getValue(), $iTipMessage->recipient) === 0) {
327
-				return $attendee;
328
-			}
329
-		}
330
-		return null;
331
-	}
332
-
333
-	/**
334
-	 * @param string $default
335
-	 * @param Property|null $attendee
336
-	 * @return string
337
-	 */
338
-	private function getAttendeeLangOrDefault($default, Property $attendee = null) {
339
-		if ($attendee !== null) {
340
-			$lang = $attendee->offsetGet('LANGUAGE');
341
-			if ($lang instanceof Parameter) {
342
-				return $lang->getValue();
343
-			}
344
-		}
345
-		return $default;
346
-	}
347
-
348
-	/**
349
-	 * @param IL10N $l10n
350
-	 * @param Property $dtstart
351
-	 * @param Property $dtend
352
-	 */
353
-	private function generateWhenString(IL10N $l10n, Property $dtstart, Property $dtend) {
354
-		$isAllDay = $dtstart instanceof Property\ICalendar\Date;
355
-
356
-		/** @var Property\ICalendar\Date | Property\ICalendar\DateTime $dtstart */
357
-		/** @var Property\ICalendar\Date | Property\ICalendar\DateTime $dtend */
358
-		/** @var \DateTimeImmutable $dtstartDt */
359
-		$dtstartDt = $dtstart->getDateTime();
360
-		/** @var \DateTimeImmutable $dtendDt */
361
-		$dtendDt = $dtend->getDateTime();
362
-
363
-		$diff = $dtstartDt->diff($dtendDt);
364
-
365
-		$dtstartDt = new \DateTime($dtstartDt->format(\DateTime::ATOM));
366
-		$dtendDt = new \DateTime($dtendDt->format(\DateTime::ATOM));
367
-
368
-		if ($isAllDay) {
369
-			// One day event
370
-			if ($diff->days === 1) {
371
-				return $l10n->l('date', $dtstartDt, ['width' => 'medium']);
372
-			}
373
-
374
-			//event that spans over multiple days
375
-			$localeStart = $l10n->l('date', $dtstartDt, ['width' => 'medium']);
376
-			$localeEnd = $l10n->l('date', $dtendDt, ['width' => 'medium']);
377
-
378
-			return $localeStart . ' - ' . $localeEnd;
379
-		}
380
-
381
-		/** @var Property\ICalendar\DateTime $dtstart */
382
-		/** @var Property\ICalendar\DateTime $dtend */
383
-		$isFloating = $dtstart->isFloating();
384
-		$startTimezone = $endTimezone = null;
385
-		if (!$isFloating) {
386
-			$prop = $dtstart->offsetGet('TZID');
387
-			if ($prop instanceof Parameter) {
388
-				$startTimezone = $prop->getValue();
389
-			}
390
-
391
-			$prop = $dtend->offsetGet('TZID');
392
-			if ($prop instanceof Parameter) {
393
-				$endTimezone = $prop->getValue();
394
-			}
395
-		}
396
-
397
-		$localeStart = $l10n->l('weekdayName', $dtstartDt, ['width' => 'abbreviated']) . ', ' .
398
-			$l10n->l('datetime', $dtstartDt, ['width' => 'medium|short']);
399
-
400
-		// always show full date with timezone if timezones are different
401
-		if ($startTimezone !== $endTimezone) {
402
-			$localeEnd = $l10n->l('datetime', $dtendDt, ['width' => 'medium|short']);
403
-
404
-			return $localeStart . ' (' . $startTimezone . ') - ' .
405
-				$localeEnd . ' (' . $endTimezone . ')';
406
-		}
407
-
408
-		// show only end time if date is the same
409
-		if ($this->isDayEqual($dtstartDt, $dtendDt)) {
410
-			$localeEnd = $l10n->l('time', $dtendDt, ['width' => 'short']);
411
-		} else {
412
-			$localeEnd = $l10n->l('weekdayName', $dtendDt, ['width' => 'abbreviated']) . ', ' .
413
-				$l10n->l('datetime', $dtendDt, ['width' => 'medium|short']);
414
-		}
415
-
416
-		return  $localeStart . ' - ' . $localeEnd . ' (' . $startTimezone . ')';
417
-	}
418
-
419
-	/**
420
-	 * @param \DateTime $dtStart
421
-	 * @param \DateTime $dtEnd
422
-	 * @return bool
423
-	 */
424
-	private function isDayEqual(\DateTime $dtStart, \DateTime $dtEnd) {
425
-		return $dtStart->format('Y-m-d') === $dtEnd->format('Y-m-d');
426
-	}
427
-
428
-	/**
429
-	 * @param IEMailTemplate $template
430
-	 * @param IL10N $l10n
431
-	 * @param string $method
432
-	 * @param string $summary
433
-	 * @param string $attendeeName
434
-	 * @param string $inviteeName
435
-	 */
436
-	private function addSubjectAndHeading(IEMailTemplate $template, IL10N $l10n,
437
-										  $method, $summary, $attendeeName, $inviteeName) {
438
-		if ($method === self::METHOD_CANCEL) {
439
-			$template->setSubject('Cancelled: ' . $summary);
440
-			$template->addHeading($l10n->t('Invitation canceled'), $l10n->t('Hello %s,', [$attendeeName]));
441
-			$template->addBodyText($l10n->t('The meeting »%s« with %s was canceled.', [$summary, $inviteeName]));
442
-		} else if ($method === self::METHOD_REPLY) {
443
-			$template->setSubject('Re: ' . $summary);
444
-			$template->addHeading($l10n->t('Invitation updated'), $l10n->t('Hello %s,', [$attendeeName]));
445
-			$template->addBodyText($l10n->t('The meeting »%s« with %s was updated.', [$summary, $inviteeName]));
446
-		} else {
447
-			$template->setSubject('Invitation: ' . $summary);
448
-			$template->addHeading($l10n->t('%s invited you to »%s«', [$inviteeName, $summary]), $l10n->t('Hello %s,', [$attendeeName]));
449
-		}
450
-
451
-	}
452
-
453
-	/**
454
-	 * @param IEMailTemplate $template
455
-	 * @param IL10N $l10n
456
-	 * @param string $time
457
-	 * @param string $location
458
-	 * @param string $description
459
-	 * @param string $url
460
-	 */
461
-	private function addBulletList(IEMailTemplate $template, IL10N $l10n, $time, $location, $description, $url) {
462
-		$template->addBodyListItem($time, $l10n->t('When:'),
463
-			$this->getAbsoluteImagePath('filetypes/text-calendar.svg'));
464
-
465
-		if ($location) {
466
-			$template->addBodyListItem($location, $l10n->t('Where:'),
467
-				$this->getAbsoluteImagePath('filetypes/location.svg'));
468
-		}
469
-		if ($description) {
470
-			$template->addBodyListItem((string)$description, $l10n->t('Description:'),
471
-				$this->getAbsoluteImagePath('filetypes/text.svg'));
472
-		}
473
-		if ($url) {
474
-			$template->addBodyListItem((string)$url, $l10n->t('Link:'),
475
-				$this->getAbsoluteImagePath('filetypes/link.svg'));
476
-		}
477
-	}
478
-
479
-	/**
480
-	 * @param IEMailTemplate $template
481
-	 * @param IL10N $l10n
482
-	 * @param Message $iTipMessage
483
-	 * @param int $lastOccurrence
484
-	 */
485
-	private function addResponseButtons(IEMailTemplate $template, IL10N $l10n,
486
-										Message $iTipMessage, $lastOccurrence) {
487
-		$token = $this->createInvitationToken($iTipMessage, $lastOccurrence);
488
-
489
-		$template->addBodyButtonGroup(
490
-			$l10n->t('Accept'),
491
-			$this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.accept', [
492
-				'token' => $token,
493
-			]),
494
-			$l10n->t('Decline'),
495
-			$this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.decline', [
496
-				'token' => $token,
497
-			])
498
-		);
499
-
500
-		$moreOptionsURL = $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.options', [
501
-			'token' => $token,
502
-		]);
503
-		$html = vsprintf('<small><a href="%s">%s</a></small>', [
504
-			$moreOptionsURL, $l10n->t('More options ...')
505
-		]);
506
-		$text = $l10n->t('More options at %s', [$moreOptionsURL]);
63
+    /** @var string */
64
+    private $userId;
65
+
66
+    /** @var IConfig */
67
+    private $config;
68
+
69
+    /** @var IMailer */
70
+    private $mailer;
71
+
72
+    /** @var ILogger */
73
+    private $logger;
74
+
75
+    /** @var ITimeFactory */
76
+    private $timeFactory;
77
+
78
+    /** @var L10NFactory */
79
+    private $l10nFactory;
80
+
81
+    /** @var IURLGenerator */
82
+    private $urlGenerator;
83
+
84
+    /** @var ISecureRandom */
85
+    private $random;
86
+
87
+    /** @var IDBConnection */
88
+    private $db;
89
+
90
+    /** @var Defaults */
91
+    private $defaults;
92
+
93
+    const MAX_DATE = '2038-01-01';
94
+
95
+    const METHOD_REQUEST = 'request';
96
+    const METHOD_REPLY = 'reply';
97
+    const METHOD_CANCEL = 'cancel';
98
+
99
+    /**
100
+     * @param IConfig $config
101
+     * @param IMailer $mailer
102
+     * @param ILogger $logger
103
+     * @param ITimeFactory $timeFactory
104
+     * @param L10NFactory $l10nFactory
105
+     * @param IUrlGenerator $urlGenerator
106
+     * @param Defaults $defaults
107
+     * @param ISecureRandom $random
108
+     * @param IDBConnection $db
109
+     * @param string $userId
110
+     */
111
+    public function __construct(IConfig $config, IMailer $mailer, ILogger $logger,
112
+                                ITimeFactory $timeFactory, L10NFactory $l10nFactory,
113
+                                IURLGenerator $urlGenerator, Defaults $defaults,
114
+                                ISecureRandom $random, IDBConnection $db, $userId) {
115
+        parent::__construct('');
116
+        $this->userId = $userId;
117
+        $this->config = $config;
118
+        $this->mailer = $mailer;
119
+        $this->logger = $logger;
120
+        $this->timeFactory = $timeFactory;
121
+        $this->l10nFactory = $l10nFactory;
122
+        $this->urlGenerator = $urlGenerator;
123
+        $this->random = $random;
124
+        $this->db = $db;
125
+        $this->defaults = $defaults;
126
+    }
127
+
128
+    /**
129
+     * Event handler for the 'schedule' event.
130
+     *
131
+     * @param Message $iTipMessage
132
+     * @return void
133
+     */
134
+    public function schedule(Message $iTipMessage) {
135
+
136
+        // Not sending any emails if the system considers the update
137
+        // insignificant.
138
+        if (!$iTipMessage->significantChange) {
139
+            if (!$iTipMessage->scheduleStatus) {
140
+                $iTipMessage->scheduleStatus = '1.0;We got the message, but it\'s not significant enough to warrant an email';
141
+            }
142
+            return;
143
+        }
144
+
145
+        $summary = $iTipMessage->message->VEVENT->SUMMARY;
146
+
147
+        if (parse_url($iTipMessage->sender, PHP_URL_SCHEME) !== 'mailto') {
148
+            return;
149
+        }
150
+
151
+        if (parse_url($iTipMessage->recipient, PHP_URL_SCHEME) !== 'mailto') {
152
+            return;
153
+        }
154
+
155
+        // don't send out mails for events that already took place
156
+        $lastOccurrence = $this->getLastOccurrence($iTipMessage->message);
157
+        $currentTime = $this->timeFactory->getTime();
158
+        if ($lastOccurrence < $currentTime) {
159
+            return;
160
+        }
161
+
162
+        // Strip off mailto:
163
+        $sender = substr($iTipMessage->sender, 7);
164
+        $recipient = substr($iTipMessage->recipient, 7);
165
+
166
+        $senderName = $iTipMessage->senderName ?: null;
167
+        $recipientName = $iTipMessage->recipientName ?: null;
168
+
169
+        /** @var VEvent $vevent */
170
+        $vevent = $iTipMessage->message->VEVENT;
171
+
172
+        $attendee = $this->getCurrentAttendee($iTipMessage);
173
+        $defaultLang = $this->config->getUserValue($this->userId, 'core', 'lang', $this->l10nFactory->findLanguage());
174
+        $lang = $this->getAttendeeLangOrDefault($defaultLang, $attendee);
175
+        $l10n = $this->l10nFactory->get('dav', $lang);
176
+
177
+        $meetingAttendeeName = $recipientName ?: $recipient;
178
+        $meetingInviteeName = $senderName ?: $sender;
179
+
180
+        $meetingTitle = $vevent->SUMMARY;
181
+        $meetingDescription = $vevent->DESCRIPTION;
182
+
183
+        $start = $vevent->DTSTART;
184
+        if (isset($vevent->DTEND)) {
185
+            $end = $vevent->DTEND;
186
+        } elseif (isset($vevent->DURATION)) {
187
+            $isFloating = $vevent->DTSTART->isFloating();
188
+            $end = clone $vevent->DTSTART;
189
+            $endDateTime = $end->getDateTime();
190
+            $endDateTime = $endDateTime->add(DateTimeParser::parse($vevent->DURATION->getValue()));
191
+            $end->setDateTime($endDateTime, $isFloating);
192
+        } elseif (!$vevent->DTSTART->hasTime()) {
193
+            $isFloating = $vevent->DTSTART->isFloating();
194
+            $end = clone $vevent->DTSTART;
195
+            $endDateTime = $end->getDateTime();
196
+            $endDateTime = $endDateTime->modify('+1 day');
197
+            $end->setDateTime($endDateTime, $isFloating);
198
+        } else {
199
+            $end = clone $vevent->DTSTART;
200
+        }
201
+
202
+        $meetingWhen = $this->generateWhenString($l10n, $start, $end);
203
+
204
+        $meetingUrl = $vevent->URL;
205
+        $meetingLocation = $vevent->LOCATION;
206
+
207
+        $defaultVal = '--';
208
+
209
+        $method = self::METHOD_REQUEST;
210
+        switch (strtolower($iTipMessage->method)) {
211
+            case self::METHOD_REPLY:
212
+                $method = self::METHOD_REPLY;
213
+                break;
214
+            case self::METHOD_CANCEL:
215
+                $method = self::METHOD_CANCEL;
216
+                break;
217
+        }
218
+
219
+        $data = array(
220
+            'attendee_name' => (string)$meetingAttendeeName ?: $defaultVal,
221
+            'invitee_name' => (string)$meetingInviteeName ?: $defaultVal,
222
+            'meeting_title' => (string)$meetingTitle ?: $defaultVal,
223
+            'meeting_description' => (string)$meetingDescription ?: $defaultVal,
224
+            'meeting_url' => (string)$meetingUrl ?: $defaultVal,
225
+        );
226
+
227
+        $fromEMail = \OCP\Util::getDefaultEmailAddress('invitations-noreply');
228
+        $fromName = $l10n->t('%s via %s', [$senderName, $this->defaults->getName()]);
229
+
230
+        $message = $this->mailer->createMessage()
231
+            ->setFrom([$fromEMail => $fromName])
232
+            ->setReplyTo([$sender => $senderName])
233
+            ->setTo([$recipient => $recipientName]);
234
+
235
+        $template = $this->mailer->createEMailTemplate('dav.calendarInvite.' . $method, $data);
236
+        $template->addHeader();
237
+
238
+        $this->addSubjectAndHeading($template, $l10n, $method, $summary,
239
+            $meetingAttendeeName, $meetingInviteeName);
240
+        $this->addBulletList($template, $l10n, $meetingWhen, $meetingLocation,
241
+            $meetingDescription, $meetingUrl);
242
+        $this->addResponseButtons($template, $l10n, $iTipMessage, $lastOccurrence);
243
+
244
+        $template->addFooter();
245
+        $message->useTemplate($template);
246
+
247
+        $attachment = $this->mailer->createAttachment(
248
+            $iTipMessage->message->serialize(),
249
+            'event.ics',// TODO(leon): Make file name unique, e.g. add event id
250
+            'text/calendar; method=' . $iTipMessage->method
251
+        );
252
+        $message->attach($attachment);
253
+
254
+        try {
255
+            $failed = $this->mailer->send($message);
256
+            $iTipMessage->scheduleStatus = '1.1; Scheduling message is sent via iMip';
257
+            if ($failed) {
258
+                $this->logger->error('Unable to deliver message to {failed}', ['app' => 'dav', 'failed' =>  implode(', ', $failed)]);
259
+                $iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
260
+            }
261
+        } catch(\Exception $ex) {
262
+            $this->logger->logException($ex, ['app' => 'dav']);
263
+            $iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
264
+        }
265
+    }
266
+
267
+    /**
268
+     * check if event took place in the past already
269
+     * @param VCalendar $vObject
270
+     * @return int
271
+     */
272
+    private function getLastOccurrence(VCalendar $vObject) {
273
+        /** @var VEvent $component */
274
+        $component = $vObject->VEVENT;
275
+
276
+        $firstOccurrence = $component->DTSTART->getDateTime()->getTimeStamp();
277
+        // Finding the last occurrence is a bit harder
278
+        if (!isset($component->RRULE)) {
279
+            if (isset($component->DTEND)) {
280
+                $lastOccurrence = $component->DTEND->getDateTime()->getTimeStamp();
281
+            } elseif (isset($component->DURATION)) {
282
+                /** @var \DateTime $endDate */
283
+                $endDate = clone $component->DTSTART->getDateTime();
284
+                // $component->DTEND->getDateTime() returns DateTimeImmutable
285
+                $endDate = $endDate->add(DateTimeParser::parse($component->DURATION->getValue()));
286
+                $lastOccurrence = $endDate->getTimestamp();
287
+            } elseif (!$component->DTSTART->hasTime()) {
288
+                /** @var \DateTime $endDate */
289
+                $endDate = clone $component->DTSTART->getDateTime();
290
+                // $component->DTSTART->getDateTime() returns DateTimeImmutable
291
+                $endDate = $endDate->modify('+1 day');
292
+                $lastOccurrence = $endDate->getTimestamp();
293
+            } else {
294
+                $lastOccurrence = $firstOccurrence;
295
+            }
296
+        } else {
297
+            $it = new EventIterator($vObject, (string)$component->UID);
298
+            $maxDate = new \DateTime(self::MAX_DATE);
299
+            if ($it->isInfinite()) {
300
+                $lastOccurrence = $maxDate->getTimestamp();
301
+            } else {
302
+                $end = $it->getDtEnd();
303
+                while($it->valid() && $end < $maxDate) {
304
+                    $end = $it->getDtEnd();
305
+                    $it->next();
306
+
307
+                }
308
+                $lastOccurrence = $end->getTimestamp();
309
+            }
310
+        }
311
+
312
+        return $lastOccurrence;
313
+    }
314
+
315
+
316
+    /**
317
+     * @param Message $iTipMessage
318
+     * @return null|Property
319
+     */
320
+    private function getCurrentAttendee(Message $iTipMessage) {
321
+        /** @var VEvent $vevent */
322
+        $vevent = $iTipMessage->message->VEVENT;
323
+        $attendees = $vevent->select('ATTENDEE');
324
+        foreach ($attendees as $attendee) {
325
+            /** @var Property $attendee */
326
+            if (strcasecmp($attendee->getValue(), $iTipMessage->recipient) === 0) {
327
+                return $attendee;
328
+            }
329
+        }
330
+        return null;
331
+    }
332
+
333
+    /**
334
+     * @param string $default
335
+     * @param Property|null $attendee
336
+     * @return string
337
+     */
338
+    private function getAttendeeLangOrDefault($default, Property $attendee = null) {
339
+        if ($attendee !== null) {
340
+            $lang = $attendee->offsetGet('LANGUAGE');
341
+            if ($lang instanceof Parameter) {
342
+                return $lang->getValue();
343
+            }
344
+        }
345
+        return $default;
346
+    }
347
+
348
+    /**
349
+     * @param IL10N $l10n
350
+     * @param Property $dtstart
351
+     * @param Property $dtend
352
+     */
353
+    private function generateWhenString(IL10N $l10n, Property $dtstart, Property $dtend) {
354
+        $isAllDay = $dtstart instanceof Property\ICalendar\Date;
355
+
356
+        /** @var Property\ICalendar\Date | Property\ICalendar\DateTime $dtstart */
357
+        /** @var Property\ICalendar\Date | Property\ICalendar\DateTime $dtend */
358
+        /** @var \DateTimeImmutable $dtstartDt */
359
+        $dtstartDt = $dtstart->getDateTime();
360
+        /** @var \DateTimeImmutable $dtendDt */
361
+        $dtendDt = $dtend->getDateTime();
362
+
363
+        $diff = $dtstartDt->diff($dtendDt);
364
+
365
+        $dtstartDt = new \DateTime($dtstartDt->format(\DateTime::ATOM));
366
+        $dtendDt = new \DateTime($dtendDt->format(\DateTime::ATOM));
367
+
368
+        if ($isAllDay) {
369
+            // One day event
370
+            if ($diff->days === 1) {
371
+                return $l10n->l('date', $dtstartDt, ['width' => 'medium']);
372
+            }
373
+
374
+            //event that spans over multiple days
375
+            $localeStart = $l10n->l('date', $dtstartDt, ['width' => 'medium']);
376
+            $localeEnd = $l10n->l('date', $dtendDt, ['width' => 'medium']);
377
+
378
+            return $localeStart . ' - ' . $localeEnd;
379
+        }
380
+
381
+        /** @var Property\ICalendar\DateTime $dtstart */
382
+        /** @var Property\ICalendar\DateTime $dtend */
383
+        $isFloating = $dtstart->isFloating();
384
+        $startTimezone = $endTimezone = null;
385
+        if (!$isFloating) {
386
+            $prop = $dtstart->offsetGet('TZID');
387
+            if ($prop instanceof Parameter) {
388
+                $startTimezone = $prop->getValue();
389
+            }
390
+
391
+            $prop = $dtend->offsetGet('TZID');
392
+            if ($prop instanceof Parameter) {
393
+                $endTimezone = $prop->getValue();
394
+            }
395
+        }
396
+
397
+        $localeStart = $l10n->l('weekdayName', $dtstartDt, ['width' => 'abbreviated']) . ', ' .
398
+            $l10n->l('datetime', $dtstartDt, ['width' => 'medium|short']);
399
+
400
+        // always show full date with timezone if timezones are different
401
+        if ($startTimezone !== $endTimezone) {
402
+            $localeEnd = $l10n->l('datetime', $dtendDt, ['width' => 'medium|short']);
403
+
404
+            return $localeStart . ' (' . $startTimezone . ') - ' .
405
+                $localeEnd . ' (' . $endTimezone . ')';
406
+        }
407
+
408
+        // show only end time if date is the same
409
+        if ($this->isDayEqual($dtstartDt, $dtendDt)) {
410
+            $localeEnd = $l10n->l('time', $dtendDt, ['width' => 'short']);
411
+        } else {
412
+            $localeEnd = $l10n->l('weekdayName', $dtendDt, ['width' => 'abbreviated']) . ', ' .
413
+                $l10n->l('datetime', $dtendDt, ['width' => 'medium|short']);
414
+        }
415
+
416
+        return  $localeStart . ' - ' . $localeEnd . ' (' . $startTimezone . ')';
417
+    }
418
+
419
+    /**
420
+     * @param \DateTime $dtStart
421
+     * @param \DateTime $dtEnd
422
+     * @return bool
423
+     */
424
+    private function isDayEqual(\DateTime $dtStart, \DateTime $dtEnd) {
425
+        return $dtStart->format('Y-m-d') === $dtEnd->format('Y-m-d');
426
+    }
427
+
428
+    /**
429
+     * @param IEMailTemplate $template
430
+     * @param IL10N $l10n
431
+     * @param string $method
432
+     * @param string $summary
433
+     * @param string $attendeeName
434
+     * @param string $inviteeName
435
+     */
436
+    private function addSubjectAndHeading(IEMailTemplate $template, IL10N $l10n,
437
+                                            $method, $summary, $attendeeName, $inviteeName) {
438
+        if ($method === self::METHOD_CANCEL) {
439
+            $template->setSubject('Cancelled: ' . $summary);
440
+            $template->addHeading($l10n->t('Invitation canceled'), $l10n->t('Hello %s,', [$attendeeName]));
441
+            $template->addBodyText($l10n->t('The meeting »%s« with %s was canceled.', [$summary, $inviteeName]));
442
+        } else if ($method === self::METHOD_REPLY) {
443
+            $template->setSubject('Re: ' . $summary);
444
+            $template->addHeading($l10n->t('Invitation updated'), $l10n->t('Hello %s,', [$attendeeName]));
445
+            $template->addBodyText($l10n->t('The meeting »%s« with %s was updated.', [$summary, $inviteeName]));
446
+        } else {
447
+            $template->setSubject('Invitation: ' . $summary);
448
+            $template->addHeading($l10n->t('%s invited you to »%s«', [$inviteeName, $summary]), $l10n->t('Hello %s,', [$attendeeName]));
449
+        }
450
+
451
+    }
452
+
453
+    /**
454
+     * @param IEMailTemplate $template
455
+     * @param IL10N $l10n
456
+     * @param string $time
457
+     * @param string $location
458
+     * @param string $description
459
+     * @param string $url
460
+     */
461
+    private function addBulletList(IEMailTemplate $template, IL10N $l10n, $time, $location, $description, $url) {
462
+        $template->addBodyListItem($time, $l10n->t('When:'),
463
+            $this->getAbsoluteImagePath('filetypes/text-calendar.svg'));
464
+
465
+        if ($location) {
466
+            $template->addBodyListItem($location, $l10n->t('Where:'),
467
+                $this->getAbsoluteImagePath('filetypes/location.svg'));
468
+        }
469
+        if ($description) {
470
+            $template->addBodyListItem((string)$description, $l10n->t('Description:'),
471
+                $this->getAbsoluteImagePath('filetypes/text.svg'));
472
+        }
473
+        if ($url) {
474
+            $template->addBodyListItem((string)$url, $l10n->t('Link:'),
475
+                $this->getAbsoluteImagePath('filetypes/link.svg'));
476
+        }
477
+    }
478
+
479
+    /**
480
+     * @param IEMailTemplate $template
481
+     * @param IL10N $l10n
482
+     * @param Message $iTipMessage
483
+     * @param int $lastOccurrence
484
+     */
485
+    private function addResponseButtons(IEMailTemplate $template, IL10N $l10n,
486
+                                        Message $iTipMessage, $lastOccurrence) {
487
+        $token = $this->createInvitationToken($iTipMessage, $lastOccurrence);
488
+
489
+        $template->addBodyButtonGroup(
490
+            $l10n->t('Accept'),
491
+            $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.accept', [
492
+                'token' => $token,
493
+            ]),
494
+            $l10n->t('Decline'),
495
+            $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.decline', [
496
+                'token' => $token,
497
+            ])
498
+        );
499
+
500
+        $moreOptionsURL = $this->urlGenerator->linkToRouteAbsolute('dav.invitation_response.options', [
501
+            'token' => $token,
502
+        ]);
503
+        $html = vsprintf('<small><a href="%s">%s</a></small>', [
504
+            $moreOptionsURL, $l10n->t('More options ...')
505
+        ]);
506
+        $text = $l10n->t('More options at %s', [$moreOptionsURL]);
507 507
 		
508
-		$template->addBodyText($html, $text);
509
-	}
510
-
511
-	/**
512
-	 * @param string $path
513
-	 * @return string
514
-	 */
515
-	private function getAbsoluteImagePath($path) {
516
-		return $this->urlGenerator->getAbsoluteURL(
517
-			$this->urlGenerator->imagePath('core', $path)
518
-		);
519
-	}
520
-
521
-	/**
522
-	 * @param Message $iTipMessage
523
-	 * @param int $lastOccurrence
524
-	 * @return string
525
-	 */
526
-	private function createInvitationToken(Message $iTipMessage, $lastOccurrence):string {
527
-		$token = $this->random->generate(60, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS);
528
-
529
-		/** @var VEvent $vevent */
530
-		$vevent = $iTipMessage->message->VEVENT;
531
-		$attendee = $iTipMessage->recipient;
532
-		$organizer = $iTipMessage->sender;
533
-		$sequence = $iTipMessage->sequence;
534
-		$recurrenceId = isset($vevent->{'RECURRENCE-ID'}) ?
535
-			$vevent->{'RECURRENCE-ID'}->getValue() : null;
536
-		$uid = $vevent->{'UID'};
537
-
538
-		$query = $this->db->getQueryBuilder();
539
-		$query->insert('calendar_invitation_tokens')
540
-			->values([
541
-				'token' => $query->createNamedParameter($token),
542
-				'attendee' => $query->createNamedParameter($attendee),
543
-				'organizer' => $query->createNamedParameter($organizer),
544
-				'sequence' => $query->createNamedParameter($sequence),
545
-				'recurrenceid' => $query->createNamedParameter($recurrenceId),
546
-				'expiration' => $query->createNamedParameter($lastOccurrence),
547
-				'uid' => $query->createNamedParameter($uid)
548
-			])
549
-			->execute();
550
-
551
-		return $token;
552
-	}
508
+        $template->addBodyText($html, $text);
509
+    }
510
+
511
+    /**
512
+     * @param string $path
513
+     * @return string
514
+     */
515
+    private function getAbsoluteImagePath($path) {
516
+        return $this->urlGenerator->getAbsoluteURL(
517
+            $this->urlGenerator->imagePath('core', $path)
518
+        );
519
+    }
520
+
521
+    /**
522
+     * @param Message $iTipMessage
523
+     * @param int $lastOccurrence
524
+     * @return string
525
+     */
526
+    private function createInvitationToken(Message $iTipMessage, $lastOccurrence):string {
527
+        $token = $this->random->generate(60, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS);
528
+
529
+        /** @var VEvent $vevent */
530
+        $vevent = $iTipMessage->message->VEVENT;
531
+        $attendee = $iTipMessage->recipient;
532
+        $organizer = $iTipMessage->sender;
533
+        $sequence = $iTipMessage->sequence;
534
+        $recurrenceId = isset($vevent->{'RECURRENCE-ID'}) ?
535
+            $vevent->{'RECURRENCE-ID'}->getValue() : null;
536
+        $uid = $vevent->{'UID'};
537
+
538
+        $query = $this->db->getQueryBuilder();
539
+        $query->insert('calendar_invitation_tokens')
540
+            ->values([
541
+                'token' => $query->createNamedParameter($token),
542
+                'attendee' => $query->createNamedParameter($attendee),
543
+                'organizer' => $query->createNamedParameter($organizer),
544
+                'sequence' => $query->createNamedParameter($sequence),
545
+                'recurrenceid' => $query->createNamedParameter($recurrenceId),
546
+                'expiration' => $query->createNamedParameter($lastOccurrence),
547
+                'uid' => $query->createNamedParameter($uid)
548
+            ])
549
+            ->execute();
550
+
551
+        return $token;
552
+    }
553 553
 }
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -217,11 +217,11 @@  discard block
 block discarded – undo
217 217
 		}
218 218
 
219 219
 		$data = array(
220
-			'attendee_name' => (string)$meetingAttendeeName ?: $defaultVal,
221
-			'invitee_name' => (string)$meetingInviteeName ?: $defaultVal,
222
-			'meeting_title' => (string)$meetingTitle ?: $defaultVal,
223
-			'meeting_description' => (string)$meetingDescription ?: $defaultVal,
224
-			'meeting_url' => (string)$meetingUrl ?: $defaultVal,
220
+			'attendee_name' => (string) $meetingAttendeeName ?: $defaultVal,
221
+			'invitee_name' => (string) $meetingInviteeName ?: $defaultVal,
222
+			'meeting_title' => (string) $meetingTitle ?: $defaultVal,
223
+			'meeting_description' => (string) $meetingDescription ?: $defaultVal,
224
+			'meeting_url' => (string) $meetingUrl ?: $defaultVal,
225 225
 		);
226 226
 
227 227
 		$fromEMail = \OCP\Util::getDefaultEmailAddress('invitations-noreply');
@@ -232,7 +232,7 @@  discard block
 block discarded – undo
232 232
 			->setReplyTo([$sender => $senderName])
233 233
 			->setTo([$recipient => $recipientName]);
234 234
 
235
-		$template = $this->mailer->createEMailTemplate('dav.calendarInvite.' . $method, $data);
235
+		$template = $this->mailer->createEMailTemplate('dav.calendarInvite.'.$method, $data);
236 236
 		$template->addHeader();
237 237
 
238 238
 		$this->addSubjectAndHeading($template, $l10n, $method, $summary,
@@ -246,8 +246,8 @@  discard block
 block discarded – undo
246 246
 
247 247
 		$attachment = $this->mailer->createAttachment(
248 248
 			$iTipMessage->message->serialize(),
249
-			'event.ics',// TODO(leon): Make file name unique, e.g. add event id
250
-			'text/calendar; method=' . $iTipMessage->method
249
+			'event.ics', // TODO(leon): Make file name unique, e.g. add event id
250
+			'text/calendar; method='.$iTipMessage->method
251 251
 		);
252 252
 		$message->attach($attachment);
253 253
 
@@ -258,7 +258,7 @@  discard block
 block discarded – undo
258 258
 				$this->logger->error('Unable to deliver message to {failed}', ['app' => 'dav', 'failed' =>  implode(', ', $failed)]);
259 259
 				$iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
260 260
 			}
261
-		} catch(\Exception $ex) {
261
+		} catch (\Exception $ex) {
262 262
 			$this->logger->logException($ex, ['app' => 'dav']);
263 263
 			$iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
264 264
 		}
@@ -294,13 +294,13 @@  discard block
 block discarded – undo
294 294
 				$lastOccurrence = $firstOccurrence;
295 295
 			}
296 296
 		} else {
297
-			$it = new EventIterator($vObject, (string)$component->UID);
297
+			$it = new EventIterator($vObject, (string) $component->UID);
298 298
 			$maxDate = new \DateTime(self::MAX_DATE);
299 299
 			if ($it->isInfinite()) {
300 300
 				$lastOccurrence = $maxDate->getTimestamp();
301 301
 			} else {
302 302
 				$end = $it->getDtEnd();
303
-				while($it->valid() && $end < $maxDate) {
303
+				while ($it->valid() && $end < $maxDate) {
304 304
 					$end = $it->getDtEnd();
305 305
 					$it->next();
306 306
 
@@ -375,7 +375,7 @@  discard block
 block discarded – undo
375 375
 			$localeStart = $l10n->l('date', $dtstartDt, ['width' => 'medium']);
376 376
 			$localeEnd = $l10n->l('date', $dtendDt, ['width' => 'medium']);
377 377
 
378
-			return $localeStart . ' - ' . $localeEnd;
378
+			return $localeStart.' - '.$localeEnd;
379 379
 		}
380 380
 
381 381
 		/** @var Property\ICalendar\DateTime $dtstart */
@@ -394,26 +394,26 @@  discard block
 block discarded – undo
394 394
 			}
395 395
 		}
396 396
 
397
-		$localeStart = $l10n->l('weekdayName', $dtstartDt, ['width' => 'abbreviated']) . ', ' .
397
+		$localeStart = $l10n->l('weekdayName', $dtstartDt, ['width' => 'abbreviated']).', '.
398 398
 			$l10n->l('datetime', $dtstartDt, ['width' => 'medium|short']);
399 399
 
400 400
 		// always show full date with timezone if timezones are different
401 401
 		if ($startTimezone !== $endTimezone) {
402 402
 			$localeEnd = $l10n->l('datetime', $dtendDt, ['width' => 'medium|short']);
403 403
 
404
-			return $localeStart . ' (' . $startTimezone . ') - ' .
405
-				$localeEnd . ' (' . $endTimezone . ')';
404
+			return $localeStart.' ('.$startTimezone.') - '.
405
+				$localeEnd.' ('.$endTimezone.')';
406 406
 		}
407 407
 
408 408
 		// show only end time if date is the same
409 409
 		if ($this->isDayEqual($dtstartDt, $dtendDt)) {
410 410
 			$localeEnd = $l10n->l('time', $dtendDt, ['width' => 'short']);
411 411
 		} else {
412
-			$localeEnd = $l10n->l('weekdayName', $dtendDt, ['width' => 'abbreviated']) . ', ' .
412
+			$localeEnd = $l10n->l('weekdayName', $dtendDt, ['width' => 'abbreviated']).', '.
413 413
 				$l10n->l('datetime', $dtendDt, ['width' => 'medium|short']);
414 414
 		}
415 415
 
416
-		return  $localeStart . ' - ' . $localeEnd . ' (' . $startTimezone . ')';
416
+		return  $localeStart.' - '.$localeEnd.' ('.$startTimezone.')';
417 417
 	}
418 418
 
419 419
 	/**
@@ -436,15 +436,15 @@  discard block
 block discarded – undo
436 436
 	private function addSubjectAndHeading(IEMailTemplate $template, IL10N $l10n,
437 437
 										  $method, $summary, $attendeeName, $inviteeName) {
438 438
 		if ($method === self::METHOD_CANCEL) {
439
-			$template->setSubject('Cancelled: ' . $summary);
439
+			$template->setSubject('Cancelled: '.$summary);
440 440
 			$template->addHeading($l10n->t('Invitation canceled'), $l10n->t('Hello %s,', [$attendeeName]));
441 441
 			$template->addBodyText($l10n->t('The meeting »%s« with %s was canceled.', [$summary, $inviteeName]));
442 442
 		} else if ($method === self::METHOD_REPLY) {
443
-			$template->setSubject('Re: ' . $summary);
443
+			$template->setSubject('Re: '.$summary);
444 444
 			$template->addHeading($l10n->t('Invitation updated'), $l10n->t('Hello %s,', [$attendeeName]));
445 445
 			$template->addBodyText($l10n->t('The meeting »%s« with %s was updated.', [$summary, $inviteeName]));
446 446
 		} else {
447
-			$template->setSubject('Invitation: ' . $summary);
447
+			$template->setSubject('Invitation: '.$summary);
448 448
 			$template->addHeading($l10n->t('%s invited you to »%s«', [$inviteeName, $summary]), $l10n->t('Hello %s,', [$attendeeName]));
449 449
 		}
450 450
 
@@ -467,11 +467,11 @@  discard block
 block discarded – undo
467 467
 				$this->getAbsoluteImagePath('filetypes/location.svg'));
468 468
 		}
469 469
 		if ($description) {
470
-			$template->addBodyListItem((string)$description, $l10n->t('Description:'),
470
+			$template->addBodyListItem((string) $description, $l10n->t('Description:'),
471 471
 				$this->getAbsoluteImagePath('filetypes/text.svg'));
472 472
 		}
473 473
 		if ($url) {
474
-			$template->addBodyListItem((string)$url, $l10n->t('Link:'),
474
+			$template->addBodyListItem((string) $url, $l10n->t('Link:'),
475 475
 				$this->getAbsoluteImagePath('filetypes/link.svg'));
476 476
 		}
477 477
 	}
@@ -524,7 +524,7 @@  discard block
 block discarded – undo
524 524
 	 * @return string
525 525
 	 */
526 526
 	private function createInvitationToken(Message $iTipMessage, $lastOccurrence):string {
527
-		$token = $this->random->generate(60, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS);
527
+		$token = $this->random->generate(60, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS);
528 528
 
529 529
 		/** @var VEvent $vevent */
530 530
 		$vevent = $iTipMessage->message->VEVENT;
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/InvitationResponse/InvitationResponseServer.php 2 patches
Indentation   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -32,77 +32,77 @@
 block discarded – undo
32 32
 
33 33
 class InvitationResponseServer {
34 34
 
35
-	/** @var \OCA\DAV\Connector\Sabre\Server */
36
-	public $server;
35
+    /** @var \OCA\DAV\Connector\Sabre\Server */
36
+    public $server;
37 37
 
38
-	/**
39
-	 * InvitationResponseServer constructor.
40
-	 *
41
-	 * @param string $baseUri
42
-	 */
43
-	public function __construct($baseUri) {
44
-		$logger = \OC::$server->getLogger();
45
-		$dispatcher = \OC::$server->getEventDispatcher();
38
+    /**
39
+     * InvitationResponseServer constructor.
40
+     *
41
+     * @param string $baseUri
42
+     */
43
+    public function __construct($baseUri) {
44
+        $logger = \OC::$server->getLogger();
45
+        $dispatcher = \OC::$server->getEventDispatcher();
46 46
 
47
-		$root = new RootCollection();
48
-		$this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root));
47
+        $root = new RootCollection();
48
+        $this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root));
49 49
 
50
-		// Add maintenance plugin
51
-		$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\MaintenancePlugin(\OC::$server->getConfig()));
50
+        // Add maintenance plugin
51
+        $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\MaintenancePlugin(\OC::$server->getConfig()));
52 52
 
53
-		// Set URL explicitly due to reverse-proxy situations
54
-		$this->server->httpRequest->setUrl($baseUri);
55
-		$this->server->setBaseUri($baseUri);
53
+        // Set URL explicitly due to reverse-proxy situations
54
+        $this->server->httpRequest->setUrl($baseUri);
55
+        $this->server->setBaseUri($baseUri);
56 56
 
57
-		$this->server->addPlugin(new BlockLegacyClientPlugin(\OC::$server->getConfig()));
58
-		$this->server->addPlugin(new AnonymousOptionsPlugin());
59
-		$this->server->addPlugin(new class() extends Plugin {
60
-			public function getCurrentPrincipal() {
61
-				return 'principals/system/public';
62
-			}
63
-		});
57
+        $this->server->addPlugin(new BlockLegacyClientPlugin(\OC::$server->getConfig()));
58
+        $this->server->addPlugin(new AnonymousOptionsPlugin());
59
+        $this->server->addPlugin(new class() extends Plugin {
60
+            public function getCurrentPrincipal() {
61
+                return 'principals/system/public';
62
+            }
63
+        });
64 64
 
65
-		// allow setup of additional auth backends
66
-		$event = new SabrePluginEvent($this->server);
67
-		$dispatcher->dispatch('OCA\DAV\Connector\Sabre::authInit', $event);
65
+        // allow setup of additional auth backends
66
+        $event = new SabrePluginEvent($this->server);
67
+        $dispatcher->dispatch('OCA\DAV\Connector\Sabre::authInit', $event);
68 68
 
69
-		$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
70
-		$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
71
-		$this->server->addPlugin(new \Sabre\DAV\Sync\Plugin());
69
+        $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
70
+        $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
71
+        $this->server->addPlugin(new \Sabre\DAV\Sync\Plugin());
72 72
 
73
-		// acl
74
-		$acl = new DavAclPlugin();
75
-		$acl->principalCollectionSet = [
76
-			'principals/users', 'principals/groups'
77
-		];
78
-		$acl->defaultUsernamePath = 'principals/users';
79
-		$this->server->addPlugin($acl);
73
+        // acl
74
+        $acl = new DavAclPlugin();
75
+        $acl->principalCollectionSet = [
76
+            'principals/users', 'principals/groups'
77
+        ];
78
+        $acl->defaultUsernamePath = 'principals/users';
79
+        $this->server->addPlugin($acl);
80 80
 
81
-		// calendar plugins
82
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
83
-		$this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
84
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin());
85
-		$this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
86
-		$this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
87
-		//$this->server->addPlugin(new \OCA\DAV\DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
88
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Publishing\PublishPlugin(
89
-			\OC::$server->getConfig(),
90
-			\OC::$server->getURLGenerator()
91
-		));
81
+        // calendar plugins
82
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
83
+        $this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
84
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin());
85
+        $this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
86
+        $this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
87
+        //$this->server->addPlugin(new \OCA\DAV\DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
88
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Publishing\PublishPlugin(
89
+            \OC::$server->getConfig(),
90
+            \OC::$server->getURLGenerator()
91
+        ));
92 92
 
93
-		// wait with registering these until auth is handled and the filesystem is setup
94
-		$this->server->on('beforeMethod', function () use ($root) {
95
-			// register plugins from apps
96
-			$pluginManager = new PluginManager(
97
-				\OC::$server,
98
-				\OC::$server->getAppManager()
99
-			);
100
-			foreach ($pluginManager->getAppPlugins() as $appPlugin) {
101
-				$this->server->addPlugin($appPlugin);
102
-			}
103
-			foreach ($pluginManager->getAppCollections() as $appCollection) {
104
-				$root->addChild($appCollection);
105
-			}
106
-		});
107
-	}
93
+        // wait with registering these until auth is handled and the filesystem is setup
94
+        $this->server->on('beforeMethod', function () use ($root) {
95
+            // register plugins from apps
96
+            $pluginManager = new PluginManager(
97
+                \OC::$server,
98
+                \OC::$server->getAppManager()
99
+            );
100
+            foreach ($pluginManager->getAppPlugins() as $appPlugin) {
101
+                $this->server->addPlugin($appPlugin);
102
+            }
103
+            foreach ($pluginManager->getAppCollections() as $appCollection) {
104
+                $root->addChild($appCollection);
105
+            }
106
+        });
107
+    }
108 108
 }
109 109
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -91,7 +91,7 @@
 block discarded – undo
91 91
 		));
92 92
 
93 93
 		// wait with registering these until auth is handled and the filesystem is setup
94
-		$this->server->on('beforeMethod', function () use ($root) {
94
+		$this->server->on('beforeMethod', function() use ($root) {
95 95
 			// register plugins from apps
96 96
 			$pluginManager = new PluginManager(
97 97
 				\OC::$server,
Please login to merge, or discard this patch.
apps/dav/lib/Migration/Version1006Date20180619154313.php 1 patch
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -11,61 +11,61 @@
 block discarded – undo
11 11
  */
12 12
 class Version1006Date20180619154313 extends SimpleMigrationStep {
13 13
 
14
-	/**
15
-	 * @param IOutput $output
16
-	 * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
17
-	 * @param array $options
18
-	 * @return null|ISchemaWrapper
19
-	 * @since 13.0.0
20
-	 */
21
-	public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
22
-		/** @var ISchemaWrapper $schema */
23
-		$schema = $schemaClosure();
14
+    /**
15
+     * @param IOutput $output
16
+     * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
17
+     * @param array $options
18
+     * @return null|ISchemaWrapper
19
+     * @since 13.0.0
20
+     */
21
+    public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
22
+        /** @var ISchemaWrapper $schema */
23
+        $schema = $schemaClosure();
24 24
 
25
-		if (!$schema->hasTable('calendar_invitation_tokens')) {
26
-			$table = $schema->createTable('calendar_invitation_tokens');
25
+        if (!$schema->hasTable('calendar_invitation_tokens')) {
26
+            $table = $schema->createTable('calendar_invitation_tokens');
27 27
 
28
-			$table->addColumn('id', Type::BIGINT, [
29
-				'autoincrement' => true,
30
-				'notnull' => true,
31
-				'length' => 11,
32
-				'unsigned' => true,
33
-			]);
34
-			$table->addColumn('uid', Type::STRING, [
35
-				'notnull' => true,
36
-				'length' => 255,
37
-			]);
38
-			$table->addColumn('recurrenceid', Type::STRING, [
39
-				'notnull' => false,
40
-				'length' => 255,
41
-			]);
42
-			$table->addColumn('attendee', Type::STRING, [
43
-				'notnull' => true,
44
-				'length' => 255,
45
-			]);
46
-			$table->addColumn('organizer', Type::STRING, [
47
-				'notnull' => true,
48
-				'length' => 255,
49
-			]);
50
-			$table->addColumn('sequence', Type::BIGINT, [
51
-				'notnull' => false,
52
-				'length' => 11,
53
-				'unsigned' => true,
54
-			]);
55
-			$table->addColumn('token', Type::STRING, [
56
-				'notnull' => true,
57
-				'length' => 60,
58
-			]);
59
-			$table->addColumn('expiration', Type::BIGINT, [
60
-				'notnull' => true,
61
-				'length' => 11,
62
-				'unsigned' => true,
63
-			]);
28
+            $table->addColumn('id', Type::BIGINT, [
29
+                'autoincrement' => true,
30
+                'notnull' => true,
31
+                'length' => 11,
32
+                'unsigned' => true,
33
+            ]);
34
+            $table->addColumn('uid', Type::STRING, [
35
+                'notnull' => true,
36
+                'length' => 255,
37
+            ]);
38
+            $table->addColumn('recurrenceid', Type::STRING, [
39
+                'notnull' => false,
40
+                'length' => 255,
41
+            ]);
42
+            $table->addColumn('attendee', Type::STRING, [
43
+                'notnull' => true,
44
+                'length' => 255,
45
+            ]);
46
+            $table->addColumn('organizer', Type::STRING, [
47
+                'notnull' => true,
48
+                'length' => 255,
49
+            ]);
50
+            $table->addColumn('sequence', Type::BIGINT, [
51
+                'notnull' => false,
52
+                'length' => 11,
53
+                'unsigned' => true,
54
+            ]);
55
+            $table->addColumn('token', Type::STRING, [
56
+                'notnull' => true,
57
+                'length' => 60,
58
+            ]);
59
+            $table->addColumn('expiration', Type::BIGINT, [
60
+                'notnull' => true,
61
+                'length' => 11,
62
+                'unsigned' => true,
63
+            ]);
64 64
 
65
-			$table->setPrimaryKey(['id'], 'calendar_invitation_tokens_id_idx');
66
-			$table->addIndex(['token'], 'calendar_invitation_tokens_token_idx');
65
+            $table->setPrimaryKey(['id'], 'calendar_invitation_tokens_id_idx');
66
+            $table->addIndex(['token'], 'calendar_invitation_tokens_token_idx');
67 67
 
68
-			return $schema;
69
-		}
70
-	}
68
+            return $schema;
69
+        }
70
+    }
71 71
 }
Please login to merge, or discard this patch.
apps/dav/composer/composer/autoload_static.php 1 patch
Spacing   +164 added lines, -164 removed lines patch added patch discarded remove patch
@@ -6,183 +6,183 @@
 block discarded – undo
6 6
 
7 7
 class ComposerStaticInitDAV
8 8
 {
9
-    public static $prefixLengthsPsr4 = array (
9
+    public static $prefixLengthsPsr4 = array(
10 10
         'O' => 
11
-        array (
11
+        array(
12 12
             'OCA\\DAV\\' => 8,
13 13
         ),
14 14
     );
15 15
 
16
-    public static $prefixDirsPsr4 = array (
16
+    public static $prefixDirsPsr4 = array(
17 17
         'OCA\\DAV\\' => 
18
-        array (
19
-            0 => __DIR__ . '/..' . '/../lib',
18
+        array(
19
+            0 => __DIR__.'/..'.'/../lib',
20 20
         ),
21 21
     );
22 22
 
23
-    public static $classMap = array (
24
-        'OCA\\DAV\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
25
-        'OCA\\DAV\\AppInfo\\PluginManager' => __DIR__ . '/..' . '/../lib/AppInfo/PluginManager.php',
26
-        'OCA\\DAV\\Avatars\\AvatarHome' => __DIR__ . '/..' . '/../lib/Avatars/AvatarHome.php',
27
-        'OCA\\DAV\\Avatars\\AvatarNode' => __DIR__ . '/..' . '/../lib/Avatars/AvatarNode.php',
28
-        'OCA\\DAV\\Avatars\\RootCollection' => __DIR__ . '/..' . '/../lib/Avatars/RootCollection.php',
29
-        'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupDirectLinksJob.php',
30
-        'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
31
-        'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Backend.php',
32
-        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Calendar.php',
33
-        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Todo.php',
34
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Base.php',
35
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Calendar.php',
36
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Event.php',
37
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Todo.php',
38
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Calendar.php',
39
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Event.php',
40
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Todo.php',
41
-        'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
42
-        'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayService.php',
43
-        'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__ . '/..' . '/../lib/CalDAV/CalDavBackend.php',
44
-        'OCA\\DAV\\CalDAV\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Calendar.php',
45
-        'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarHome.php',
46
-        'OCA\\DAV\\CalDAV\\CalendarImpl' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarImpl.php',
47
-        'OCA\\DAV\\CalDAV\\CalendarManager' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarManager.php',
48
-        'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarObject.php',
49
-        'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarRoot.php',
50
-        'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => __DIR__ . '/..' . '/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
51
-        'OCA\\DAV\\CalDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Plugin.php',
52
-        'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/Collection.php',
53
-        'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/User.php',
54
-        'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendar.php',
55
-        'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarObject.php',
56
-        'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarRoot.php',
57
-        'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/PublishPlugin.php',
58
-        'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/Xml/Publisher.php',
59
-        'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/IMipPlugin.php',
60
-        'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/Plugin.php',
61
-        'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Search/SearchPlugin.php',
62
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
63
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
64
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
65
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
66
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
67
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
68
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
69
-        'OCA\\DAV\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
70
-        'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBook.php',
71
-        'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookImpl.php',
72
-        'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookRoot.php',
73
-        'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__ . '/..' . '/../lib/CardDAV/CardDavBackend.php',
74
-        'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__ . '/..' . '/../lib/CardDAV/ContactsManager.php',
75
-        'OCA\\DAV\\CardDAV\\Converter' => __DIR__ . '/..' . '/../lib/CardDAV/Converter.php',
76
-        'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/ImageExportPlugin.php',
77
-        'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__ . '/..' . '/../lib/CardDAV/PhotoCache.php',
78
-        'OCA\\DAV\\CardDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CardDAV/Plugin.php',
79
-        'OCA\\DAV\\CardDAV\\SyncService' => __DIR__ . '/..' . '/../lib/CardDAV/SyncService.php',
80
-        'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__ . '/..' . '/../lib/CardDAV/UserAddressBooks.php',
81
-        'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__ . '/..' . '/../lib/CardDAV/Xml/Groups.php',
82
-        'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__ . '/..' . '/../lib/Command/CreateAddressBook.php',
83
-        'OCA\\DAV\\Command\\CreateCalendar' => __DIR__ . '/..' . '/../lib/Command/CreateCalendar.php',
84
-        'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__ . '/..' . '/../lib/Command/RemoveInvalidShares.php',
85
-        'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__ . '/..' . '/../lib/Command/SyncBirthdayCalendar.php',
86
-        'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__ . '/..' . '/../lib/Command/SyncSystemAddressBook.php',
87
-        'OCA\\DAV\\Comments\\CommentNode' => __DIR__ . '/..' . '/../lib/Comments/CommentNode.php',
88
-        'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__ . '/..' . '/../lib/Comments/CommentsPlugin.php',
89
-        'OCA\\DAV\\Comments\\EntityCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityCollection.php',
90
-        'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityTypeCollection.php',
91
-        'OCA\\DAV\\Comments\\RootCollection' => __DIR__ . '/..' . '/../lib/Comments/RootCollection.php',
92
-        'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__ . '/..' . '/../lib/Connector/LegacyDAVACL.php',
93
-        'OCA\\DAV\\Connector\\PublicAuth' => __DIR__ . '/..' . '/../lib/Connector/PublicAuth.php',
94
-        'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
95
-        'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AppEnabledPlugin.php',
96
-        'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Auth.php',
97
-        'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BearerAuth.php',
98
-        'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
99
-        'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CachingTree.php',
100
-        'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ChecksumList.php',
101
-        'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
102
-        'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
103
-        'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CustomPropertiesBackend.php',
104
-        'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DavAclPlugin.php',
105
-        'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Directory.php',
106
-        'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
107
-        'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
108
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
109
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/FileLocked.php',
110
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/Forbidden.php',
111
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
112
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
113
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
114
-        'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
115
-        'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__ . '/..' . '/../lib/Connector/Sabre/File.php',
116
-        'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesPlugin.php',
117
-        'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesReportPlugin.php',
118
-        'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/LockPlugin.php',
119
-        'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/MaintenancePlugin.php',
120
-        'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Node.php',
121
-        'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ObjectTree.php',
122
-        'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Principal.php',
123
-        'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/QuotaPlugin.php',
124
-        'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Server.php',
125
-        'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ServerFactory.php',
126
-        'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ShareTypeList.php',
127
-        'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/SharesPlugin.php',
128
-        'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagList.php',
129
-        'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagsPlugin.php',
130
-        'OCA\\DAV\\Controller\\BirthdayCalendarController' => __DIR__ . '/..' . '/../lib/Controller/BirthdayCalendarController.php',
131
-        'OCA\\DAV\\Controller\\DirectController' => __DIR__ . '/..' . '/../lib/Controller/DirectController.php',
132
-        'OCA\\DAV\\Controller\\InvitationResponseController' => __DIR__ . '/..' . '/../lib/Controller/InvitationResponseController.php',
133
-        'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__ . '/..' . '/../lib/DAV/CustomPropertiesBackend.php',
134
-        'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/GroupPrincipalBackend.php',
135
-        'OCA\\DAV\\DAV\\PublicAuth' => __DIR__ . '/..' . '/../lib/DAV/PublicAuth.php',
136
-        'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Backend.php',
137
-        'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__ . '/..' . '/../lib/DAV/Sharing/IShareable.php',
138
-        'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Plugin.php',
139
-        'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/Invite.php',
140
-        'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/ShareRequest.php',
141
-        'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/SystemPrincipalBackend.php',
142
-        'OCA\\DAV\\Db\\Direct' => __DIR__ . '/..' . '/../lib/Db/Direct.php',
143
-        'OCA\\DAV\\Db\\DirectMapper' => __DIR__ . '/..' . '/../lib/Db/DirectMapper.php',
144
-        'OCA\\DAV\\Direct\\DirectFile' => __DIR__ . '/..' . '/../lib/Direct/DirectFile.php',
145
-        'OCA\\DAV\\Direct\\DirectHome' => __DIR__ . '/..' . '/../lib/Direct/DirectHome.php',
146
-        'OCA\\DAV\\Direct\\Server' => __DIR__ . '/..' . '/../lib/Direct/Server.php',
147
-        'OCA\\DAV\\Direct\\ServerFactory' => __DIR__ . '/..' . '/../lib/Direct/ServerFactory.php',
148
-        'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__ . '/..' . '/../lib/Files/BrowserErrorPagePlugin.php',
149
-        'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__ . '/..' . '/../lib/Files/FileSearchBackend.php',
150
-        'OCA\\DAV\\Files\\FilesHome' => __DIR__ . '/..' . '/../lib/Files/FilesHome.php',
151
-        'OCA\\DAV\\Files\\RootCollection' => __DIR__ . '/..' . '/../lib/Files/RootCollection.php',
152
-        'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/FilesDropPlugin.php',
153
-        'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
154
-        'OCA\\DAV\\HookManager' => __DIR__ . '/..' . '/../lib/HookManager.php',
155
-        'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndex.php',
156
-        'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
157
-        'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__ . '/..' . '/../lib/Migration/CalDAVRemoveEmptyValue.php',
158
-        'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__ . '/..' . '/../lib/Migration/FixBirthdayCalendarComponent.php',
159
-        'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170825134824.php',
160
-        'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170919104507.php',
161
-        'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170924124212.php',
162
-        'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170926103422.php',
163
-        'OCA\\DAV\\Migration\\Version1005Date20180413093149' => __DIR__ . '/..' . '/../lib/Migration/Version1005Date20180413093149.php',
164
-        'OCA\\DAV\\Migration\\Version1006Date20180619154313' => __DIR__ . '/..' . '/../lib/Migration/Version1006Date20180619154313.php',
165
-        'OCA\\DAV\\RootCollection' => __DIR__ . '/..' . '/../lib/RootCollection.php',
166
-        'OCA\\DAV\\Server' => __DIR__ . '/..' . '/../lib/Server.php',
167
-        'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__ . '/..' . '/../lib/Settings/CalDAVSettings.php',
168
-        'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagMappingNode.php',
169
-        'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagNode.php',
170
-        'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagPlugin.php',
171
-        'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsByIdCollection.php',
172
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
173
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
174
-        'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
175
-        'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__ . '/..' . '/../lib/Upload/AssemblyStream.php',
176
-        'OCA\\DAV\\Upload\\ChunkingPlugin' => __DIR__ . '/..' . '/../lib/Upload/ChunkingPlugin.php',
177
-        'OCA\\DAV\\Upload\\FutureFile' => __DIR__ . '/..' . '/../lib/Upload/FutureFile.php',
178
-        'OCA\\DAV\\Upload\\RootCollection' => __DIR__ . '/..' . '/../lib/Upload/RootCollection.php',
179
-        'OCA\\DAV\\Upload\\UploadFolder' => __DIR__ . '/..' . '/../lib/Upload/UploadFolder.php',
180
-        'OCA\\DAV\\Upload\\UploadHome' => __DIR__ . '/..' . '/../lib/Upload/UploadHome.php',
23
+    public static $classMap = array(
24
+        'OCA\\DAV\\AppInfo\\Application' => __DIR__.'/..'.'/../lib/AppInfo/Application.php',
25
+        'OCA\\DAV\\AppInfo\\PluginManager' => __DIR__.'/..'.'/../lib/AppInfo/PluginManager.php',
26
+        'OCA\\DAV\\Avatars\\AvatarHome' => __DIR__.'/..'.'/../lib/Avatars/AvatarHome.php',
27
+        'OCA\\DAV\\Avatars\\AvatarNode' => __DIR__.'/..'.'/../lib/Avatars/AvatarNode.php',
28
+        'OCA\\DAV\\Avatars\\RootCollection' => __DIR__.'/..'.'/../lib/Avatars/RootCollection.php',
29
+        'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CleanupDirectLinksJob.php',
30
+        'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
31
+        'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Backend.php',
32
+        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Filter/Calendar.php',
33
+        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Filter/Todo.php',
34
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Base.php',
35
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Calendar.php',
36
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Event.php',
37
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Todo.php',
38
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Calendar.php',
39
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Event.php',
40
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Todo.php',
41
+        'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => __DIR__.'/..'.'/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
42
+        'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__.'/..'.'/../lib/CalDAV/BirthdayService.php',
43
+        'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__.'/..'.'/../lib/CalDAV/CalDavBackend.php',
44
+        'OCA\\DAV\\CalDAV\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Calendar.php',
45
+        'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__.'/..'.'/../lib/CalDAV/CalendarHome.php',
46
+        'OCA\\DAV\\CalDAV\\CalendarImpl' => __DIR__.'/..'.'/../lib/CalDAV/CalendarImpl.php',
47
+        'OCA\\DAV\\CalDAV\\CalendarManager' => __DIR__.'/..'.'/../lib/CalDAV/CalendarManager.php',
48
+        'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/CalendarObject.php',
49
+        'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__.'/..'.'/../lib/CalDAV/CalendarRoot.php',
50
+        'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => __DIR__.'/..'.'/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
51
+        'OCA\\DAV\\CalDAV\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Plugin.php',
52
+        'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__.'/..'.'/../lib/CalDAV/Principal/Collection.php',
53
+        'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__.'/..'.'/../lib/CalDAV/Principal/User.php',
54
+        'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendar.php',
55
+        'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendarObject.php',
56
+        'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendarRoot.php',
57
+        'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Publishing/PublishPlugin.php',
58
+        'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__.'/..'.'/../lib/CalDAV/Publishing/Xml/Publisher.php',
59
+        'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/IMipPlugin.php',
60
+        'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/Plugin.php',
61
+        'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Search/SearchPlugin.php',
62
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
63
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
64
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
65
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
66
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
67
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
68
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
69
+        'OCA\\DAV\\Capabilities' => __DIR__.'/..'.'/../lib/Capabilities.php',
70
+        'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__.'/..'.'/../lib/CardDAV/AddressBook.php',
71
+        'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__.'/..'.'/../lib/CardDAV/AddressBookImpl.php',
72
+        'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__.'/..'.'/../lib/CardDAV/AddressBookRoot.php',
73
+        'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__.'/..'.'/../lib/CardDAV/CardDavBackend.php',
74
+        'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__.'/..'.'/../lib/CardDAV/ContactsManager.php',
75
+        'OCA\\DAV\\CardDAV\\Converter' => __DIR__.'/..'.'/../lib/CardDAV/Converter.php',
76
+        'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__.'/..'.'/../lib/CardDAV/ImageExportPlugin.php',
77
+        'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__.'/..'.'/../lib/CardDAV/PhotoCache.php',
78
+        'OCA\\DAV\\CardDAV\\Plugin' => __DIR__.'/..'.'/../lib/CardDAV/Plugin.php',
79
+        'OCA\\DAV\\CardDAV\\SyncService' => __DIR__.'/..'.'/../lib/CardDAV/SyncService.php',
80
+        'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__.'/..'.'/../lib/CardDAV/UserAddressBooks.php',
81
+        'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__.'/..'.'/../lib/CardDAV/Xml/Groups.php',
82
+        'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__.'/..'.'/../lib/Command/CreateAddressBook.php',
83
+        'OCA\\DAV\\Command\\CreateCalendar' => __DIR__.'/..'.'/../lib/Command/CreateCalendar.php',
84
+        'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__.'/..'.'/../lib/Command/RemoveInvalidShares.php',
85
+        'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__.'/..'.'/../lib/Command/SyncBirthdayCalendar.php',
86
+        'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__.'/..'.'/../lib/Command/SyncSystemAddressBook.php',
87
+        'OCA\\DAV\\Comments\\CommentNode' => __DIR__.'/..'.'/../lib/Comments/CommentNode.php',
88
+        'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__.'/..'.'/../lib/Comments/CommentsPlugin.php',
89
+        'OCA\\DAV\\Comments\\EntityCollection' => __DIR__.'/..'.'/../lib/Comments/EntityCollection.php',
90
+        'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__.'/..'.'/../lib/Comments/EntityTypeCollection.php',
91
+        'OCA\\DAV\\Comments\\RootCollection' => __DIR__.'/..'.'/../lib/Comments/RootCollection.php',
92
+        'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__.'/..'.'/../lib/Connector/LegacyDAVACL.php',
93
+        'OCA\\DAV\\Connector\\PublicAuth' => __DIR__.'/..'.'/../lib/Connector/PublicAuth.php',
94
+        'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
95
+        'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/AppEnabledPlugin.php',
96
+        'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__.'/..'.'/../lib/Connector/Sabre/Auth.php',
97
+        'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__.'/..'.'/../lib/Connector/Sabre/BearerAuth.php',
98
+        'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
99
+        'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__.'/..'.'/../lib/Connector/Sabre/CachingTree.php',
100
+        'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ChecksumList.php',
101
+        'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
102
+        'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
103
+        'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => __DIR__.'/..'.'/../lib/Connector/Sabre/CustomPropertiesBackend.php',
104
+        'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/DavAclPlugin.php',
105
+        'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__.'/..'.'/../lib/Connector/Sabre/Directory.php',
106
+        'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
107
+        'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
108
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
109
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/FileLocked.php',
110
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/Forbidden.php',
111
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/InvalidPath.php',
112
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
113
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
114
+        'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FakeLockerPlugin.php',
115
+        'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__.'/..'.'/../lib/Connector/Sabre/File.php',
116
+        'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FilesPlugin.php',
117
+        'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FilesReportPlugin.php',
118
+        'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/LockPlugin.php',
119
+        'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/MaintenancePlugin.php',
120
+        'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__.'/..'.'/../lib/Connector/Sabre/Node.php',
121
+        'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__.'/..'.'/../lib/Connector/Sabre/ObjectTree.php',
122
+        'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__.'/..'.'/../lib/Connector/Sabre/Principal.php',
123
+        'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/QuotaPlugin.php',
124
+        'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__.'/..'.'/../lib/Connector/Sabre/Server.php',
125
+        'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__.'/..'.'/../lib/Connector/Sabre/ServerFactory.php',
126
+        'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ShareTypeList.php',
127
+        'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/SharesPlugin.php',
128
+        'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__.'/..'.'/../lib/Connector/Sabre/TagList.php',
129
+        'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/TagsPlugin.php',
130
+        'OCA\\DAV\\Controller\\BirthdayCalendarController' => __DIR__.'/..'.'/../lib/Controller/BirthdayCalendarController.php',
131
+        'OCA\\DAV\\Controller\\DirectController' => __DIR__.'/..'.'/../lib/Controller/DirectController.php',
132
+        'OCA\\DAV\\Controller\\InvitationResponseController' => __DIR__.'/..'.'/../lib/Controller/InvitationResponseController.php',
133
+        'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__.'/..'.'/../lib/DAV/CustomPropertiesBackend.php',
134
+        'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/GroupPrincipalBackend.php',
135
+        'OCA\\DAV\\DAV\\PublicAuth' => __DIR__.'/..'.'/../lib/DAV/PublicAuth.php',
136
+        'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__.'/..'.'/../lib/DAV/Sharing/Backend.php',
137
+        'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__.'/..'.'/../lib/DAV/Sharing/IShareable.php',
138
+        'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__.'/..'.'/../lib/DAV/Sharing/Plugin.php',
139
+        'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__.'/..'.'/../lib/DAV/Sharing/Xml/Invite.php',
140
+        'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__.'/..'.'/../lib/DAV/Sharing/Xml/ShareRequest.php',
141
+        'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/SystemPrincipalBackend.php',
142
+        'OCA\\DAV\\Db\\Direct' => __DIR__.'/..'.'/../lib/Db/Direct.php',
143
+        'OCA\\DAV\\Db\\DirectMapper' => __DIR__.'/..'.'/../lib/Db/DirectMapper.php',
144
+        'OCA\\DAV\\Direct\\DirectFile' => __DIR__.'/..'.'/../lib/Direct/DirectFile.php',
145
+        'OCA\\DAV\\Direct\\DirectHome' => __DIR__.'/..'.'/../lib/Direct/DirectHome.php',
146
+        'OCA\\DAV\\Direct\\Server' => __DIR__.'/..'.'/../lib/Direct/Server.php',
147
+        'OCA\\DAV\\Direct\\ServerFactory' => __DIR__.'/..'.'/../lib/Direct/ServerFactory.php',
148
+        'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__.'/..'.'/../lib/Files/BrowserErrorPagePlugin.php',
149
+        'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__.'/..'.'/../lib/Files/FileSearchBackend.php',
150
+        'OCA\\DAV\\Files\\FilesHome' => __DIR__.'/..'.'/../lib/Files/FilesHome.php',
151
+        'OCA\\DAV\\Files\\RootCollection' => __DIR__.'/..'.'/../lib/Files/RootCollection.php',
152
+        'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__.'/..'.'/../lib/Files/Sharing/FilesDropPlugin.php',
153
+        'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__.'/..'.'/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
154
+        'OCA\\DAV\\HookManager' => __DIR__.'/..'.'/../lib/HookManager.php',
155
+        'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__.'/..'.'/../lib/Migration/BuildCalendarSearchIndex.php',
156
+        'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__.'/..'.'/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
157
+        'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__.'/..'.'/../lib/Migration/CalDAVRemoveEmptyValue.php',
158
+        'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__.'/..'.'/../lib/Migration/FixBirthdayCalendarComponent.php',
159
+        'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170825134824.php',
160
+        'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170919104507.php',
161
+        'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170924124212.php',
162
+        'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170926103422.php',
163
+        'OCA\\DAV\\Migration\\Version1005Date20180413093149' => __DIR__.'/..'.'/../lib/Migration/Version1005Date20180413093149.php',
164
+        'OCA\\DAV\\Migration\\Version1006Date20180619154313' => __DIR__.'/..'.'/../lib/Migration/Version1006Date20180619154313.php',
165
+        'OCA\\DAV\\RootCollection' => __DIR__.'/..'.'/../lib/RootCollection.php',
166
+        'OCA\\DAV\\Server' => __DIR__.'/..'.'/../lib/Server.php',
167
+        'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__.'/..'.'/../lib/Settings/CalDAVSettings.php',
168
+        'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagMappingNode.php',
169
+        'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagNode.php',
170
+        'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagPlugin.php',
171
+        'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsByIdCollection.php',
172
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
173
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
174
+        'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsRelationsCollection.php',
175
+        'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__.'/..'.'/../lib/Upload/AssemblyStream.php',
176
+        'OCA\\DAV\\Upload\\ChunkingPlugin' => __DIR__.'/..'.'/../lib/Upload/ChunkingPlugin.php',
177
+        'OCA\\DAV\\Upload\\FutureFile' => __DIR__.'/..'.'/../lib/Upload/FutureFile.php',
178
+        'OCA\\DAV\\Upload\\RootCollection' => __DIR__.'/..'.'/../lib/Upload/RootCollection.php',
179
+        'OCA\\DAV\\Upload\\UploadFolder' => __DIR__.'/..'.'/../lib/Upload/UploadFolder.php',
180
+        'OCA\\DAV\\Upload\\UploadHome' => __DIR__.'/..'.'/../lib/Upload/UploadHome.php',
181 181
     );
182 182
 
183 183
     public static function getInitializer(ClassLoader $loader)
184 184
     {
185
-        return \Closure::bind(function () use ($loader) {
185
+        return \Closure::bind(function() use ($loader) {
186 186
             $loader->prefixLengthsPsr4 = ComposerStaticInitDAV::$prefixLengthsPsr4;
187 187
             $loader->prefixDirsPsr4 = ComposerStaticInitDAV::$prefixDirsPsr4;
188 188
             $loader->classMap = ComposerStaticInitDAV::$classMap;
Please login to merge, or discard this patch.
apps/dav/composer/composer/autoload_classmap.php 1 patch
Spacing   +157 added lines, -157 removed lines patch added patch discarded remove patch
@@ -6,161 +6,161 @@
 block discarded – undo
6 6
 $baseDir = $vendorDir;
7 7
 
8 8
 return array(
9
-    'OCA\\DAV\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
10
-    'OCA\\DAV\\AppInfo\\PluginManager' => $baseDir . '/../lib/AppInfo/PluginManager.php',
11
-    'OCA\\DAV\\Avatars\\AvatarHome' => $baseDir . '/../lib/Avatars/AvatarHome.php',
12
-    'OCA\\DAV\\Avatars\\AvatarNode' => $baseDir . '/../lib/Avatars/AvatarNode.php',
13
-    'OCA\\DAV\\Avatars\\RootCollection' => $baseDir . '/../lib/Avatars/RootCollection.php',
14
-    'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => $baseDir . '/../lib/BackgroundJob/CleanupDirectLinksJob.php',
15
-    'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => $baseDir . '/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
16
-    'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir . '/../lib/CalDAV/Activity/Backend.php',
17
-    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Filter/Calendar.php',
18
-    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Filter/Todo.php',
19
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir . '/../lib/CalDAV/Activity/Provider/Base.php',
20
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Provider/Calendar.php',
21
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir . '/../lib/CalDAV/Activity/Provider/Event.php',
22
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Provider/Todo.php',
23
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Setting/Calendar.php',
24
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir . '/../lib/CalDAV/Activity/Setting/Event.php',
25
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Setting/Todo.php',
26
-    'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => $baseDir . '/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
27
-    'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir . '/../lib/CalDAV/BirthdayService.php',
28
-    'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir . '/../lib/CalDAV/CalDavBackend.php',
29
-    'OCA\\DAV\\CalDAV\\Calendar' => $baseDir . '/../lib/CalDAV/Calendar.php',
30
-    'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir . '/../lib/CalDAV/CalendarHome.php',
31
-    'OCA\\DAV\\CalDAV\\CalendarImpl' => $baseDir . '/../lib/CalDAV/CalendarImpl.php',
32
-    'OCA\\DAV\\CalDAV\\CalendarManager' => $baseDir . '/../lib/CalDAV/CalendarManager.php',
33
-    'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir . '/../lib/CalDAV/CalendarObject.php',
34
-    'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir . '/../lib/CalDAV/CalendarRoot.php',
35
-    'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => $baseDir . '/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
36
-    'OCA\\DAV\\CalDAV\\Plugin' => $baseDir . '/../lib/CalDAV/Plugin.php',
37
-    'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir . '/../lib/CalDAV/Principal/Collection.php',
38
-    'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir . '/../lib/CalDAV/Principal/User.php',
39
-    'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir . '/../lib/CalDAV/PublicCalendar.php',
40
-    'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir . '/../lib/CalDAV/PublicCalendarObject.php',
41
-    'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir . '/../lib/CalDAV/PublicCalendarRoot.php',
42
-    'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir . '/../lib/CalDAV/Publishing/PublishPlugin.php',
43
-    'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir . '/../lib/CalDAV/Publishing/Xml/Publisher.php',
44
-    'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir . '/../lib/CalDAV/Schedule/IMipPlugin.php',
45
-    'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir . '/../lib/CalDAV/Schedule/Plugin.php',
46
-    'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir . '/../lib/CalDAV/Search/SearchPlugin.php',
47
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
48
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
49
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
50
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
51
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
52
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
53
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
54
-    'OCA\\DAV\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
55
-    'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir . '/../lib/CardDAV/AddressBook.php',
56
-    'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir . '/../lib/CardDAV/AddressBookImpl.php',
57
-    'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir . '/../lib/CardDAV/AddressBookRoot.php',
58
-    'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir . '/../lib/CardDAV/CardDavBackend.php',
59
-    'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir . '/../lib/CardDAV/ContactsManager.php',
60
-    'OCA\\DAV\\CardDAV\\Converter' => $baseDir . '/../lib/CardDAV/Converter.php',
61
-    'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir . '/../lib/CardDAV/ImageExportPlugin.php',
62
-    'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir . '/../lib/CardDAV/PhotoCache.php',
63
-    'OCA\\DAV\\CardDAV\\Plugin' => $baseDir . '/../lib/CardDAV/Plugin.php',
64
-    'OCA\\DAV\\CardDAV\\SyncService' => $baseDir . '/../lib/CardDAV/SyncService.php',
65
-    'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir . '/../lib/CardDAV/UserAddressBooks.php',
66
-    'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir . '/../lib/CardDAV/Xml/Groups.php',
67
-    'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir . '/../lib/Command/CreateAddressBook.php',
68
-    'OCA\\DAV\\Command\\CreateCalendar' => $baseDir . '/../lib/Command/CreateCalendar.php',
69
-    'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir . '/../lib/Command/RemoveInvalidShares.php',
70
-    'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir . '/../lib/Command/SyncBirthdayCalendar.php',
71
-    'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir . '/../lib/Command/SyncSystemAddressBook.php',
72
-    'OCA\\DAV\\Comments\\CommentNode' => $baseDir . '/../lib/Comments/CommentNode.php',
73
-    'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir . '/../lib/Comments/CommentsPlugin.php',
74
-    'OCA\\DAV\\Comments\\EntityCollection' => $baseDir . '/../lib/Comments/EntityCollection.php',
75
-    'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir . '/../lib/Comments/EntityTypeCollection.php',
76
-    'OCA\\DAV\\Comments\\RootCollection' => $baseDir . '/../lib/Comments/RootCollection.php',
77
-    'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir . '/../lib/Connector/LegacyDAVACL.php',
78
-    'OCA\\DAV\\Connector\\PublicAuth' => $baseDir . '/../lib/Connector/PublicAuth.php',
79
-    'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
80
-    'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => $baseDir . '/../lib/Connector/Sabre/AppEnabledPlugin.php',
81
-    'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir . '/../lib/Connector/Sabre/Auth.php',
82
-    'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir . '/../lib/Connector/Sabre/BearerAuth.php',
83
-    'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
84
-    'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir . '/../lib/Connector/Sabre/CachingTree.php',
85
-    'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir . '/../lib/Connector/Sabre/ChecksumList.php',
86
-    'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
87
-    'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
88
-    'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => $baseDir . '/../lib/Connector/Sabre/CustomPropertiesBackend.php',
89
-    'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir . '/../lib/Connector/Sabre/DavAclPlugin.php',
90
-    'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir . '/../lib/Connector/Sabre/Directory.php',
91
-    'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
92
-    'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
93
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
94
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir . '/../lib/Connector/Sabre/Exception/FileLocked.php',
95
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/Forbidden.php',
96
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
97
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
98
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
99
-    'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
100
-    'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir . '/../lib/Connector/Sabre/File.php',
101
-    'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesPlugin.php',
102
-    'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesReportPlugin.php',
103
-    'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir . '/../lib/Connector/Sabre/LockPlugin.php',
104
-    'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir . '/../lib/Connector/Sabre/MaintenancePlugin.php',
105
-    'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir . '/../lib/Connector/Sabre/Node.php',
106
-    'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir . '/../lib/Connector/Sabre/ObjectTree.php',
107
-    'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir . '/../lib/Connector/Sabre/Principal.php',
108
-    'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir . '/../lib/Connector/Sabre/QuotaPlugin.php',
109
-    'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir . '/../lib/Connector/Sabre/Server.php',
110
-    'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir . '/../lib/Connector/Sabre/ServerFactory.php',
111
-    'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir . '/../lib/Connector/Sabre/ShareTypeList.php',
112
-    'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir . '/../lib/Connector/Sabre/SharesPlugin.php',
113
-    'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir . '/../lib/Connector/Sabre/TagList.php',
114
-    'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir . '/../lib/Connector/Sabre/TagsPlugin.php',
115
-    'OCA\\DAV\\Controller\\BirthdayCalendarController' => $baseDir . '/../lib/Controller/BirthdayCalendarController.php',
116
-    'OCA\\DAV\\Controller\\DirectController' => $baseDir . '/../lib/Controller/DirectController.php',
117
-    'OCA\\DAV\\Controller\\InvitationResponseController' => $baseDir . '/../lib/Controller/InvitationResponseController.php',
118
-    'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir . '/../lib/DAV/CustomPropertiesBackend.php',
119
-    'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir . '/../lib/DAV/GroupPrincipalBackend.php',
120
-    'OCA\\DAV\\DAV\\PublicAuth' => $baseDir . '/../lib/DAV/PublicAuth.php',
121
-    'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir . '/../lib/DAV/Sharing/Backend.php',
122
-    'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir . '/../lib/DAV/Sharing/IShareable.php',
123
-    'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir . '/../lib/DAV/Sharing/Plugin.php',
124
-    'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir . '/../lib/DAV/Sharing/Xml/Invite.php',
125
-    'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir . '/../lib/DAV/Sharing/Xml/ShareRequest.php',
126
-    'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir . '/../lib/DAV/SystemPrincipalBackend.php',
127
-    'OCA\\DAV\\Db\\Direct' => $baseDir . '/../lib/Db/Direct.php',
128
-    'OCA\\DAV\\Db\\DirectMapper' => $baseDir . '/../lib/Db/DirectMapper.php',
129
-    'OCA\\DAV\\Direct\\DirectFile' => $baseDir . '/../lib/Direct/DirectFile.php',
130
-    'OCA\\DAV\\Direct\\DirectHome' => $baseDir . '/../lib/Direct/DirectHome.php',
131
-    'OCA\\DAV\\Direct\\Server' => $baseDir . '/../lib/Direct/Server.php',
132
-    'OCA\\DAV\\Direct\\ServerFactory' => $baseDir . '/../lib/Direct/ServerFactory.php',
133
-    'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir . '/../lib/Files/BrowserErrorPagePlugin.php',
134
-    'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir . '/../lib/Files/FileSearchBackend.php',
135
-    'OCA\\DAV\\Files\\FilesHome' => $baseDir . '/../lib/Files/FilesHome.php',
136
-    'OCA\\DAV\\Files\\RootCollection' => $baseDir . '/../lib/Files/RootCollection.php',
137
-    'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir . '/../lib/Files/Sharing/FilesDropPlugin.php',
138
-    'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
139
-    'OCA\\DAV\\HookManager' => $baseDir . '/../lib/HookManager.php',
140
-    'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndex.php',
141
-    'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
142
-    'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir . '/../lib/Migration/CalDAVRemoveEmptyValue.php',
143
-    'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir . '/../lib/Migration/FixBirthdayCalendarComponent.php',
144
-    'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir . '/../lib/Migration/Version1004Date20170825134824.php',
145
-    'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir . '/../lib/Migration/Version1004Date20170919104507.php',
146
-    'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir . '/../lib/Migration/Version1004Date20170924124212.php',
147
-    'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir . '/../lib/Migration/Version1004Date20170926103422.php',
148
-    'OCA\\DAV\\Migration\\Version1005Date20180413093149' => $baseDir . '/../lib/Migration/Version1005Date20180413093149.php',
149
-    'OCA\\DAV\\Migration\\Version1006Date20180619154313' => $baseDir . '/../lib/Migration/Version1006Date20180619154313.php',
150
-    'OCA\\DAV\\RootCollection' => $baseDir . '/../lib/RootCollection.php',
151
-    'OCA\\DAV\\Server' => $baseDir . '/../lib/Server.php',
152
-    'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir . '/../lib/Settings/CalDAVSettings.php',
153
-    'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir . '/../lib/SystemTag/SystemTagMappingNode.php',
154
-    'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir . '/../lib/SystemTag/SystemTagNode.php',
155
-    'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir . '/../lib/SystemTag/SystemTagPlugin.php',
156
-    'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir . '/../lib/SystemTag/SystemTagsByIdCollection.php',
157
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
158
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
159
-    'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
160
-    'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir . '/../lib/Upload/AssemblyStream.php',
161
-    'OCA\\DAV\\Upload\\ChunkingPlugin' => $baseDir . '/../lib/Upload/ChunkingPlugin.php',
162
-    'OCA\\DAV\\Upload\\FutureFile' => $baseDir . '/../lib/Upload/FutureFile.php',
163
-    'OCA\\DAV\\Upload\\RootCollection' => $baseDir . '/../lib/Upload/RootCollection.php',
164
-    'OCA\\DAV\\Upload\\UploadFolder' => $baseDir . '/../lib/Upload/UploadFolder.php',
165
-    'OCA\\DAV\\Upload\\UploadHome' => $baseDir . '/../lib/Upload/UploadHome.php',
9
+    'OCA\\DAV\\AppInfo\\Application' => $baseDir.'/../lib/AppInfo/Application.php',
10
+    'OCA\\DAV\\AppInfo\\PluginManager' => $baseDir.'/../lib/AppInfo/PluginManager.php',
11
+    'OCA\\DAV\\Avatars\\AvatarHome' => $baseDir.'/../lib/Avatars/AvatarHome.php',
12
+    'OCA\\DAV\\Avatars\\AvatarNode' => $baseDir.'/../lib/Avatars/AvatarNode.php',
13
+    'OCA\\DAV\\Avatars\\RootCollection' => $baseDir.'/../lib/Avatars/RootCollection.php',
14
+    'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => $baseDir.'/../lib/BackgroundJob/CleanupDirectLinksJob.php',
15
+    'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => $baseDir.'/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
16
+    'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir.'/../lib/CalDAV/Activity/Backend.php',
17
+    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Filter/Calendar.php',
18
+    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Filter/Todo.php',
19
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir.'/../lib/CalDAV/Activity/Provider/Base.php',
20
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Provider/Calendar.php',
21
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir.'/../lib/CalDAV/Activity/Provider/Event.php',
22
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Provider/Todo.php',
23
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Setting/Calendar.php',
24
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir.'/../lib/CalDAV/Activity/Setting/Event.php',
25
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Setting/Todo.php',
26
+    'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => $baseDir.'/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
27
+    'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir.'/../lib/CalDAV/BirthdayService.php',
28
+    'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir.'/../lib/CalDAV/CalDavBackend.php',
29
+    'OCA\\DAV\\CalDAV\\Calendar' => $baseDir.'/../lib/CalDAV/Calendar.php',
30
+    'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir.'/../lib/CalDAV/CalendarHome.php',
31
+    'OCA\\DAV\\CalDAV\\CalendarImpl' => $baseDir.'/../lib/CalDAV/CalendarImpl.php',
32
+    'OCA\\DAV\\CalDAV\\CalendarManager' => $baseDir.'/../lib/CalDAV/CalendarManager.php',
33
+    'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir.'/../lib/CalDAV/CalendarObject.php',
34
+    'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir.'/../lib/CalDAV/CalendarRoot.php',
35
+    'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => $baseDir.'/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
36
+    'OCA\\DAV\\CalDAV\\Plugin' => $baseDir.'/../lib/CalDAV/Plugin.php',
37
+    'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir.'/../lib/CalDAV/Principal/Collection.php',
38
+    'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir.'/../lib/CalDAV/Principal/User.php',
39
+    'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir.'/../lib/CalDAV/PublicCalendar.php',
40
+    'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir.'/../lib/CalDAV/PublicCalendarObject.php',
41
+    'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir.'/../lib/CalDAV/PublicCalendarRoot.php',
42
+    'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir.'/../lib/CalDAV/Publishing/PublishPlugin.php',
43
+    'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir.'/../lib/CalDAV/Publishing/Xml/Publisher.php',
44
+    'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir.'/../lib/CalDAV/Schedule/IMipPlugin.php',
45
+    'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir.'/../lib/CalDAV/Schedule/Plugin.php',
46
+    'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir.'/../lib/CalDAV/Search/SearchPlugin.php',
47
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
48
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
49
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
50
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
51
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
52
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
53
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir.'/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
54
+    'OCA\\DAV\\Capabilities' => $baseDir.'/../lib/Capabilities.php',
55
+    'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir.'/../lib/CardDAV/AddressBook.php',
56
+    'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir.'/../lib/CardDAV/AddressBookImpl.php',
57
+    'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir.'/../lib/CardDAV/AddressBookRoot.php',
58
+    'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir.'/../lib/CardDAV/CardDavBackend.php',
59
+    'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir.'/../lib/CardDAV/ContactsManager.php',
60
+    'OCA\\DAV\\CardDAV\\Converter' => $baseDir.'/../lib/CardDAV/Converter.php',
61
+    'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir.'/../lib/CardDAV/ImageExportPlugin.php',
62
+    'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir.'/../lib/CardDAV/PhotoCache.php',
63
+    'OCA\\DAV\\CardDAV\\Plugin' => $baseDir.'/../lib/CardDAV/Plugin.php',
64
+    'OCA\\DAV\\CardDAV\\SyncService' => $baseDir.'/../lib/CardDAV/SyncService.php',
65
+    'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir.'/../lib/CardDAV/UserAddressBooks.php',
66
+    'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir.'/../lib/CardDAV/Xml/Groups.php',
67
+    'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir.'/../lib/Command/CreateAddressBook.php',
68
+    'OCA\\DAV\\Command\\CreateCalendar' => $baseDir.'/../lib/Command/CreateCalendar.php',
69
+    'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir.'/../lib/Command/RemoveInvalidShares.php',
70
+    'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir.'/../lib/Command/SyncBirthdayCalendar.php',
71
+    'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir.'/../lib/Command/SyncSystemAddressBook.php',
72
+    'OCA\\DAV\\Comments\\CommentNode' => $baseDir.'/../lib/Comments/CommentNode.php',
73
+    'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir.'/../lib/Comments/CommentsPlugin.php',
74
+    'OCA\\DAV\\Comments\\EntityCollection' => $baseDir.'/../lib/Comments/EntityCollection.php',
75
+    'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir.'/../lib/Comments/EntityTypeCollection.php',
76
+    'OCA\\DAV\\Comments\\RootCollection' => $baseDir.'/../lib/Comments/RootCollection.php',
77
+    'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir.'/../lib/Connector/LegacyDAVACL.php',
78
+    'OCA\\DAV\\Connector\\PublicAuth' => $baseDir.'/../lib/Connector/PublicAuth.php',
79
+    'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir.'/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
80
+    'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => $baseDir.'/../lib/Connector/Sabre/AppEnabledPlugin.php',
81
+    'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir.'/../lib/Connector/Sabre/Auth.php',
82
+    'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir.'/../lib/Connector/Sabre/BearerAuth.php',
83
+    'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir.'/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
84
+    'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir.'/../lib/Connector/Sabre/CachingTree.php',
85
+    'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir.'/../lib/Connector/Sabre/ChecksumList.php',
86
+    'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir.'/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
87
+    'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir.'/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
88
+    'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => $baseDir.'/../lib/Connector/Sabre/CustomPropertiesBackend.php',
89
+    'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir.'/../lib/Connector/Sabre/DavAclPlugin.php',
90
+    'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir.'/../lib/Connector/Sabre/Directory.php',
91
+    'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir.'/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
92
+    'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir.'/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
93
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir.'/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
94
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir.'/../lib/Connector/Sabre/Exception/FileLocked.php',
95
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir.'/../lib/Connector/Sabre/Exception/Forbidden.php',
96
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir.'/../lib/Connector/Sabre/Exception/InvalidPath.php',
97
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir.'/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
98
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir.'/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
99
+    'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir.'/../lib/Connector/Sabre/FakeLockerPlugin.php',
100
+    'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir.'/../lib/Connector/Sabre/File.php',
101
+    'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir.'/../lib/Connector/Sabre/FilesPlugin.php',
102
+    'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir.'/../lib/Connector/Sabre/FilesReportPlugin.php',
103
+    'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir.'/../lib/Connector/Sabre/LockPlugin.php',
104
+    'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir.'/../lib/Connector/Sabre/MaintenancePlugin.php',
105
+    'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir.'/../lib/Connector/Sabre/Node.php',
106
+    'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir.'/../lib/Connector/Sabre/ObjectTree.php',
107
+    'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir.'/../lib/Connector/Sabre/Principal.php',
108
+    'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir.'/../lib/Connector/Sabre/QuotaPlugin.php',
109
+    'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir.'/../lib/Connector/Sabre/Server.php',
110
+    'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir.'/../lib/Connector/Sabre/ServerFactory.php',
111
+    'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir.'/../lib/Connector/Sabre/ShareTypeList.php',
112
+    'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir.'/../lib/Connector/Sabre/SharesPlugin.php',
113
+    'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir.'/../lib/Connector/Sabre/TagList.php',
114
+    'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir.'/../lib/Connector/Sabre/TagsPlugin.php',
115
+    'OCA\\DAV\\Controller\\BirthdayCalendarController' => $baseDir.'/../lib/Controller/BirthdayCalendarController.php',
116
+    'OCA\\DAV\\Controller\\DirectController' => $baseDir.'/../lib/Controller/DirectController.php',
117
+    'OCA\\DAV\\Controller\\InvitationResponseController' => $baseDir.'/../lib/Controller/InvitationResponseController.php',
118
+    'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir.'/../lib/DAV/CustomPropertiesBackend.php',
119
+    'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir.'/../lib/DAV/GroupPrincipalBackend.php',
120
+    'OCA\\DAV\\DAV\\PublicAuth' => $baseDir.'/../lib/DAV/PublicAuth.php',
121
+    'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir.'/../lib/DAV/Sharing/Backend.php',
122
+    'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir.'/../lib/DAV/Sharing/IShareable.php',
123
+    'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir.'/../lib/DAV/Sharing/Plugin.php',
124
+    'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir.'/../lib/DAV/Sharing/Xml/Invite.php',
125
+    'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir.'/../lib/DAV/Sharing/Xml/ShareRequest.php',
126
+    'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir.'/../lib/DAV/SystemPrincipalBackend.php',
127
+    'OCA\\DAV\\Db\\Direct' => $baseDir.'/../lib/Db/Direct.php',
128
+    'OCA\\DAV\\Db\\DirectMapper' => $baseDir.'/../lib/Db/DirectMapper.php',
129
+    'OCA\\DAV\\Direct\\DirectFile' => $baseDir.'/../lib/Direct/DirectFile.php',
130
+    'OCA\\DAV\\Direct\\DirectHome' => $baseDir.'/../lib/Direct/DirectHome.php',
131
+    'OCA\\DAV\\Direct\\Server' => $baseDir.'/../lib/Direct/Server.php',
132
+    'OCA\\DAV\\Direct\\ServerFactory' => $baseDir.'/../lib/Direct/ServerFactory.php',
133
+    'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir.'/../lib/Files/BrowserErrorPagePlugin.php',
134
+    'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir.'/../lib/Files/FileSearchBackend.php',
135
+    'OCA\\DAV\\Files\\FilesHome' => $baseDir.'/../lib/Files/FilesHome.php',
136
+    'OCA\\DAV\\Files\\RootCollection' => $baseDir.'/../lib/Files/RootCollection.php',
137
+    'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir.'/../lib/Files/Sharing/FilesDropPlugin.php',
138
+    'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir.'/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
139
+    'OCA\\DAV\\HookManager' => $baseDir.'/../lib/HookManager.php',
140
+    'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir.'/../lib/Migration/BuildCalendarSearchIndex.php',
141
+    'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir.'/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
142
+    'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir.'/../lib/Migration/CalDAVRemoveEmptyValue.php',
143
+    'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir.'/../lib/Migration/FixBirthdayCalendarComponent.php',
144
+    'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir.'/../lib/Migration/Version1004Date20170825134824.php',
145
+    'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir.'/../lib/Migration/Version1004Date20170919104507.php',
146
+    'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir.'/../lib/Migration/Version1004Date20170924124212.php',
147
+    'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir.'/../lib/Migration/Version1004Date20170926103422.php',
148
+    'OCA\\DAV\\Migration\\Version1005Date20180413093149' => $baseDir.'/../lib/Migration/Version1005Date20180413093149.php',
149
+    'OCA\\DAV\\Migration\\Version1006Date20180619154313' => $baseDir.'/../lib/Migration/Version1006Date20180619154313.php',
150
+    'OCA\\DAV\\RootCollection' => $baseDir.'/../lib/RootCollection.php',
151
+    'OCA\\DAV\\Server' => $baseDir.'/../lib/Server.php',
152
+    'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir.'/../lib/Settings/CalDAVSettings.php',
153
+    'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir.'/../lib/SystemTag/SystemTagMappingNode.php',
154
+    'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir.'/../lib/SystemTag/SystemTagNode.php',
155
+    'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir.'/../lib/SystemTag/SystemTagPlugin.php',
156
+    'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir.'/../lib/SystemTag/SystemTagsByIdCollection.php',
157
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir.'/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
158
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir.'/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
159
+    'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir.'/../lib/SystemTag/SystemTagsRelationsCollection.php',
160
+    'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir.'/../lib/Upload/AssemblyStream.php',
161
+    'OCA\\DAV\\Upload\\ChunkingPlugin' => $baseDir.'/../lib/Upload/ChunkingPlugin.php',
162
+    'OCA\\DAV\\Upload\\FutureFile' => $baseDir.'/../lib/Upload/FutureFile.php',
163
+    'OCA\\DAV\\Upload\\RootCollection' => $baseDir.'/../lib/Upload/RootCollection.php',
164
+    'OCA\\DAV\\Upload\\UploadFolder' => $baseDir.'/../lib/Upload/UploadFolder.php',
165
+    'OCA\\DAV\\Upload\\UploadHome' => $baseDir.'/../lib/Upload/UploadHome.php',
166 166
 );
Please login to merge, or discard this patch.
apps/dav/templates/schedule-response-options.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -29,7 +29,7 @@
 block discarded – undo
29 29
 			<input type="text" name="comment" placeholder="Comment" />
30 30
 		</fieldset>
31 31
 		<fieldset>
32
-			<input type="submit" value="<?php p($l->t('Save'));?>">
32
+			<input type="submit" value="<?php p($l->t('Save')); ?>">
33 33
 		</fieldset>
34 34
 	</form>
35 35
 </div>
36 36
\ No newline at end of file
Please login to merge, or discard this patch.
apps/dav/templates/schedule-response-error.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@
 block discarded – undo
1 1
 <div class="update">
2
-	<p class="message"><?php p($l->t('There was an error updating your attendance status.'));?></p>
3
-	<p class="message"><?php p($l->t('Please contact the organizer directly.'));?></p>
4
-	<?php if(isset($_['organizer'])): ?>
2
+	<p class="message"><?php p($l->t('There was an error updating your attendance status.')); ?></p>
3
+	<p class="message"><?php p($l->t('Please contact the organizer directly.')); ?></p>
4
+	<?php if (isset($_['organizer'])): ?>
5 5
 		<p class="message"><a href="<?php p($_['organizer']) ?>"><?php p(substr($_['organizer'], 7)) ?></a></p>
6 6
 	<?php endif; ?>
7 7
 </div>
8 8
\ No newline at end of file
Please login to merge, or discard this patch.
apps/dav/templates/schedule-response-success.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,4 +1,4 @@
 block discarded – undo
1 1
 <div class="update" style="justify-content: space-around; display: flex;">
2 2
 	<span class="icon icon-checkmark-white"></span>
3
-	<p class="message"><?php p($l->t('Your attendance was updated successfully.'));?></p>
3
+	<p class="message"><?php p($l->t('Your attendance was updated successfully.')); ?></p>
4 4
 </div>
5 5
\ No newline at end of file
Please login to merge, or discard this patch.
apps/dav/lib/Controller/InvitationResponseController.php 2 patches
Indentation   +194 added lines, -194 removed lines patch added patch discarded remove patch
@@ -33,160 +33,160 @@  discard block
 block discarded – undo
33 33
 
34 34
 class InvitationResponseController extends Controller {
35 35
 
36
-	/** @var IDBConnection */
37
-	private $db;
38
-
39
-	/** @var TimeFactory */
40
-	private $timeFactory;
41
-
42
-	/**
43
-	 * InvitationResponseController constructor.
44
-	 *
45
-	 * @param string $appName
46
-	 * @param IRequest $request
47
-	 * @param IDBConnection $db
48
-	 * @param TimeFactory $timeFactory
49
-	 */
50
-	public function __construct(string $appName, IRequest $request,
51
-								IDBConnection $db, TimeFactory $timeFactory) {
52
-		parent::__construct($appName, $request);
53
-		$this->db = $db;
54
-		$this->timeFactory = $timeFactory;
55
-	}
56
-
57
-	/**
58
-	 * @PublicPage
59
-	 * @NoCSRFRequired
60
-	 *
61
-	 * @param string $token
62
-	 * @return TemplateResponse
63
-	 */
64
-	public function accept(string $token):TemplateResponse {
65
-		$row = $this->getTokenInformation($token);
66
-		if (!$row) {
67
-			return new TemplateResponse($this->appName, 'schedule-response-error', [], 'guest');
68
-		}
69
-
70
-		$iTipMessage = $this->buildITipResponse($row, 'ACCEPTED');
71
-		$this->handleITipMessage($iTipMessage);
72
-		if ($iTipMessage->getScheduleStatus() === '1.2') {
73
-			return new TemplateResponse($this->appName, 'schedule-response-success', [], 'guest');
74
-		}
75
-
76
-		return new TemplateResponse($this->appName, 'schedule-response-error', [
77
-			'organizer' => $row['organizer'],
78
-		], 'guest');
79
-	}
80
-
81
-	/**
82
-	 * @PublicPage
83
-	 * @NoCSRFRequired
84
-	 *
85
-	 * @param string $token
86
-	 * @return TemplateResponse
87
-	 */
88
-	public function decline(string $token):TemplateResponse {
89
-		$row = $this->getTokenInformation($token);
90
-		if (!$row) {
91
-			return new TemplateResponse($this->appName, 'schedule-response-error', [], 'guest');
92
-		}
93
-
94
-		$iTipMessage = $this->buildITipResponse($row, 'DECLINED');
95
-		$this->handleITipMessage($iTipMessage);
96
-
97
-		if ($iTipMessage->getScheduleStatus() === '1.2') {
98
-			return new TemplateResponse($this->appName, 'schedule-response-success', [], 'guest');
99
-		}
100
-
101
-		return new TemplateResponse($this->appName, 'schedule-response-error', [
102
-			'organizer' => $row['organizer'],
103
-		], 'guest');
104
-	}
105
-
106
-	/**
107
-	 * @PublicPage
108
-	 * @NoCSRFRequired
109
-	 *
110
-	 * @param string $token
111
-	 * @return TemplateResponse
112
-	 */
113
-	public function options(string $token):TemplateResponse {
114
-		return new TemplateResponse($this->appName, 'schedule-response-options', [
115
-			'token' => $token
116
-		], 'guest');
117
-	}
118
-
119
-	/**
120
-	 * @PublicPage
121
-	 * @NoCSRFRequired
122
-	 *
123
-	 * @param string $token
124
-	 *
125
-	 * @return TemplateResponse
126
-	 */
127
-	public function processMoreOptionsResult(string $token):TemplateResponse {
128
-		$partstat = $this->request->getParam('partStat');
129
-		$guests = (int) $this->request->getParam('guests');
130
-		$comment = $this->request->getParam('comment');
131
-
132
-		$row = $this->getTokenInformation($token);
133
-		if (!$row || !\in_array($partstat, ['ACCEPTED', 'DECLINED', 'TENTATIVE'])) {
134
-			return new TemplateResponse($this->appName, 'schedule-response-error', [], 'guest');
135
-		}
136
-
137
-		$iTipMessage = $this->buildITipResponse($row, 'ACCEPTED', $guests, $comment);
138
-		$this->handleITipMessage($iTipMessage);
139
-		if ($iTipMessage->getScheduleStatus() === '1.2') {
140
-			return new TemplateResponse($this->appName, 'schedule-response-success', [], 'guest');
141
-		}
142
-
143
-		return new TemplateResponse($this->appName, 'schedule-response-error', [
144
-			'organizer' => $row['organizer'],
145
-		], 'guest');
146
-	}
147
-
148
-	/**
149
-	 * @param string $token
150
-	 * @return array|null
151
-	 */
152
-	private function getTokenInformation(string $token):array {
153
-		$query = $this->db->getQueryBuilder();
154
-		$query->select('*')
155
-			->from('calendar_invitation_tokens')
156
-			->where($query->expr()->eq('token', $query->createNamedParameter($token)));
157
-		$stmt = $query->execute();
158
-		$row = $stmt->fetch(\PDO::FETCH_ASSOC);
159
-
160
-		if(!$row) {
161
-			return null;
162
-		}
163
-
164
-		$currentTime = $this->timeFactory->getTime();
165
-		if (((int) $row['expiration']) < $currentTime) {
166
-			return null;
167
-		}
168
-
169
-		return $row;
170
-	}
171
-
172
-	/**
173
-	 * @param array $row
174
-	 * @param string $partStat participation status of attendee - SEE RFC 5545
175
-	 * @param int|null $guests
176
-	 * @param string|null $comment
177
-	 * @return Message
178
-	 */
179
-	private function buildITipResponse(array $row, string $partStat, int $guests=null,
180
-									   string $comment=null):Message {
181
-		$iTipMessage = new Message();
182
-		$iTipMessage->uid = $row['uid'];
183
-		$iTipMessage->component = 'VEVENT';
184
-		$iTipMessage->method = 'REPLY';
185
-		$iTipMessage->sequence = $row['sequence'];
186
-		$iTipMessage->sender = $row['attendee'];
187
-		$iTipMessage->recipient = $row['organizer'];
188
-
189
-		$message = <<<EOF
36
+    /** @var IDBConnection */
37
+    private $db;
38
+
39
+    /** @var TimeFactory */
40
+    private $timeFactory;
41
+
42
+    /**
43
+     * InvitationResponseController constructor.
44
+     *
45
+     * @param string $appName
46
+     * @param IRequest $request
47
+     * @param IDBConnection $db
48
+     * @param TimeFactory $timeFactory
49
+     */
50
+    public function __construct(string $appName, IRequest $request,
51
+                                IDBConnection $db, TimeFactory $timeFactory) {
52
+        parent::__construct($appName, $request);
53
+        $this->db = $db;
54
+        $this->timeFactory = $timeFactory;
55
+    }
56
+
57
+    /**
58
+     * @PublicPage
59
+     * @NoCSRFRequired
60
+     *
61
+     * @param string $token
62
+     * @return TemplateResponse
63
+     */
64
+    public function accept(string $token):TemplateResponse {
65
+        $row = $this->getTokenInformation($token);
66
+        if (!$row) {
67
+            return new TemplateResponse($this->appName, 'schedule-response-error', [], 'guest');
68
+        }
69
+
70
+        $iTipMessage = $this->buildITipResponse($row, 'ACCEPTED');
71
+        $this->handleITipMessage($iTipMessage);
72
+        if ($iTipMessage->getScheduleStatus() === '1.2') {
73
+            return new TemplateResponse($this->appName, 'schedule-response-success', [], 'guest');
74
+        }
75
+
76
+        return new TemplateResponse($this->appName, 'schedule-response-error', [
77
+            'organizer' => $row['organizer'],
78
+        ], 'guest');
79
+    }
80
+
81
+    /**
82
+     * @PublicPage
83
+     * @NoCSRFRequired
84
+     *
85
+     * @param string $token
86
+     * @return TemplateResponse
87
+     */
88
+    public function decline(string $token):TemplateResponse {
89
+        $row = $this->getTokenInformation($token);
90
+        if (!$row) {
91
+            return new TemplateResponse($this->appName, 'schedule-response-error', [], 'guest');
92
+        }
93
+
94
+        $iTipMessage = $this->buildITipResponse($row, 'DECLINED');
95
+        $this->handleITipMessage($iTipMessage);
96
+
97
+        if ($iTipMessage->getScheduleStatus() === '1.2') {
98
+            return new TemplateResponse($this->appName, 'schedule-response-success', [], 'guest');
99
+        }
100
+
101
+        return new TemplateResponse($this->appName, 'schedule-response-error', [
102
+            'organizer' => $row['organizer'],
103
+        ], 'guest');
104
+    }
105
+
106
+    /**
107
+     * @PublicPage
108
+     * @NoCSRFRequired
109
+     *
110
+     * @param string $token
111
+     * @return TemplateResponse
112
+     */
113
+    public function options(string $token):TemplateResponse {
114
+        return new TemplateResponse($this->appName, 'schedule-response-options', [
115
+            'token' => $token
116
+        ], 'guest');
117
+    }
118
+
119
+    /**
120
+     * @PublicPage
121
+     * @NoCSRFRequired
122
+     *
123
+     * @param string $token
124
+     *
125
+     * @return TemplateResponse
126
+     */
127
+    public function processMoreOptionsResult(string $token):TemplateResponse {
128
+        $partstat = $this->request->getParam('partStat');
129
+        $guests = (int) $this->request->getParam('guests');
130
+        $comment = $this->request->getParam('comment');
131
+
132
+        $row = $this->getTokenInformation($token);
133
+        if (!$row || !\in_array($partstat, ['ACCEPTED', 'DECLINED', 'TENTATIVE'])) {
134
+            return new TemplateResponse($this->appName, 'schedule-response-error', [], 'guest');
135
+        }
136
+
137
+        $iTipMessage = $this->buildITipResponse($row, 'ACCEPTED', $guests, $comment);
138
+        $this->handleITipMessage($iTipMessage);
139
+        if ($iTipMessage->getScheduleStatus() === '1.2') {
140
+            return new TemplateResponse($this->appName, 'schedule-response-success', [], 'guest');
141
+        }
142
+
143
+        return new TemplateResponse($this->appName, 'schedule-response-error', [
144
+            'organizer' => $row['organizer'],
145
+        ], 'guest');
146
+    }
147
+
148
+    /**
149
+     * @param string $token
150
+     * @return array|null
151
+     */
152
+    private function getTokenInformation(string $token):array {
153
+        $query = $this->db->getQueryBuilder();
154
+        $query->select('*')
155
+            ->from('calendar_invitation_tokens')
156
+            ->where($query->expr()->eq('token', $query->createNamedParameter($token)));
157
+        $stmt = $query->execute();
158
+        $row = $stmt->fetch(\PDO::FETCH_ASSOC);
159
+
160
+        if(!$row) {
161
+            return null;
162
+        }
163
+
164
+        $currentTime = $this->timeFactory->getTime();
165
+        if (((int) $row['expiration']) < $currentTime) {
166
+            return null;
167
+        }
168
+
169
+        return $row;
170
+    }
171
+
172
+    /**
173
+     * @param array $row
174
+     * @param string $partStat participation status of attendee - SEE RFC 5545
175
+     * @param int|null $guests
176
+     * @param string|null $comment
177
+     * @return Message
178
+     */
179
+    private function buildITipResponse(array $row, string $partStat, int $guests=null,
180
+                                        string $comment=null):Message {
181
+        $iTipMessage = new Message();
182
+        $iTipMessage->uid = $row['uid'];
183
+        $iTipMessage->component = 'VEVENT';
184
+        $iTipMessage->method = 'REPLY';
185
+        $iTipMessage->sequence = $row['sequence'];
186
+        $iTipMessage->sender = $row['attendee'];
187
+        $iTipMessage->recipient = $row['organizer'];
188
+
189
+        $message = <<<EOF
190 190
 BEGIN:VCALENDAR
191 191
 PRODID:-//Nextcloud/Nextcloud CalDAV Server//EN
192 192
 METHOD:REPLY
@@ -201,44 +201,44 @@  discard block
 block discarded – undo
201 201
 END:VCALENDAR
202 202
 EOF;
203 203
 
204
-		$vObject = Reader::read(vsprintf($message, [
205
-			$partStat, $row['attendee'], $row['organizer'],
206
-			$row['uid'], $row['sequence'] ?? 0,
207
-		]));
208
-		$vEvent = $vObject->{'VEVENT'};
209
-		/** @var \Sabre\VObject\Property\ICalendar\CalAddress $attendee */
210
-		$attendee = $vEvent->{'ATTENDEE'};
211
-
212
-		$vEvent->DTSTAMP = date('Ymd\\THis\\Z');
213
-
214
-		if ($row['recurrenceid']) {
215
-			$vEvent->add('RECURRENCE-ID', $row['recurrenceid']);
216
-		}
217
-		if ($comment) {
218
-			$attendee->add('X-RESPONSE-COMMENT', $comment);
219
-			$vObject->add('COMMENT', $comment);
220
-		}
221
-		if ($guests) {
222
-			$attendee->add('X-NUM-GUESTS', $guests);
223
-		}
224
-
225
-		$iTipMessage->message = $vObject;
226
-
227
-		return $iTipMessage;
228
-	}
229
-
230
-	/**
231
-	 * @param Message $iTipMessage
232
-	 * @return void
233
-	 */
234
-	private function handleITipMessage(Message $iTipMessage) {
235
-		$server = new InvitationResponseServer(\OC::$WEBROOT . '/remote.php/dav/');
236
-		// Don't run `$server->exec()`, because we just need access to the
237
-		// fully initialized schedule plugin, but we don't want Sabre/DAV
238
-		// to actually handle and reply to the request
239
-
240
-		/** @var \OCA\DAV\CalDAV\Schedule\Plugin $schedulingPlugin */
241
-		$schedulingPlugin = $server->server->getPlugin('caldav-schedule');
242
-		$schedulingPlugin->scheduleLocalDelivery($iTipMessage);
243
-	}
204
+        $vObject = Reader::read(vsprintf($message, [
205
+            $partStat, $row['attendee'], $row['organizer'],
206
+            $row['uid'], $row['sequence'] ?? 0,
207
+        ]));
208
+        $vEvent = $vObject->{'VEVENT'};
209
+        /** @var \Sabre\VObject\Property\ICalendar\CalAddress $attendee */
210
+        $attendee = $vEvent->{'ATTENDEE'};
211
+
212
+        $vEvent->DTSTAMP = date('Ymd\\THis\\Z');
213
+
214
+        if ($row['recurrenceid']) {
215
+            $vEvent->add('RECURRENCE-ID', $row['recurrenceid']);
216
+        }
217
+        if ($comment) {
218
+            $attendee->add('X-RESPONSE-COMMENT', $comment);
219
+            $vObject->add('COMMENT', $comment);
220
+        }
221
+        if ($guests) {
222
+            $attendee->add('X-NUM-GUESTS', $guests);
223
+        }
224
+
225
+        $iTipMessage->message = $vObject;
226
+
227
+        return $iTipMessage;
228
+    }
229
+
230
+    /**
231
+     * @param Message $iTipMessage
232
+     * @return void
233
+     */
234
+    private function handleITipMessage(Message $iTipMessage) {
235
+        $server = new InvitationResponseServer(\OC::$WEBROOT . '/remote.php/dav/');
236
+        // Don't run `$server->exec()`, because we just need access to the
237
+        // fully initialized schedule plugin, but we don't want Sabre/DAV
238
+        // to actually handle and reply to the request
239
+
240
+        /** @var \OCA\DAV\CalDAV\Schedule\Plugin $schedulingPlugin */
241
+        $schedulingPlugin = $server->server->getPlugin('caldav-schedule');
242
+        $schedulingPlugin->scheduleLocalDelivery($iTipMessage);
243
+    }
244 244
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
 		$stmt = $query->execute();
158 158
 		$row = $stmt->fetch(\PDO::FETCH_ASSOC);
159 159
 
160
-		if(!$row) {
160
+		if (!$row) {
161 161
 			return null;
162 162
 		}
163 163
 
@@ -176,8 +176,8 @@  discard block
 block discarded – undo
176 176
 	 * @param string|null $comment
177 177
 	 * @return Message
178 178
 	 */
179
-	private function buildITipResponse(array $row, string $partStat, int $guests=null,
180
-									   string $comment=null):Message {
179
+	private function buildITipResponse(array $row, string $partStat, int $guests = null,
180
+									   string $comment = null):Message {
181 181
 		$iTipMessage = new Message();
182 182
 		$iTipMessage->uid = $row['uid'];
183 183
 		$iTipMessage->component = 'VEVENT';
@@ -232,7 +232,7 @@  discard block
 block discarded – undo
232 232
 	 * @return void
233 233
 	 */
234 234
 	private function handleITipMessage(Message $iTipMessage) {
235
-		$server = new InvitationResponseServer(\OC::$WEBROOT . '/remote.php/dav/');
235
+		$server = new InvitationResponseServer(\OC::$WEBROOT.'/remote.php/dav/');
236 236
 		// Don't run `$server->exec()`, because we just need access to the
237 237
 		// fully initialized schedule plugin, but we don't want Sabre/DAV
238 238
 		// to actually handle and reply to the request
Please login to merge, or discard this patch.