Passed
Push — master ( ce9d3b...d52392 )
by Roeland
12:05 queued 12s
created
apps/dav/lib/AppInfo/Application.php 2 patches
Indentation   +332 added lines, -332 removed lines patch added patch discarded remove patch
@@ -74,338 +74,338 @@
 block discarded – undo
74 74
 use function strpos;
75 75
 
76 76
 class Application extends App implements IBootstrap {
77
-	public const APP_ID = 'dav';
78
-
79
-	/**
80
-	 * Application constructor.
81
-	 */
82
-	public function __construct() {
83
-		parent::__construct(self::APP_ID);
84
-	}
85
-
86
-	public function register(IRegistrationContext $context): void {
87
-		$context->registerServiceAlias('CardDAVSyncService', SyncService::class);
88
-		$context->registerService(PhotoCache::class, function (IContainer $c) {
89
-			/** @var IServerContainer $server */
90
-			$server = $c->query(IServerContainer::class);
91
-
92
-			return new PhotoCache(
93
-				$server->getAppDataDir('dav-photocache'),
94
-				$server->getLogger()
95
-			);
96
-		});
97
-
98
-		/*
77
+    public const APP_ID = 'dav';
78
+
79
+    /**
80
+     * Application constructor.
81
+     */
82
+    public function __construct() {
83
+        parent::__construct(self::APP_ID);
84
+    }
85
+
86
+    public function register(IRegistrationContext $context): void {
87
+        $context->registerServiceAlias('CardDAVSyncService', SyncService::class);
88
+        $context->registerService(PhotoCache::class, function (IContainer $c) {
89
+            /** @var IServerContainer $server */
90
+            $server = $c->query(IServerContainer::class);
91
+
92
+            return new PhotoCache(
93
+                $server->getAppDataDir('dav-photocache'),
94
+                $server->getLogger()
95
+            );
96
+        });
97
+
98
+        /*
99 99
 		 * Register capabilities
100 100
 		 */
101
-		$context->registerCapability(Capabilities::class);
102
-	}
103
-
104
-	public function boot(IBootContext $context): void {
105
-		// Load all dav apps
106
-		\OC_App::loadApps(['dav']);
107
-
108
-		$this->registerHooks(
109
-			$context->getAppContainer()->query(HookManager::class),
110
-			$context->getServerContainer()->getEventDispatcher(),
111
-			$context->getAppContainer(),
112
-			$context->getServerContainer()
113
-		);
114
-		$this->registerContactsManager(
115
-			$context->getAppContainer()->query(IContactsManager::class),
116
-			$context->getAppContainer()
117
-		);
118
-		$this->registerCalendarManager(
119
-			$context->getAppContainer()->query(ICalendarManager::class),
120
-			$context->getAppContainer()
121
-		);
122
-		$this->registerNotifier(
123
-			$context->getServerContainer()->getNotificationManager()
124
-		);
125
-		$this->registerCalendarReminders(
126
-			$context->getAppContainer()->query(NotificationProviderManager::class),
127
-			$context->getAppContainer()->query(ILogger::class)
128
-		);
129
-	}
130
-
131
-	private function registerHooks(HookManager $hm,
132
-								   EventDispatcherInterface $dispatcher,
133
-								   IAppContainer $container,
134
-								   IServerContainer $serverContainer) {
135
-		$hm->setup();
136
-
137
-		// first time login event setup
138
-		$dispatcher->addListener(IUser::class . '::firstLogin', function ($event) use ($hm) {
139
-			if ($event instanceof GenericEvent) {
140
-				$hm->firstLogin($event->getSubject());
141
-			}
142
-		});
143
-
144
-		$birthdayListener = function ($event) use ($container) {
145
-			if ($event instanceof GenericEvent) {
146
-				/** @var BirthdayService $b */
147
-				$b = $container->query(BirthdayService::class);
148
-				$b->onCardChanged(
149
-					(int) $event->getArgument('addressBookId'),
150
-					(string) $event->getArgument('cardUri'),
151
-					(string) $event->getArgument('cardData')
152
-				);
153
-			}
154
-		};
155
-
156
-		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::createCard', $birthdayListener);
157
-		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $birthdayListener);
158
-		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', function ($event) use ($container) {
159
-			if ($event instanceof GenericEvent) {
160
-				/** @var BirthdayService $b */
161
-				$b = $container->query(BirthdayService::class);
162
-				$b->onCardDeleted(
163
-					(int) $event->getArgument('addressBookId'),
164
-					(string) $event->getArgument('cardUri')
165
-				);
166
-			}
167
-		});
168
-
169
-		$clearPhotoCache = function ($event) use ($container) {
170
-			if ($event instanceof GenericEvent) {
171
-				/** @var PhotoCache $p */
172
-				$p = $container->query(PhotoCache::class);
173
-				$p->delete(
174
-					$event->getArgument('addressBookId'),
175
-					$event->getArgument('cardUri')
176
-				);
177
-			}
178
-		};
179
-		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $clearPhotoCache);
180
-		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', $clearPhotoCache);
181
-
182
-		$dispatcher->addListener('OC\AccountManager::userUpdated', function (GenericEvent $event) use ($container) {
183
-			$user = $event->getSubject();
184
-			/** @var SyncService $syncService */
185
-			$syncService = $container->query(SyncService::class);
186
-			$syncService->updateUser($user);
187
-		});
188
-
189
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createCalendar', function (GenericEvent $event) use ($container) {
190
-			/** @var Backend $backend */
191
-			$backend = $container->query(Backend::class);
192
-			$backend->onCalendarAdd(
193
-				$event->getArgument('calendarData')
194
-			);
195
-		});
196
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateCalendar', function (GenericEvent $event) use ($container) {
197
-			/** @var Backend $backend */
198
-			$backend = $container->query(Backend::class);
199
-			$backend->onCalendarUpdate(
200
-				$event->getArgument('calendarData'),
201
-				$event->getArgument('shares'),
202
-				$event->getArgument('propertyMutations')
203
-			);
204
-		});
205
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendar', function (GenericEvent $event) use ($container) {
206
-			/** @var Backend $backend */
207
-			$backend = $container->query(Backend::class);
208
-			$backend->onCalendarDelete(
209
-				$event->getArgument('calendarData'),
210
-				$event->getArgument('shares')
211
-			);
212
-
213
-			/** @var ReminderBackend $reminderBackend */
214
-			$reminderBackend = $container->query(ReminderBackend::class);
215
-			$reminderBackend->cleanRemindersForCalendar(
216
-				(int) $event->getArgument('calendarId')
217
-			);
218
-		});
219
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateShares', function (GenericEvent $event) use ($container) {
220
-			/** @var Backend $backend */
221
-			$backend = $container->query(Backend::class);
222
-			$backend->onCalendarUpdateShares(
223
-				$event->getArgument('calendarData'),
224
-				$event->getArgument('shares'),
225
-				$event->getArgument('add'),
226
-				$event->getArgument('remove')
227
-			);
228
-
229
-			// Here we should recalculate if reminders should be sent to new or old sharees
230
-		});
231
-
232
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::publishCalendar', function (GenericEvent $event) use ($container) {
233
-			/** @var Backend $backend */
234
-			$backend = $container->query(Backend::class);
235
-			$backend->onCalendarPublication(
236
-				$event->getArgument('calendarData'),
237
-				$event->getArgument('public')
238
-			);
239
-		});
240
-
241
-		$listener = function (GenericEvent $event, $eventName) use ($container) {
242
-			/** @var Backend $backend */
243
-			$backend = $container->query(Backend::class);
244
-
245
-			$subject = Event::SUBJECT_OBJECT_ADD;
246
-			if ($eventName === '\OCA\DAV\CalDAV\CalDavBackend::updateCalendarObject') {
247
-				$subject = Event::SUBJECT_OBJECT_UPDATE;
248
-			} elseif ($eventName === '\OCA\DAV\CalDAV\CalDavBackend::deleteCalendarObject') {
249
-				$subject = Event::SUBJECT_OBJECT_DELETE;
250
-			}
251
-			$backend->onTouchCalendarObject(
252
-				$subject,
253
-				$event->getArgument('calendarData'),
254
-				$event->getArgument('shares'),
255
-				$event->getArgument('objectData')
256
-			);
257
-
258
-			/** @var ReminderService $reminderBackend */
259
-			$reminderService = $container->query(ReminderService::class);
260
-
261
-			$reminderService->onTouchCalendarObject(
262
-				$eventName,
263
-				$event->getArgument('objectData')
264
-			);
265
-		};
266
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject', $listener);
267
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateCalendarObject', $listener);
268
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendarObject', $listener);
269
-
270
-		/**
271
-		 * In case the user has set their default calendar to this one
272
-		 */
273
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendar', function (GenericEvent $event) use ($serverContainer) {
274
-			/** @var IConfig $config */
275
-			$config = $serverContainer->getConfig();
276
-			$principalUri = $event->getArgument('calendarData')['principaluri'];
277
-			if (strpos($principalUri, 'principals/users') === 0) {
278
-				list(, $UID) = \Sabre\Uri\split($principalUri);
279
-				$uri = $event->getArgument('calendarData')['uri'];
280
-				if ($config->getUserValue($UID, 'dav', 'defaultCalendar') === $uri) {
281
-					$config->deleteUserValue($UID, 'dav', 'defaultCalendar');
282
-				}
283
-			}
284
-		});
285
-
286
-		$dispatcher->addListener('OCP\Federation\TrustedServerEvent::remove',
287
-			function (GenericEvent $event) {
288
-				/** @var CardDavBackend $cardDavBackend */
289
-				$cardDavBackend = \OC::$server->query(CardDavBackend::class);
290
-				$addressBookUri = $event->getSubject();
291
-				$addressBook = $cardDavBackend->getAddressBooksByUri('principals/system/system', $addressBookUri);
292
-				if (!is_null($addressBook)) {
293
-					$cardDavBackend->deleteAddressBook($addressBook['id']);
294
-				}
295
-			}
296
-		);
297
-
298
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createSubscription',
299
-			function (GenericEvent $event) use ($container, $serverContainer) {
300
-				$jobList = $serverContainer->getJobList();
301
-				$subscriptionData = $event->getArgument('subscriptionData');
302
-
303
-				/**
304
-				 * Initial subscription refetch
305
-				 *
306
-				 * @var RefreshWebcalService $refreshWebcalService
307
-				 */
308
-				$refreshWebcalService = $container->query(RefreshWebcalService::class);
309
-				$refreshWebcalService->refreshSubscription(
310
-					(string) $subscriptionData['principaluri'],
311
-					(string) $subscriptionData['uri']
312
-				);
313
-
314
-				$jobList->add(\OCA\DAV\BackgroundJob\RefreshWebcalJob::class, [
315
-					'principaluri' => $subscriptionData['principaluri'],
316
-					'uri' => $subscriptionData['uri']
317
-				]);
318
-			}
319
-		);
320
-
321
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteSubscription',
322
-			function (GenericEvent $event) use ($container, $serverContainer) {
323
-				$jobList = $serverContainer->getJobList();
324
-				$subscriptionData = $event->getArgument('subscriptionData');
325
-
326
-				$jobList->remove(\OCA\DAV\BackgroundJob\RefreshWebcalJob::class, [
327
-					'principaluri' => $subscriptionData['principaluri'],
328
-					'uri' => $subscriptionData['uri']
329
-				]);
330
-
331
-				/** @var CalDavBackend $calDavBackend */
332
-				$calDavBackend = $container->query(CalDavBackend::class);
333
-				$calDavBackend->purgeAllCachedEventsForSubscription($subscriptionData['id']);
334
-			}
335
-		);
336
-
337
-		$eventHandler = function () use ($container, $serverContainer) {
338
-			try {
339
-				/** @var UpdateCalendarResourcesRoomsBackgroundJob $job */
340
-				$job = $container->query(UpdateCalendarResourcesRoomsBackgroundJob::class);
341
-				$job->run([]);
342
-				$serverContainer->getJobList()->setLastRun($job);
343
-			} catch (Exception $ex) {
344
-				$serverContainer->getLogger()->logException($ex);
345
-			}
346
-		};
347
-
348
-		$dispatcher->addListener('\OCP\Calendar\Resource\ForceRefreshEvent', $eventHandler);
349
-		$dispatcher->addListener('\OCP\Calendar\Room\ForceRefreshEvent', $eventHandler);
350
-	}
351
-
352
-	private function registerContactsManager(IContactsManager $cm, IAppContainer $container): void {
353
-		$cm->register(function () use ($container, $cm): void {
354
-			$user = \OC::$server->getUserSession()->getUser();
355
-			if (!is_null($user)) {
356
-				$this->setupContactsProvider($cm, $container, $user->getUID());
357
-			} else {
358
-				$this->setupSystemContactsProvider($cm, $container);
359
-			}
360
-		});
361
-	}
362
-
363
-	private function setupContactsProvider(IContactsManager $contactsManager,
364
-										   IAppContainer $container,
365
-										   string $userID): void {
366
-		/** @var ContactsManager $cm */
367
-		$cm = $container->query(ContactsManager::class);
368
-		$urlGenerator = $container->getServer()->getURLGenerator();
369
-		$cm->setupContactsProvider($contactsManager, $userID, $urlGenerator);
370
-	}
371
-
372
-	private function setupSystemContactsProvider(IContactsManager $contactsManager,
373
-												 IAppContainer $container): void {
374
-		/** @var ContactsManager $cm */
375
-		$cm = $container->query(ContactsManager::class);
376
-		$urlGenerator = $container->getServer()->getURLGenerator();
377
-		$cm->setupSystemContactsProvider($contactsManager, $urlGenerator);
378
-	}
379
-
380
-	private function registerCalendarManager(ICalendarManager $calendarManager,
381
-											 IAppContainer $container): void {
382
-		$calendarManager->register(function () use ($container, $calendarManager) {
383
-			$user = \OC::$server->getUserSession()->getUser();
384
-			if ($user !== null) {
385
-				$this->setupCalendarProvider($calendarManager, $container, $user->getUID());
386
-			}
387
-		});
388
-	}
389
-
390
-	private function setupCalendarProvider(ICalendarManager $calendarManager,
391
-										   IAppContainer $container,
392
-										   $userId) {
393
-		$cm = $container->query(CalendarManager::class);
394
-		$cm->setupCalendarProvider($calendarManager, $userId);
395
-	}
396
-
397
-	private function registerNotifier(INotificationManager $manager): void {
398
-		$manager->registerNotifierService(Notifier::class);
399
-	}
400
-
401
-	private function registerCalendarReminders(NotificationProviderManager $manager,
402
-											   ILogger $logger): void {
403
-		try {
404
-			$manager->registerProvider(AudioProvider::class);
405
-			$manager->registerProvider(EmailProvider::class);
406
-			$manager->registerProvider(PushProvider::class);
407
-		} catch (Throwable $ex) {
408
-			$logger->logException($ex);
409
-		}
410
-	}
101
+        $context->registerCapability(Capabilities::class);
102
+    }
103
+
104
+    public function boot(IBootContext $context): void {
105
+        // Load all dav apps
106
+        \OC_App::loadApps(['dav']);
107
+
108
+        $this->registerHooks(
109
+            $context->getAppContainer()->query(HookManager::class),
110
+            $context->getServerContainer()->getEventDispatcher(),
111
+            $context->getAppContainer(),
112
+            $context->getServerContainer()
113
+        );
114
+        $this->registerContactsManager(
115
+            $context->getAppContainer()->query(IContactsManager::class),
116
+            $context->getAppContainer()
117
+        );
118
+        $this->registerCalendarManager(
119
+            $context->getAppContainer()->query(ICalendarManager::class),
120
+            $context->getAppContainer()
121
+        );
122
+        $this->registerNotifier(
123
+            $context->getServerContainer()->getNotificationManager()
124
+        );
125
+        $this->registerCalendarReminders(
126
+            $context->getAppContainer()->query(NotificationProviderManager::class),
127
+            $context->getAppContainer()->query(ILogger::class)
128
+        );
129
+    }
130
+
131
+    private function registerHooks(HookManager $hm,
132
+                                    EventDispatcherInterface $dispatcher,
133
+                                    IAppContainer $container,
134
+                                    IServerContainer $serverContainer) {
135
+        $hm->setup();
136
+
137
+        // first time login event setup
138
+        $dispatcher->addListener(IUser::class . '::firstLogin', function ($event) use ($hm) {
139
+            if ($event instanceof GenericEvent) {
140
+                $hm->firstLogin($event->getSubject());
141
+            }
142
+        });
143
+
144
+        $birthdayListener = function ($event) use ($container) {
145
+            if ($event instanceof GenericEvent) {
146
+                /** @var BirthdayService $b */
147
+                $b = $container->query(BirthdayService::class);
148
+                $b->onCardChanged(
149
+                    (int) $event->getArgument('addressBookId'),
150
+                    (string) $event->getArgument('cardUri'),
151
+                    (string) $event->getArgument('cardData')
152
+                );
153
+            }
154
+        };
155
+
156
+        $dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::createCard', $birthdayListener);
157
+        $dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $birthdayListener);
158
+        $dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', function ($event) use ($container) {
159
+            if ($event instanceof GenericEvent) {
160
+                /** @var BirthdayService $b */
161
+                $b = $container->query(BirthdayService::class);
162
+                $b->onCardDeleted(
163
+                    (int) $event->getArgument('addressBookId'),
164
+                    (string) $event->getArgument('cardUri')
165
+                );
166
+            }
167
+        });
168
+
169
+        $clearPhotoCache = function ($event) use ($container) {
170
+            if ($event instanceof GenericEvent) {
171
+                /** @var PhotoCache $p */
172
+                $p = $container->query(PhotoCache::class);
173
+                $p->delete(
174
+                    $event->getArgument('addressBookId'),
175
+                    $event->getArgument('cardUri')
176
+                );
177
+            }
178
+        };
179
+        $dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $clearPhotoCache);
180
+        $dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', $clearPhotoCache);
181
+
182
+        $dispatcher->addListener('OC\AccountManager::userUpdated', function (GenericEvent $event) use ($container) {
183
+            $user = $event->getSubject();
184
+            /** @var SyncService $syncService */
185
+            $syncService = $container->query(SyncService::class);
186
+            $syncService->updateUser($user);
187
+        });
188
+
189
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createCalendar', function (GenericEvent $event) use ($container) {
190
+            /** @var Backend $backend */
191
+            $backend = $container->query(Backend::class);
192
+            $backend->onCalendarAdd(
193
+                $event->getArgument('calendarData')
194
+            );
195
+        });
196
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateCalendar', function (GenericEvent $event) use ($container) {
197
+            /** @var Backend $backend */
198
+            $backend = $container->query(Backend::class);
199
+            $backend->onCalendarUpdate(
200
+                $event->getArgument('calendarData'),
201
+                $event->getArgument('shares'),
202
+                $event->getArgument('propertyMutations')
203
+            );
204
+        });
205
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendar', function (GenericEvent $event) use ($container) {
206
+            /** @var Backend $backend */
207
+            $backend = $container->query(Backend::class);
208
+            $backend->onCalendarDelete(
209
+                $event->getArgument('calendarData'),
210
+                $event->getArgument('shares')
211
+            );
212
+
213
+            /** @var ReminderBackend $reminderBackend */
214
+            $reminderBackend = $container->query(ReminderBackend::class);
215
+            $reminderBackend->cleanRemindersForCalendar(
216
+                (int) $event->getArgument('calendarId')
217
+            );
218
+        });
219
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateShares', function (GenericEvent $event) use ($container) {
220
+            /** @var Backend $backend */
221
+            $backend = $container->query(Backend::class);
222
+            $backend->onCalendarUpdateShares(
223
+                $event->getArgument('calendarData'),
224
+                $event->getArgument('shares'),
225
+                $event->getArgument('add'),
226
+                $event->getArgument('remove')
227
+            );
228
+
229
+            // Here we should recalculate if reminders should be sent to new or old sharees
230
+        });
231
+
232
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::publishCalendar', function (GenericEvent $event) use ($container) {
233
+            /** @var Backend $backend */
234
+            $backend = $container->query(Backend::class);
235
+            $backend->onCalendarPublication(
236
+                $event->getArgument('calendarData'),
237
+                $event->getArgument('public')
238
+            );
239
+        });
240
+
241
+        $listener = function (GenericEvent $event, $eventName) use ($container) {
242
+            /** @var Backend $backend */
243
+            $backend = $container->query(Backend::class);
244
+
245
+            $subject = Event::SUBJECT_OBJECT_ADD;
246
+            if ($eventName === '\OCA\DAV\CalDAV\CalDavBackend::updateCalendarObject') {
247
+                $subject = Event::SUBJECT_OBJECT_UPDATE;
248
+            } elseif ($eventName === '\OCA\DAV\CalDAV\CalDavBackend::deleteCalendarObject') {
249
+                $subject = Event::SUBJECT_OBJECT_DELETE;
250
+            }
251
+            $backend->onTouchCalendarObject(
252
+                $subject,
253
+                $event->getArgument('calendarData'),
254
+                $event->getArgument('shares'),
255
+                $event->getArgument('objectData')
256
+            );
257
+
258
+            /** @var ReminderService $reminderBackend */
259
+            $reminderService = $container->query(ReminderService::class);
260
+
261
+            $reminderService->onTouchCalendarObject(
262
+                $eventName,
263
+                $event->getArgument('objectData')
264
+            );
265
+        };
266
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject', $listener);
267
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateCalendarObject', $listener);
268
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendarObject', $listener);
269
+
270
+        /**
271
+         * In case the user has set their default calendar to this one
272
+         */
273
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendar', function (GenericEvent $event) use ($serverContainer) {
274
+            /** @var IConfig $config */
275
+            $config = $serverContainer->getConfig();
276
+            $principalUri = $event->getArgument('calendarData')['principaluri'];
277
+            if (strpos($principalUri, 'principals/users') === 0) {
278
+                list(, $UID) = \Sabre\Uri\split($principalUri);
279
+                $uri = $event->getArgument('calendarData')['uri'];
280
+                if ($config->getUserValue($UID, 'dav', 'defaultCalendar') === $uri) {
281
+                    $config->deleteUserValue($UID, 'dav', 'defaultCalendar');
282
+                }
283
+            }
284
+        });
285
+
286
+        $dispatcher->addListener('OCP\Federation\TrustedServerEvent::remove',
287
+            function (GenericEvent $event) {
288
+                /** @var CardDavBackend $cardDavBackend */
289
+                $cardDavBackend = \OC::$server->query(CardDavBackend::class);
290
+                $addressBookUri = $event->getSubject();
291
+                $addressBook = $cardDavBackend->getAddressBooksByUri('principals/system/system', $addressBookUri);
292
+                if (!is_null($addressBook)) {
293
+                    $cardDavBackend->deleteAddressBook($addressBook['id']);
294
+                }
295
+            }
296
+        );
297
+
298
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createSubscription',
299
+            function (GenericEvent $event) use ($container, $serverContainer) {
300
+                $jobList = $serverContainer->getJobList();
301
+                $subscriptionData = $event->getArgument('subscriptionData');
302
+
303
+                /**
304
+                 * Initial subscription refetch
305
+                 *
306
+                 * @var RefreshWebcalService $refreshWebcalService
307
+                 */
308
+                $refreshWebcalService = $container->query(RefreshWebcalService::class);
309
+                $refreshWebcalService->refreshSubscription(
310
+                    (string) $subscriptionData['principaluri'],
311
+                    (string) $subscriptionData['uri']
312
+                );
313
+
314
+                $jobList->add(\OCA\DAV\BackgroundJob\RefreshWebcalJob::class, [
315
+                    'principaluri' => $subscriptionData['principaluri'],
316
+                    'uri' => $subscriptionData['uri']
317
+                ]);
318
+            }
319
+        );
320
+
321
+        $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteSubscription',
322
+            function (GenericEvent $event) use ($container, $serverContainer) {
323
+                $jobList = $serverContainer->getJobList();
324
+                $subscriptionData = $event->getArgument('subscriptionData');
325
+
326
+                $jobList->remove(\OCA\DAV\BackgroundJob\RefreshWebcalJob::class, [
327
+                    'principaluri' => $subscriptionData['principaluri'],
328
+                    'uri' => $subscriptionData['uri']
329
+                ]);
330
+
331
+                /** @var CalDavBackend $calDavBackend */
332
+                $calDavBackend = $container->query(CalDavBackend::class);
333
+                $calDavBackend->purgeAllCachedEventsForSubscription($subscriptionData['id']);
334
+            }
335
+        );
336
+
337
+        $eventHandler = function () use ($container, $serverContainer) {
338
+            try {
339
+                /** @var UpdateCalendarResourcesRoomsBackgroundJob $job */
340
+                $job = $container->query(UpdateCalendarResourcesRoomsBackgroundJob::class);
341
+                $job->run([]);
342
+                $serverContainer->getJobList()->setLastRun($job);
343
+            } catch (Exception $ex) {
344
+                $serverContainer->getLogger()->logException($ex);
345
+            }
346
+        };
347
+
348
+        $dispatcher->addListener('\OCP\Calendar\Resource\ForceRefreshEvent', $eventHandler);
349
+        $dispatcher->addListener('\OCP\Calendar\Room\ForceRefreshEvent', $eventHandler);
350
+    }
351
+
352
+    private function registerContactsManager(IContactsManager $cm, IAppContainer $container): void {
353
+        $cm->register(function () use ($container, $cm): void {
354
+            $user = \OC::$server->getUserSession()->getUser();
355
+            if (!is_null($user)) {
356
+                $this->setupContactsProvider($cm, $container, $user->getUID());
357
+            } else {
358
+                $this->setupSystemContactsProvider($cm, $container);
359
+            }
360
+        });
361
+    }
362
+
363
+    private function setupContactsProvider(IContactsManager $contactsManager,
364
+                                            IAppContainer $container,
365
+                                            string $userID): void {
366
+        /** @var ContactsManager $cm */
367
+        $cm = $container->query(ContactsManager::class);
368
+        $urlGenerator = $container->getServer()->getURLGenerator();
369
+        $cm->setupContactsProvider($contactsManager, $userID, $urlGenerator);
370
+    }
371
+
372
+    private function setupSystemContactsProvider(IContactsManager $contactsManager,
373
+                                                    IAppContainer $container): void {
374
+        /** @var ContactsManager $cm */
375
+        $cm = $container->query(ContactsManager::class);
376
+        $urlGenerator = $container->getServer()->getURLGenerator();
377
+        $cm->setupSystemContactsProvider($contactsManager, $urlGenerator);
378
+    }
379
+
380
+    private function registerCalendarManager(ICalendarManager $calendarManager,
381
+                                                IAppContainer $container): void {
382
+        $calendarManager->register(function () use ($container, $calendarManager) {
383
+            $user = \OC::$server->getUserSession()->getUser();
384
+            if ($user !== null) {
385
+                $this->setupCalendarProvider($calendarManager, $container, $user->getUID());
386
+            }
387
+        });
388
+    }
389
+
390
+    private function setupCalendarProvider(ICalendarManager $calendarManager,
391
+                                            IAppContainer $container,
392
+                                            $userId) {
393
+        $cm = $container->query(CalendarManager::class);
394
+        $cm->setupCalendarProvider($calendarManager, $userId);
395
+    }
396
+
397
+    private function registerNotifier(INotificationManager $manager): void {
398
+        $manager->registerNotifierService(Notifier::class);
399
+    }
400
+
401
+    private function registerCalendarReminders(NotificationProviderManager $manager,
402
+                                                ILogger $logger): void {
403
+        try {
404
+            $manager->registerProvider(AudioProvider::class);
405
+            $manager->registerProvider(EmailProvider::class);
406
+            $manager->registerProvider(PushProvider::class);
407
+        } catch (Throwable $ex) {
408
+            $logger->logException($ex);
409
+        }
410
+    }
411 411
 }
Please login to merge, or discard this patch.
Spacing   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -85,7 +85,7 @@  discard block
 block discarded – undo
85 85
 
86 86
 	public function register(IRegistrationContext $context): void {
87 87
 		$context->registerServiceAlias('CardDAVSyncService', SyncService::class);
88
-		$context->registerService(PhotoCache::class, function (IContainer $c) {
88
+		$context->registerService(PhotoCache::class, function(IContainer $c) {
89 89
 			/** @var IServerContainer $server */
90 90
 			$server = $c->query(IServerContainer::class);
91 91
 
@@ -135,13 +135,13 @@  discard block
 block discarded – undo
135 135
 		$hm->setup();
136 136
 
137 137
 		// first time login event setup
138
-		$dispatcher->addListener(IUser::class . '::firstLogin', function ($event) use ($hm) {
138
+		$dispatcher->addListener(IUser::class.'::firstLogin', function($event) use ($hm) {
139 139
 			if ($event instanceof GenericEvent) {
140 140
 				$hm->firstLogin($event->getSubject());
141 141
 			}
142 142
 		});
143 143
 
144
-		$birthdayListener = function ($event) use ($container) {
144
+		$birthdayListener = function($event) use ($container) {
145 145
 			if ($event instanceof GenericEvent) {
146 146
 				/** @var BirthdayService $b */
147 147
 				$b = $container->query(BirthdayService::class);
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
 
156 156
 		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::createCard', $birthdayListener);
157 157
 		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $birthdayListener);
158
-		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', function ($event) use ($container) {
158
+		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', function($event) use ($container) {
159 159
 			if ($event instanceof GenericEvent) {
160 160
 				/** @var BirthdayService $b */
161 161
 				$b = $container->query(BirthdayService::class);
@@ -166,7 +166,7 @@  discard block
 block discarded – undo
166 166
 			}
167 167
 		});
168 168
 
169
-		$clearPhotoCache = function ($event) use ($container) {
169
+		$clearPhotoCache = function($event) use ($container) {
170 170
 			if ($event instanceof GenericEvent) {
171 171
 				/** @var PhotoCache $p */
172 172
 				$p = $container->query(PhotoCache::class);
@@ -179,21 +179,21 @@  discard block
 block discarded – undo
179 179
 		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $clearPhotoCache);
180 180
 		$dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', $clearPhotoCache);
181 181
 
182
-		$dispatcher->addListener('OC\AccountManager::userUpdated', function (GenericEvent $event) use ($container) {
182
+		$dispatcher->addListener('OC\AccountManager::userUpdated', function(GenericEvent $event) use ($container) {
183 183
 			$user = $event->getSubject();
184 184
 			/** @var SyncService $syncService */
185 185
 			$syncService = $container->query(SyncService::class);
186 186
 			$syncService->updateUser($user);
187 187
 		});
188 188
 
189
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createCalendar', function (GenericEvent $event) use ($container) {
189
+		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createCalendar', function(GenericEvent $event) use ($container) {
190 190
 			/** @var Backend $backend */
191 191
 			$backend = $container->query(Backend::class);
192 192
 			$backend->onCalendarAdd(
193 193
 				$event->getArgument('calendarData')
194 194
 			);
195 195
 		});
196
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateCalendar', function (GenericEvent $event) use ($container) {
196
+		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateCalendar', function(GenericEvent $event) use ($container) {
197 197
 			/** @var Backend $backend */
198 198
 			$backend = $container->query(Backend::class);
199 199
 			$backend->onCalendarUpdate(
@@ -202,7 +202,7 @@  discard block
 block discarded – undo
202 202
 				$event->getArgument('propertyMutations')
203 203
 			);
204 204
 		});
205
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendar', function (GenericEvent $event) use ($container) {
205
+		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendar', function(GenericEvent $event) use ($container) {
206 206
 			/** @var Backend $backend */
207 207
 			$backend = $container->query(Backend::class);
208 208
 			$backend->onCalendarDelete(
@@ -216,7 +216,7 @@  discard block
 block discarded – undo
216 216
 				(int) $event->getArgument('calendarId')
217 217
 			);
218 218
 		});
219
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateShares', function (GenericEvent $event) use ($container) {
219
+		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateShares', function(GenericEvent $event) use ($container) {
220 220
 			/** @var Backend $backend */
221 221
 			$backend = $container->query(Backend::class);
222 222
 			$backend->onCalendarUpdateShares(
@@ -229,7 +229,7 @@  discard block
 block discarded – undo
229 229
 			// Here we should recalculate if reminders should be sent to new or old sharees
230 230
 		});
231 231
 
232
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::publishCalendar', function (GenericEvent $event) use ($container) {
232
+		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::publishCalendar', function(GenericEvent $event) use ($container) {
233 233
 			/** @var Backend $backend */
234 234
 			$backend = $container->query(Backend::class);
235 235
 			$backend->onCalendarPublication(
@@ -238,7 +238,7 @@  discard block
 block discarded – undo
238 238
 			);
239 239
 		});
240 240
 
241
-		$listener = function (GenericEvent $event, $eventName) use ($container) {
241
+		$listener = function(GenericEvent $event, $eventName) use ($container) {
242 242
 			/** @var Backend $backend */
243 243
 			$backend = $container->query(Backend::class);
244 244
 
@@ -270,7 +270,7 @@  discard block
 block discarded – undo
270 270
 		/**
271 271
 		 * In case the user has set their default calendar to this one
272 272
 		 */
273
-		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendar', function (GenericEvent $event) use ($serverContainer) {
273
+		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteCalendar', function(GenericEvent $event) use ($serverContainer) {
274 274
 			/** @var IConfig $config */
275 275
 			$config = $serverContainer->getConfig();
276 276
 			$principalUri = $event->getArgument('calendarData')['principaluri'];
@@ -284,7 +284,7 @@  discard block
 block discarded – undo
284 284
 		});
285 285
 
286 286
 		$dispatcher->addListener('OCP\Federation\TrustedServerEvent::remove',
287
-			function (GenericEvent $event) {
287
+			function(GenericEvent $event) {
288 288
 				/** @var CardDavBackend $cardDavBackend */
289 289
 				$cardDavBackend = \OC::$server->query(CardDavBackend::class);
290 290
 				$addressBookUri = $event->getSubject();
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
 		);
297 297
 
298 298
 		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::createSubscription',
299
-			function (GenericEvent $event) use ($container, $serverContainer) {
299
+			function(GenericEvent $event) use ($container, $serverContainer) {
300 300
 				$jobList = $serverContainer->getJobList();
301 301
 				$subscriptionData = $event->getArgument('subscriptionData');
302 302
 
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
 		);
320 320
 
321 321
 		$dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::deleteSubscription',
322
-			function (GenericEvent $event) use ($container, $serverContainer) {
322
+			function(GenericEvent $event) use ($container, $serverContainer) {
323 323
 				$jobList = $serverContainer->getJobList();
324 324
 				$subscriptionData = $event->getArgument('subscriptionData');
325 325
 
@@ -334,7 +334,7 @@  discard block
 block discarded – undo
334 334
 			}
335 335
 		);
336 336
 
337
-		$eventHandler = function () use ($container, $serverContainer) {
337
+		$eventHandler = function() use ($container, $serverContainer) {
338 338
 			try {
339 339
 				/** @var UpdateCalendarResourcesRoomsBackgroundJob $job */
340 340
 				$job = $container->query(UpdateCalendarResourcesRoomsBackgroundJob::class);
@@ -350,7 +350,7 @@  discard block
 block discarded – undo
350 350
 	}
351 351
 
352 352
 	private function registerContactsManager(IContactsManager $cm, IAppContainer $container): void {
353
-		$cm->register(function () use ($container, $cm): void {
353
+		$cm->register(function() use ($container, $cm): void {
354 354
 			$user = \OC::$server->getUserSession()->getUser();
355 355
 			if (!is_null($user)) {
356 356
 				$this->setupContactsProvider($cm, $container, $user->getUID());
@@ -379,7 +379,7 @@  discard block
 block discarded – undo
379 379
 
380 380
 	private function registerCalendarManager(ICalendarManager $calendarManager,
381 381
 											 IAppContainer $container): void {
382
-		$calendarManager->register(function () use ($container, $calendarManager) {
382
+		$calendarManager->register(function() use ($container, $calendarManager) {
383 383
 			$user = \OC::$server->getUserSession()->getUser();
384 384
 			if ($user !== null) {
385 385
 				$this->setupCalendarProvider($calendarManager, $container, $user->getUID());
Please login to merge, or discard this patch.