Passed
Push — master ( a169bd...ce314d )
by Morris
25:36 queued 14:17
created
lib/private/Share20/ProviderFactory.php 1 patch
Indentation   +261 added lines, -261 removed lines patch added patch discarded remove patch
@@ -51,274 +51,274 @@
 block discarded – undo
51 51
  */
52 52
 class ProviderFactory implements IProviderFactory {
53 53
 
54
-	/** @var IServerContainer */
55
-	private $serverContainer;
56
-	/** @var DefaultShareProvider */
57
-	private $defaultProvider = null;
58
-	/** @var FederatedShareProvider */
59
-	private $federatedProvider = null;
60
-	/** @var  ShareByMailProvider */
61
-	private $shareByMailProvider;
62
-	/** @var  \OCA\Circles\ShareByCircleProvider */
63
-	private $shareByCircleProvider = null;
64
-	/** @var bool */
65
-	private $circlesAreNotAvailable = false;
66
-	/** @var \OCA\Talk\Share\RoomShareProvider */
67
-	private $roomShareProvider = null;
68
-
69
-	/**
70
-	 * IProviderFactory constructor.
71
-	 *
72
-	 * @param IServerContainer $serverContainer
73
-	 */
74
-	public function __construct(IServerContainer $serverContainer) {
75
-		$this->serverContainer = $serverContainer;
76
-	}
77
-
78
-	/**
79
-	 * Create the default share provider.
80
-	 *
81
-	 * @return DefaultShareProvider
82
-	 */
83
-	protected function defaultShareProvider() {
84
-		if ($this->defaultProvider === null) {
85
-			$this->defaultProvider = new DefaultShareProvider(
86
-				$this->serverContainer->getDatabaseConnection(),
87
-				$this->serverContainer->getUserManager(),
88
-				$this->serverContainer->getGroupManager(),
89
-				$this->serverContainer->getLazyRootFolder(),
90
-				$this->serverContainer->getMailer(),
91
-				$this->serverContainer->query(Defaults::class),
92
-				$this->serverContainer->getL10NFactory(),
93
-				$this->serverContainer->getURLGenerator(),
94
-				$this->serverContainer->getConfig()
95
-			);
96
-		}
97
-
98
-		return $this->defaultProvider;
99
-	}
100
-
101
-	/**
102
-	 * Create the federated share provider
103
-	 *
104
-	 * @return FederatedShareProvider
105
-	 */
106
-	protected function federatedShareProvider() {
107
-		if ($this->federatedProvider === null) {
108
-			/*
54
+    /** @var IServerContainer */
55
+    private $serverContainer;
56
+    /** @var DefaultShareProvider */
57
+    private $defaultProvider = null;
58
+    /** @var FederatedShareProvider */
59
+    private $federatedProvider = null;
60
+    /** @var  ShareByMailProvider */
61
+    private $shareByMailProvider;
62
+    /** @var  \OCA\Circles\ShareByCircleProvider */
63
+    private $shareByCircleProvider = null;
64
+    /** @var bool */
65
+    private $circlesAreNotAvailable = false;
66
+    /** @var \OCA\Talk\Share\RoomShareProvider */
67
+    private $roomShareProvider = null;
68
+
69
+    /**
70
+     * IProviderFactory constructor.
71
+     *
72
+     * @param IServerContainer $serverContainer
73
+     */
74
+    public function __construct(IServerContainer $serverContainer) {
75
+        $this->serverContainer = $serverContainer;
76
+    }
77
+
78
+    /**
79
+     * Create the default share provider.
80
+     *
81
+     * @return DefaultShareProvider
82
+     */
83
+    protected function defaultShareProvider() {
84
+        if ($this->defaultProvider === null) {
85
+            $this->defaultProvider = new DefaultShareProvider(
86
+                $this->serverContainer->getDatabaseConnection(),
87
+                $this->serverContainer->getUserManager(),
88
+                $this->serverContainer->getGroupManager(),
89
+                $this->serverContainer->getLazyRootFolder(),
90
+                $this->serverContainer->getMailer(),
91
+                $this->serverContainer->query(Defaults::class),
92
+                $this->serverContainer->getL10NFactory(),
93
+                $this->serverContainer->getURLGenerator(),
94
+                $this->serverContainer->getConfig()
95
+            );
96
+        }
97
+
98
+        return $this->defaultProvider;
99
+    }
100
+
101
+    /**
102
+     * Create the federated share provider
103
+     *
104
+     * @return FederatedShareProvider
105
+     */
106
+    protected function federatedShareProvider() {
107
+        if ($this->federatedProvider === null) {
108
+            /*
109 109
 			 * Check if the app is enabled
110 110
 			 */
111
-			$appManager = $this->serverContainer->getAppManager();
112
-			if (!$appManager->isEnabledForUser('federatedfilesharing')) {
113
-				return null;
114
-			}
111
+            $appManager = $this->serverContainer->getAppManager();
112
+            if (!$appManager->isEnabledForUser('federatedfilesharing')) {
113
+                return null;
114
+            }
115 115
 
116
-			/*
116
+            /*
117 117
 			 * TODO: add factory to federated sharing app
118 118
 			 */
119
-			$l = $this->serverContainer->getL10N('federatedfilesharing');
120
-			$addressHandler = new AddressHandler(
121
-				$this->serverContainer->getURLGenerator(),
122
-				$l,
123
-				$this->serverContainer->getCloudIdManager()
124
-			);
125
-			$notifications = new Notifications(
126
-				$addressHandler,
127
-				$this->serverContainer->getHTTPClientService(),
128
-				$this->serverContainer->query(\OCP\OCS\IDiscoveryService::class),
129
-				$this->serverContainer->getJobList(),
130
-				\OC::$server->getCloudFederationProviderManager(),
131
-				\OC::$server->getCloudFederationFactory(),
132
-				$this->serverContainer->query(IEventDispatcher::class)
133
-			);
134
-			$tokenHandler = new TokenHandler(
135
-				$this->serverContainer->getSecureRandom()
136
-			);
137
-
138
-			$this->federatedProvider = new FederatedShareProvider(
139
-				$this->serverContainer->getDatabaseConnection(),
140
-				$addressHandler,
141
-				$notifications,
142
-				$tokenHandler,
143
-				$l,
144
-				$this->serverContainer->getLogger(),
145
-				$this->serverContainer->getLazyRootFolder(),
146
-				$this->serverContainer->getConfig(),
147
-				$this->serverContainer->getUserManager(),
148
-				$this->serverContainer->getCloudIdManager(),
149
-				$this->serverContainer->getGlobalScaleConfig(),
150
-				$this->serverContainer->getCloudFederationProviderManager()
151
-			);
152
-		}
153
-
154
-		return $this->federatedProvider;
155
-	}
156
-
157
-	/**
158
-	 * Create the federated share provider
159
-	 *
160
-	 * @return ShareByMailProvider
161
-	 */
162
-	protected function getShareByMailProvider() {
163
-		if ($this->shareByMailProvider === null) {
164
-			/*
119
+            $l = $this->serverContainer->getL10N('federatedfilesharing');
120
+            $addressHandler = new AddressHandler(
121
+                $this->serverContainer->getURLGenerator(),
122
+                $l,
123
+                $this->serverContainer->getCloudIdManager()
124
+            );
125
+            $notifications = new Notifications(
126
+                $addressHandler,
127
+                $this->serverContainer->getHTTPClientService(),
128
+                $this->serverContainer->query(\OCP\OCS\IDiscoveryService::class),
129
+                $this->serverContainer->getJobList(),
130
+                \OC::$server->getCloudFederationProviderManager(),
131
+                \OC::$server->getCloudFederationFactory(),
132
+                $this->serverContainer->query(IEventDispatcher::class)
133
+            );
134
+            $tokenHandler = new TokenHandler(
135
+                $this->serverContainer->getSecureRandom()
136
+            );
137
+
138
+            $this->federatedProvider = new FederatedShareProvider(
139
+                $this->serverContainer->getDatabaseConnection(),
140
+                $addressHandler,
141
+                $notifications,
142
+                $tokenHandler,
143
+                $l,
144
+                $this->serverContainer->getLogger(),
145
+                $this->serverContainer->getLazyRootFolder(),
146
+                $this->serverContainer->getConfig(),
147
+                $this->serverContainer->getUserManager(),
148
+                $this->serverContainer->getCloudIdManager(),
149
+                $this->serverContainer->getGlobalScaleConfig(),
150
+                $this->serverContainer->getCloudFederationProviderManager()
151
+            );
152
+        }
153
+
154
+        return $this->federatedProvider;
155
+    }
156
+
157
+    /**
158
+     * Create the federated share provider
159
+     *
160
+     * @return ShareByMailProvider
161
+     */
162
+    protected function getShareByMailProvider() {
163
+        if ($this->shareByMailProvider === null) {
164
+            /*
165 165
 			 * Check if the app is enabled
166 166
 			 */
167
-			$appManager = $this->serverContainer->getAppManager();
168
-			if (!$appManager->isEnabledForUser('sharebymail')) {
169
-				return null;
170
-			}
171
-
172
-			$settingsManager = new SettingsManager($this->serverContainer->getConfig());
173
-
174
-			$this->shareByMailProvider = new ShareByMailProvider(
175
-				$this->serverContainer->getDatabaseConnection(),
176
-				$this->serverContainer->getSecureRandom(),
177
-				$this->serverContainer->getUserManager(),
178
-				$this->serverContainer->getLazyRootFolder(),
179
-				$this->serverContainer->getL10N('sharebymail'),
180
-				$this->serverContainer->getLogger(),
181
-				$this->serverContainer->getMailer(),
182
-				$this->serverContainer->getURLGenerator(),
183
-				$this->serverContainer->getActivityManager(),
184
-				$settingsManager,
185
-				$this->serverContainer->query(Defaults::class),
186
-				$this->serverContainer->getHasher(),
187
-				$this->serverContainer->query(CapabilitiesManager::class)
188
-			);
189
-		}
190
-
191
-		return $this->shareByMailProvider;
192
-	}
193
-
194
-
195
-	/**
196
-	 * Create the circle share provider
197
-	 *
198
-	 * @return FederatedShareProvider
199
-	 *
200
-	 * @suppress PhanUndeclaredClassMethod
201
-	 */
202
-	protected function getShareByCircleProvider() {
203
-		if ($this->circlesAreNotAvailable) {
204
-			return null;
205
-		}
206
-
207
-		if (!$this->serverContainer->getAppManager()->isEnabledForUser('circles') ||
208
-			!class_exists('\OCA\Circles\ShareByCircleProvider')
209
-		) {
210
-			$this->circlesAreNotAvailable = true;
211
-			return null;
212
-		}
213
-
214
-		if ($this->shareByCircleProvider === null) {
215
-			$this->shareByCircleProvider = new \OCA\Circles\ShareByCircleProvider(
216
-				$this->serverContainer->getDatabaseConnection(),
217
-				$this->serverContainer->getSecureRandom(),
218
-				$this->serverContainer->getUserManager(),
219
-				$this->serverContainer->getLazyRootFolder(),
220
-				$this->serverContainer->getL10N('circles'),
221
-				$this->serverContainer->getLogger(),
222
-				$this->serverContainer->getURLGenerator()
223
-			);
224
-		}
225
-
226
-		return $this->shareByCircleProvider;
227
-	}
228
-
229
-	/**
230
-	 * Create the room share provider
231
-	 *
232
-	 * @return RoomShareProvider
233
-	 */
234
-	protected function getRoomShareProvider() {
235
-		if ($this->roomShareProvider === null) {
236
-			/*
167
+            $appManager = $this->serverContainer->getAppManager();
168
+            if (!$appManager->isEnabledForUser('sharebymail')) {
169
+                return null;
170
+            }
171
+
172
+            $settingsManager = new SettingsManager($this->serverContainer->getConfig());
173
+
174
+            $this->shareByMailProvider = new ShareByMailProvider(
175
+                $this->serverContainer->getDatabaseConnection(),
176
+                $this->serverContainer->getSecureRandom(),
177
+                $this->serverContainer->getUserManager(),
178
+                $this->serverContainer->getLazyRootFolder(),
179
+                $this->serverContainer->getL10N('sharebymail'),
180
+                $this->serverContainer->getLogger(),
181
+                $this->serverContainer->getMailer(),
182
+                $this->serverContainer->getURLGenerator(),
183
+                $this->serverContainer->getActivityManager(),
184
+                $settingsManager,
185
+                $this->serverContainer->query(Defaults::class),
186
+                $this->serverContainer->getHasher(),
187
+                $this->serverContainer->query(CapabilitiesManager::class)
188
+            );
189
+        }
190
+
191
+        return $this->shareByMailProvider;
192
+    }
193
+
194
+
195
+    /**
196
+     * Create the circle share provider
197
+     *
198
+     * @return FederatedShareProvider
199
+     *
200
+     * @suppress PhanUndeclaredClassMethod
201
+     */
202
+    protected function getShareByCircleProvider() {
203
+        if ($this->circlesAreNotAvailable) {
204
+            return null;
205
+        }
206
+
207
+        if (!$this->serverContainer->getAppManager()->isEnabledForUser('circles') ||
208
+            !class_exists('\OCA\Circles\ShareByCircleProvider')
209
+        ) {
210
+            $this->circlesAreNotAvailable = true;
211
+            return null;
212
+        }
213
+
214
+        if ($this->shareByCircleProvider === null) {
215
+            $this->shareByCircleProvider = new \OCA\Circles\ShareByCircleProvider(
216
+                $this->serverContainer->getDatabaseConnection(),
217
+                $this->serverContainer->getSecureRandom(),
218
+                $this->serverContainer->getUserManager(),
219
+                $this->serverContainer->getLazyRootFolder(),
220
+                $this->serverContainer->getL10N('circles'),
221
+                $this->serverContainer->getLogger(),
222
+                $this->serverContainer->getURLGenerator()
223
+            );
224
+        }
225
+
226
+        return $this->shareByCircleProvider;
227
+    }
228
+
229
+    /**
230
+     * Create the room share provider
231
+     *
232
+     * @return RoomShareProvider
233
+     */
234
+    protected function getRoomShareProvider() {
235
+        if ($this->roomShareProvider === null) {
236
+            /*
237 237
 			 * Check if the app is enabled
238 238
 			 */
239
-			$appManager = $this->serverContainer->getAppManager();
240
-			if (!$appManager->isEnabledForUser('spreed')) {
241
-				return null;
242
-			}
243
-
244
-			try {
245
-				$this->roomShareProvider = $this->serverContainer->query('\OCA\Talk\Share\RoomShareProvider');
246
-			} catch (\OCP\AppFramework\QueryException $e) {
247
-				return null;
248
-			}
249
-		}
250
-
251
-		return $this->roomShareProvider;
252
-	}
253
-
254
-	/**
255
-	 * @inheritdoc
256
-	 */
257
-	public function getProvider($id) {
258
-		$provider = null;
259
-		if ($id === 'ocinternal') {
260
-			$provider = $this->defaultShareProvider();
261
-		} elseif ($id === 'ocFederatedSharing') {
262
-			$provider = $this->federatedShareProvider();
263
-		} elseif ($id === 'ocMailShare') {
264
-			$provider = $this->getShareByMailProvider();
265
-		} elseif ($id === 'ocCircleShare') {
266
-			$provider = $this->getShareByCircleProvider();
267
-		} elseif ($id === 'ocRoomShare') {
268
-			$provider = $this->getRoomShareProvider();
269
-		}
270
-
271
-		if ($provider === null) {
272
-			throw new ProviderException('No provider with id .' . $id . ' found.');
273
-		}
274
-
275
-		return $provider;
276
-	}
277
-
278
-	/**
279
-	 * @inheritdoc
280
-	 */
281
-	public function getProviderForType($shareType) {
282
-		$provider = null;
283
-
284
-		if ($shareType === IShare::TYPE_USER ||
285
-			$shareType === IShare::TYPE_GROUP ||
286
-			$shareType === IShare::TYPE_LINK
287
-		) {
288
-			$provider = $this->defaultShareProvider();
289
-		} elseif ($shareType === IShare::TYPE_REMOTE || $shareType === IShare::TYPE_REMOTE_GROUP) {
290
-			$provider = $this->federatedShareProvider();
291
-		} elseif ($shareType === IShare::TYPE_EMAIL) {
292
-			$provider = $this->getShareByMailProvider();
293
-		} elseif ($shareType === IShare::TYPE_CIRCLE) {
294
-			$provider = $this->getShareByCircleProvider();
295
-		} elseif ($shareType === IShare::TYPE_ROOM) {
296
-			$provider = $this->getRoomShareProvider();
297
-		}
298
-
299
-
300
-		if ($provider === null) {
301
-			throw new ProviderException('No share provider for share type ' . $shareType);
302
-		}
303
-
304
-		return $provider;
305
-	}
306
-
307
-	public function getAllProviders() {
308
-		$shares = [$this->defaultShareProvider(), $this->federatedShareProvider()];
309
-		$shareByMail = $this->getShareByMailProvider();
310
-		if ($shareByMail !== null) {
311
-			$shares[] = $shareByMail;
312
-		}
313
-		$shareByCircle = $this->getShareByCircleProvider();
314
-		if ($shareByCircle !== null) {
315
-			$shares[] = $shareByCircle;
316
-		}
317
-		$roomShare = $this->getRoomShareProvider();
318
-		if ($roomShare !== null) {
319
-			$shares[] = $roomShare;
320
-		}
321
-
322
-		return $shares;
323
-	}
239
+            $appManager = $this->serverContainer->getAppManager();
240
+            if (!$appManager->isEnabledForUser('spreed')) {
241
+                return null;
242
+            }
243
+
244
+            try {
245
+                $this->roomShareProvider = $this->serverContainer->query('\OCA\Talk\Share\RoomShareProvider');
246
+            } catch (\OCP\AppFramework\QueryException $e) {
247
+                return null;
248
+            }
249
+        }
250
+
251
+        return $this->roomShareProvider;
252
+    }
253
+
254
+    /**
255
+     * @inheritdoc
256
+     */
257
+    public function getProvider($id) {
258
+        $provider = null;
259
+        if ($id === 'ocinternal') {
260
+            $provider = $this->defaultShareProvider();
261
+        } elseif ($id === 'ocFederatedSharing') {
262
+            $provider = $this->federatedShareProvider();
263
+        } elseif ($id === 'ocMailShare') {
264
+            $provider = $this->getShareByMailProvider();
265
+        } elseif ($id === 'ocCircleShare') {
266
+            $provider = $this->getShareByCircleProvider();
267
+        } elseif ($id === 'ocRoomShare') {
268
+            $provider = $this->getRoomShareProvider();
269
+        }
270
+
271
+        if ($provider === null) {
272
+            throw new ProviderException('No provider with id .' . $id . ' found.');
273
+        }
274
+
275
+        return $provider;
276
+    }
277
+
278
+    /**
279
+     * @inheritdoc
280
+     */
281
+    public function getProviderForType($shareType) {
282
+        $provider = null;
283
+
284
+        if ($shareType === IShare::TYPE_USER ||
285
+            $shareType === IShare::TYPE_GROUP ||
286
+            $shareType === IShare::TYPE_LINK
287
+        ) {
288
+            $provider = $this->defaultShareProvider();
289
+        } elseif ($shareType === IShare::TYPE_REMOTE || $shareType === IShare::TYPE_REMOTE_GROUP) {
290
+            $provider = $this->federatedShareProvider();
291
+        } elseif ($shareType === IShare::TYPE_EMAIL) {
292
+            $provider = $this->getShareByMailProvider();
293
+        } elseif ($shareType === IShare::TYPE_CIRCLE) {
294
+            $provider = $this->getShareByCircleProvider();
295
+        } elseif ($shareType === IShare::TYPE_ROOM) {
296
+            $provider = $this->getRoomShareProvider();
297
+        }
298
+
299
+
300
+        if ($provider === null) {
301
+            throw new ProviderException('No share provider for share type ' . $shareType);
302
+        }
303
+
304
+        return $provider;
305
+    }
306
+
307
+    public function getAllProviders() {
308
+        $shares = [$this->defaultShareProvider(), $this->federatedShareProvider()];
309
+        $shareByMail = $this->getShareByMailProvider();
310
+        if ($shareByMail !== null) {
311
+            $shares[] = $shareByMail;
312
+        }
313
+        $shareByCircle = $this->getShareByCircleProvider();
314
+        if ($shareByCircle !== null) {
315
+            $shares[] = $shareByCircle;
316
+        }
317
+        $roomShare = $this->getRoomShareProvider();
318
+        if ($roomShare !== null) {
319
+            $shares[] = $roomShare;
320
+        }
321
+
322
+        return $shares;
323
+    }
324 324
 }
Please login to merge, or discard this patch.
apps/dav/lib/Events/SabrePluginAuthInitEvent.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -37,20 +37,20 @@
 block discarded – undo
37 37
  */
38 38
 class SabrePluginAuthInitEvent extends Event {
39 39
 
40
-	/** @var Server */
41
-	private $server;
42
-
43
-	/**
44
-	 * @since 20.0.0
45
-	 */
46
-	public function __construct(Server $server) {
47
-		$this->server = $server;
48
-	}
49
-
50
-	/**
51
-	 * @since 20.0.0
52
-	 */
53
-	public function getServer(): Server {
54
-		return $this->server;
55
-	}
40
+    /** @var Server */
41
+    private $server;
42
+
43
+    /**
44
+     * @since 20.0.0
45
+     */
46
+    public function __construct(Server $server) {
47
+        $this->server = $server;
48
+    }
49
+
50
+    /**
51
+     * @since 20.0.0
52
+     */
53
+    public function getServer(): Server {
54
+        return $this->server;
55
+    }
56 56
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/InvitationResponse/InvitationResponseServer.php 2 patches
Indentation   +72 added lines, -72 removed lines patch added patch discarded remove patch
@@ -38,87 +38,87 @@
 block discarded – undo
38 38
 
39 39
 class InvitationResponseServer {
40 40
 
41
-	/** @var \OCA\DAV\Connector\Sabre\Server */
42
-	public $server;
41
+    /** @var \OCA\DAV\Connector\Sabre\Server */
42
+    public $server;
43 43
 
44
-	/**
45
-	 * InvitationResponseServer constructor.
46
-	 */
47
-	public function __construct() {
48
-		$baseUri = \OC::$WEBROOT . '/remote.php/dav/';
49
-		$logger = \OC::$server->getLogger();
50
-		/** @var IEventDispatcher $dispatcher */
51
-		$dispatcher = \OC::$server->query(IEventDispatcher::class);
44
+    /**
45
+     * InvitationResponseServer constructor.
46
+     */
47
+    public function __construct() {
48
+        $baseUri = \OC::$WEBROOT . '/remote.php/dav/';
49
+        $logger = \OC::$server->getLogger();
50
+        /** @var IEventDispatcher $dispatcher */
51
+        $dispatcher = \OC::$server->query(IEventDispatcher::class);
52 52
 
53
-		$root = new RootCollection();
54
-		$this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root));
53
+        $root = new RootCollection();
54
+        $this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root));
55 55
 
56
-		// Add maintenance plugin
57
-		$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\MaintenancePlugin(\OC::$server->getConfig(), \OC::$server->getL10N('dav')));
56
+        // Add maintenance plugin
57
+        $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\MaintenancePlugin(\OC::$server->getConfig(), \OC::$server->getL10N('dav')));
58 58
 
59
-		// Set URL explicitly due to reverse-proxy situations
60
-		$this->server->httpRequest->setUrl($baseUri);
61
-		$this->server->setBaseUri($baseUri);
59
+        // Set URL explicitly due to reverse-proxy situations
60
+        $this->server->httpRequest->setUrl($baseUri);
61
+        $this->server->setBaseUri($baseUri);
62 62
 
63
-		$this->server->addPlugin(new BlockLegacyClientPlugin(\OC::$server->getConfig()));
64
-		$this->server->addPlugin(new AnonymousOptionsPlugin());
65
-		$this->server->addPlugin(new class() extends Plugin {
66
-			public function getCurrentPrincipal() {
67
-				return 'principals/system/public';
68
-			}
69
-		});
63
+        $this->server->addPlugin(new BlockLegacyClientPlugin(\OC::$server->getConfig()));
64
+        $this->server->addPlugin(new AnonymousOptionsPlugin());
65
+        $this->server->addPlugin(new class() extends Plugin {
66
+            public function getCurrentPrincipal() {
67
+                return 'principals/system/public';
68
+            }
69
+        });
70 70
 
71
-		// allow setup of additional auth backends
72
-		$event = new SabrePluginAuthInitEvent($this->server);
73
-		$dispatcher->dispatchTyped($event);
71
+        // allow setup of additional auth backends
72
+        $event = new SabrePluginAuthInitEvent($this->server);
73
+        $dispatcher->dispatchTyped($event);
74 74
 
75
-		$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
76
-		$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
77
-		$this->server->addPlugin(new \Sabre\DAV\Sync\Plugin());
75
+        $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
76
+        $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
77
+        $this->server->addPlugin(new \Sabre\DAV\Sync\Plugin());
78 78
 
79
-		// acl
80
-		$acl = new DavAclPlugin();
81
-		$acl->principalCollectionSet = [
82
-			'principals/users', 'principals/groups'
83
-		];
84
-		$acl->defaultUsernamePath = 'principals/users';
85
-		$this->server->addPlugin($acl);
79
+        // acl
80
+        $acl = new DavAclPlugin();
81
+        $acl->principalCollectionSet = [
82
+            'principals/users', 'principals/groups'
83
+        ];
84
+        $acl->defaultUsernamePath = 'principals/users';
85
+        $this->server->addPlugin($acl);
86 86
 
87
-		// calendar plugins
88
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
89
-		$this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
90
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin(\OC::$server->getConfig()));
91
-		$this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
92
-		$this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
93
-		//$this->server->addPlugin(new \OCA\DAV\DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
94
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Publishing\PublishPlugin(
95
-			\OC::$server->getConfig(),
96
-			\OC::$server->getURLGenerator()
97
-		));
87
+        // calendar plugins
88
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
89
+        $this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
90
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin(\OC::$server->getConfig()));
91
+        $this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
92
+        $this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
93
+        //$this->server->addPlugin(new \OCA\DAV\DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
94
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Publishing\PublishPlugin(
95
+            \OC::$server->getConfig(),
96
+            \OC::$server->getURLGenerator()
97
+        ));
98 98
 
99
-		// wait with registering these until auth is handled and the filesystem is setup
100
-		$this->server->on('beforeMethod:*', function () use ($root) {
101
-			// register plugins from apps
102
-			$pluginManager = new PluginManager(
103
-				\OC::$server,
104
-				\OC::$server->getAppManager()
105
-			);
106
-			foreach ($pluginManager->getAppPlugins() as $appPlugin) {
107
-				$this->server->addPlugin($appPlugin);
108
-			}
109
-			foreach ($pluginManager->getAppCollections() as $appCollection) {
110
-				$root->addChild($appCollection);
111
-			}
112
-		});
113
-	}
99
+        // wait with registering these until auth is handled and the filesystem is setup
100
+        $this->server->on('beforeMethod:*', function () use ($root) {
101
+            // register plugins from apps
102
+            $pluginManager = new PluginManager(
103
+                \OC::$server,
104
+                \OC::$server->getAppManager()
105
+            );
106
+            foreach ($pluginManager->getAppPlugins() as $appPlugin) {
107
+                $this->server->addPlugin($appPlugin);
108
+            }
109
+            foreach ($pluginManager->getAppCollections() as $appCollection) {
110
+                $root->addChild($appCollection);
111
+            }
112
+        });
113
+    }
114 114
 
115
-	/**
116
-	 * @param Message $iTipMessage
117
-	 * @return void
118
-	 */
119
-	public function handleITipMessage(Message $iTipMessage) {
120
-		/** @var \OCA\DAV\CalDAV\Schedule\Plugin $schedulingPlugin */
121
-		$schedulingPlugin = $this->server->getPlugin('caldav-schedule');
122
-		$schedulingPlugin->scheduleLocalDelivery($iTipMessage);
123
-	}
115
+    /**
116
+     * @param Message $iTipMessage
117
+     * @return void
118
+     */
119
+    public function handleITipMessage(Message $iTipMessage) {
120
+        /** @var \OCA\DAV\CalDAV\Schedule\Plugin $schedulingPlugin */
121
+        $schedulingPlugin = $this->server->getPlugin('caldav-schedule');
122
+        $schedulingPlugin->scheduleLocalDelivery($iTipMessage);
123
+    }
124 124
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
 	 * InvitationResponseServer constructor.
46 46
 	 */
47 47
 	public function __construct() {
48
-		$baseUri = \OC::$WEBROOT . '/remote.php/dav/';
48
+		$baseUri = \OC::$WEBROOT.'/remote.php/dav/';
49 49
 		$logger = \OC::$server->getLogger();
50 50
 		/** @var IEventDispatcher $dispatcher */
51 51
 		$dispatcher = \OC::$server->query(IEventDispatcher::class);
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
 		));
98 98
 
99 99
 		// wait with registering these until auth is handled and the filesystem is setup
100
-		$this->server->on('beforeMethod:*', function () use ($root) {
100
+		$this->server->on('beforeMethod:*', function() use ($root) {
101 101
 			// register plugins from apps
102 102
 			$pluginManager = new PluginManager(
103 103
 				\OC::$server,
Please login to merge, or discard this patch.
apps/dav/composer/composer/autoload_static.php 1 patch
Spacing   +230 added lines, -230 removed lines patch added patch discarded remove patch
@@ -6,249 +6,249 @@
 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\\BuildReminderIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/BuildReminderIndexBackgroundJob.php',
30
-        'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupDirectLinksJob.php',
31
-        'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
32
-        'OCA\\DAV\\BackgroundJob\\EventReminderJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/EventReminderJob.php',
33
-        'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
34
-        'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/RefreshWebcalJob.php',
35
-        'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => __DIR__ . '/..' . '/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
36
-        'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
37
-        'OCA\\DAV\\BackgroundJob\\UploadCleanup' => __DIR__ . '/..' . '/../lib/BackgroundJob/UploadCleanup.php',
38
-        'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Backend.php',
39
-        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Calendar.php',
40
-        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Todo.php',
41
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Base.php',
42
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Calendar.php',
43
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Event.php',
44
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Todo.php',
45
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Calendar.php',
46
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Event.php',
47
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Todo.php',
48
-        'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
49
-        'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayService.php',
50
-        'OCA\\DAV\\CalDAV\\CachedSubscription' => __DIR__ . '/..' . '/../lib/CalDAV/CachedSubscription.php',
51
-        'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => __DIR__ . '/..' . '/../lib/CalDAV/CachedSubscriptionObject.php',
52
-        'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__ . '/..' . '/../lib/CalDAV/CalDavBackend.php',
53
-        'OCA\\DAV\\CalDAV\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Calendar.php',
54
-        'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarHome.php',
55
-        'OCA\\DAV\\CalDAV\\CalendarImpl' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarImpl.php',
56
-        'OCA\\DAV\\CalDAV\\CalendarManager' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarManager.php',
57
-        'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarObject.php',
58
-        'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarRoot.php',
59
-        'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
60
-        'OCA\\DAV\\CalDAV\\Integration\\ExternalCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/Integration/ExternalCalendar.php',
61
-        'OCA\\DAV\\CalDAV\\Integration\\ICalendarProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Integration/ICalendarProvider.php',
62
-        'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => __DIR__ . '/..' . '/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
63
-        'OCA\\DAV\\CalDAV\\Outbox' => __DIR__ . '/..' . '/../lib/CalDAV/Outbox.php',
64
-        'OCA\\DAV\\CalDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Plugin.php',
65
-        'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/Collection.php',
66
-        'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/User.php',
67
-        'OCA\\DAV\\CalDAV\\Proxy\\Proxy' => __DIR__ . '/..' . '/../lib/CalDAV/Proxy/Proxy.php',
68
-        'OCA\\DAV\\CalDAV\\Proxy\\ProxyMapper' => __DIR__ . '/..' . '/../lib/CalDAV/Proxy/ProxyMapper.php',
69
-        'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendar.php',
70
-        'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarObject.php',
71
-        'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarRoot.php',
72
-        'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/PublishPlugin.php',
73
-        'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/Xml/Publisher.php',
74
-        'OCA\\DAV\\CalDAV\\Reminder\\Backend' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/Backend.php',
75
-        'OCA\\DAV\\CalDAV\\Reminder\\INotificationProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/INotificationProvider.php',
76
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProviderManager' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProviderManager.php',
77
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AbstractProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php',
78
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AudioProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/AudioProvider.php',
79
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\EmailProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php',
80
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\ProviderNotAvailableException' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/ProviderNotAvailableException.php',
81
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\PushProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/PushProvider.php',
82
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationTypeDoesNotExistException' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationTypeDoesNotExistException.php',
83
-        'OCA\\DAV\\CalDAV\\Reminder\\Notifier' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/Notifier.php',
84
-        'OCA\\DAV\\CalDAV\\Reminder\\ReminderService' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/ReminderService.php',
85
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
86
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
87
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
88
-        'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/IMipPlugin.php',
89
-        'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/Plugin.php',
90
-        'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Search/SearchPlugin.php',
91
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
92
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
93
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
94
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
95
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
96
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
97
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
98
-        'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/WebcalCaching/Plugin.php',
99
-        'OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService' => __DIR__ . '/..' . '/../lib/CalDAV/WebcalCaching/RefreshWebcalService.php',
100
-        'OCA\\DAV\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
101
-        'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBook.php',
102
-        'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookImpl.php',
103
-        'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookRoot.php',
104
-        'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__ . '/..' . '/../lib/CardDAV/CardDavBackend.php',
105
-        'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__ . '/..' . '/../lib/CardDAV/ContactsManager.php',
106
-        'OCA\\DAV\\CardDAV\\Converter' => __DIR__ . '/..' . '/../lib/CardDAV/Converter.php',
107
-        'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/HasPhotoPlugin.php',
108
-        'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/ImageExportPlugin.php',
109
-        'OCA\\DAV\\CardDAV\\Integration\\ExternalAddressBook' => __DIR__ . '/..' . '/../lib/CardDAV/Integration/ExternalAddressBook.php',
110
-        'OCA\\DAV\\CardDAV\\Integration\\IAddressBookProvider' => __DIR__ . '/..' . '/../lib/CardDAV/Integration/IAddressBookProvider.php',
111
-        'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/MultiGetExportPlugin.php',
112
-        'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__ . '/..' . '/../lib/CardDAV/PhotoCache.php',
113
-        'OCA\\DAV\\CardDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CardDAV/Plugin.php',
114
-        'OCA\\DAV\\CardDAV\\SyncService' => __DIR__ . '/..' . '/../lib/CardDAV/SyncService.php',
115
-        'OCA\\DAV\\CardDAV\\SystemAddressbook' => __DIR__ . '/..' . '/../lib/CardDAV/SystemAddressbook.php',
116
-        'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__ . '/..' . '/../lib/CardDAV/UserAddressBooks.php',
117
-        'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__ . '/..' . '/../lib/CardDAV/Xml/Groups.php',
118
-        'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__ . '/..' . '/../lib/Command/CreateAddressBook.php',
119
-        'OCA\\DAV\\Command\\CreateCalendar' => __DIR__ . '/..' . '/../lib/Command/CreateCalendar.php',
120
-        'OCA\\DAV\\Command\\ListCalendars' => __DIR__ . '/..' . '/../lib/Command/ListCalendars.php',
121
-        'OCA\\DAV\\Command\\MoveCalendar' => __DIR__ . '/..' . '/../lib/Command/MoveCalendar.php',
122
-        'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__ . '/..' . '/../lib/Command/RemoveInvalidShares.php',
123
-        'OCA\\DAV\\Command\\SendEventReminders' => __DIR__ . '/..' . '/../lib/Command/SendEventReminders.php',
124
-        'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__ . '/..' . '/../lib/Command/SyncBirthdayCalendar.php',
125
-        'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__ . '/..' . '/../lib/Command/SyncSystemAddressBook.php',
126
-        'OCA\\DAV\\Comments\\CommentNode' => __DIR__ . '/..' . '/../lib/Comments/CommentNode.php',
127
-        'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__ . '/..' . '/../lib/Comments/CommentsPlugin.php',
128
-        'OCA\\DAV\\Comments\\EntityCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityCollection.php',
129
-        'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityTypeCollection.php',
130
-        'OCA\\DAV\\Comments\\RootCollection' => __DIR__ . '/..' . '/../lib/Comments/RootCollection.php',
131
-        'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__ . '/..' . '/../lib/Connector/LegacyDAVACL.php',
132
-        'OCA\\DAV\\Connector\\PublicAuth' => __DIR__ . '/..' . '/../lib/Connector/PublicAuth.php',
133
-        'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
134
-        'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AppEnabledPlugin.php',
135
-        'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Auth.php',
136
-        'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BearerAuth.php',
137
-        'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
138
-        'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CachingTree.php',
139
-        'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ChecksumList.php',
140
-        'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
141
-        'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
142
-        'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DavAclPlugin.php',
143
-        'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Directory.php',
144
-        'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
145
-        'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
146
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
147
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/FileLocked.php',
148
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/Forbidden.php',
149
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
150
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
151
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
152
-        'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
153
-        'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__ . '/..' . '/../lib/Connector/Sabre/File.php',
154
-        'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesPlugin.php',
155
-        'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesReportPlugin.php',
156
-        'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/LockPlugin.php',
157
-        'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/MaintenancePlugin.php',
158
-        'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Node.php',
159
-        'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ObjectTree.php',
160
-        'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Principal.php',
161
-        'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/PropfindCompressionPlugin.php',
162
-        'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/QuotaPlugin.php',
163
-        'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Server.php',
164
-        'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ServerFactory.php',
165
-        'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ShareTypeList.php',
166
-        'OCA\\DAV\\Connector\\Sabre\\ShareeList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ShareeList.php',
167
-        'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/SharesPlugin.php',
168
-        'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagList.php',
169
-        'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagsPlugin.php',
170
-        'OCA\\DAV\\Controller\\BirthdayCalendarController' => __DIR__ . '/..' . '/../lib/Controller/BirthdayCalendarController.php',
171
-        'OCA\\DAV\\Controller\\DirectController' => __DIR__ . '/..' . '/../lib/Controller/DirectController.php',
172
-        'OCA\\DAV\\Controller\\InvitationResponseController' => __DIR__ . '/..' . '/../lib/Controller/InvitationResponseController.php',
173
-        'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__ . '/..' . '/../lib/DAV/CustomPropertiesBackend.php',
174
-        'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/GroupPrincipalBackend.php',
175
-        'OCA\\DAV\\DAV\\PublicAuth' => __DIR__ . '/..' . '/../lib/DAV/PublicAuth.php',
176
-        'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Backend.php',
177
-        'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__ . '/..' . '/../lib/DAV/Sharing/IShareable.php',
178
-        'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Plugin.php',
179
-        'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/Invite.php',
180
-        'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/ShareRequest.php',
181
-        'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/SystemPrincipalBackend.php',
182
-        'OCA\\DAV\\Db\\Direct' => __DIR__ . '/..' . '/../lib/Db/Direct.php',
183
-        'OCA\\DAV\\Db\\DirectMapper' => __DIR__ . '/..' . '/../lib/Db/DirectMapper.php',
184
-        'OCA\\DAV\\Direct\\DirectFile' => __DIR__ . '/..' . '/../lib/Direct/DirectFile.php',
185
-        'OCA\\DAV\\Direct\\DirectHome' => __DIR__ . '/..' . '/../lib/Direct/DirectHome.php',
186
-        'OCA\\DAV\\Direct\\Server' => __DIR__ . '/..' . '/../lib/Direct/Server.php',
187
-        'OCA\\DAV\\Direct\\ServerFactory' => __DIR__ . '/..' . '/../lib/Direct/ServerFactory.php',
188
-        'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => __DIR__ . '/..' . '/../lib/Events/SabrePluginAuthInitEvent.php',
189
-        'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => __DIR__ . '/..' . '/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
190
-        'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__ . '/..' . '/../lib/Files/BrowserErrorPagePlugin.php',
191
-        'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__ . '/..' . '/../lib/Files/FileSearchBackend.php',
192
-        'OCA\\DAV\\Files\\FilesHome' => __DIR__ . '/..' . '/../lib/Files/FilesHome.php',
193
-        'OCA\\DAV\\Files\\LazySearchBackend' => __DIR__ . '/..' . '/../lib/Files/LazySearchBackend.php',
194
-        'OCA\\DAV\\Files\\RootCollection' => __DIR__ . '/..' . '/../lib/Files/RootCollection.php',
195
-        'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/FilesDropPlugin.php',
196
-        'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
197
-        'OCA\\DAV\\HookManager' => __DIR__ . '/..' . '/../lib/HookManager.php',
198
-        'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndex.php',
199
-        'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
200
-        'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__ . '/..' . '/../lib/Migration/CalDAVRemoveEmptyValue.php',
201
-        'OCA\\DAV\\Migration\\ChunkCleanup' => __DIR__ . '/..' . '/../lib/Migration/ChunkCleanup.php',
202
-        'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__ . '/..' . '/../lib/Migration/FixBirthdayCalendarComponent.php',
203
-        'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => __DIR__ . '/..' . '/../lib/Migration/RefreshWebcalJobRegistrar.php',
204
-        'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => __DIR__ . '/..' . '/../lib/Migration/RegenerateBirthdayCalendars.php',
205
-        'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
206
-        'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => __DIR__ . '/..' . '/../lib/Migration/RemoveClassifiedEventActivity.php',
207
-        'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => __DIR__ . '/..' . '/../lib/Migration/RemoveOrphanEventsAndContacts.php',
208
-        'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170825134824.php',
209
-        'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170919104507.php',
210
-        'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170924124212.php',
211
-        'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170926103422.php',
212
-        'OCA\\DAV\\Migration\\Version1005Date20180413093149' => __DIR__ . '/..' . '/../lib/Migration/Version1005Date20180413093149.php',
213
-        'OCA\\DAV\\Migration\\Version1005Date20180530124431' => __DIR__ . '/..' . '/../lib/Migration/Version1005Date20180530124431.php',
214
-        'OCA\\DAV\\Migration\\Version1006Date20180619154313' => __DIR__ . '/..' . '/../lib/Migration/Version1006Date20180619154313.php',
215
-        'OCA\\DAV\\Migration\\Version1006Date20180628111625' => __DIR__ . '/..' . '/../lib/Migration/Version1006Date20180628111625.php',
216
-        'OCA\\DAV\\Migration\\Version1008Date20181030113700' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181030113700.php',
217
-        'OCA\\DAV\\Migration\\Version1008Date20181105104826' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105104826.php',
218
-        'OCA\\DAV\\Migration\\Version1008Date20181105104833' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105104833.php',
219
-        'OCA\\DAV\\Migration\\Version1008Date20181105110300' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105110300.php',
220
-        'OCA\\DAV\\Migration\\Version1008Date20181105112049' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105112049.php',
221
-        'OCA\\DAV\\Migration\\Version1008Date20181114084440' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181114084440.php',
222
-        'OCA\\DAV\\Migration\\Version1011Date20190725113607' => __DIR__ . '/..' . '/../lib/Migration/Version1011Date20190725113607.php',
223
-        'OCA\\DAV\\Migration\\Version1011Date20190806104428' => __DIR__ . '/..' . '/../lib/Migration/Version1011Date20190806104428.php',
224
-        'OCA\\DAV\\Migration\\Version1012Date20190808122342' => __DIR__ . '/..' . '/../lib/Migration/Version1012Date20190808122342.php',
225
-        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningNode.php',
226
-        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
227
-        'OCA\\DAV\\RootCollection' => __DIR__ . '/..' . '/../lib/RootCollection.php',
228
-        'OCA\\DAV\\Server' => __DIR__ . '/..' . '/../lib/Server.php',
229
-        'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__ . '/..' . '/../lib/Settings/CalDAVSettings.php',
230
-        'OCA\\DAV\\Storage\\PublicOwnerWrapper' => __DIR__ . '/..' . '/../lib/Storage/PublicOwnerWrapper.php',
231
-        'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagMappingNode.php',
232
-        'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagNode.php',
233
-        'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagPlugin.php',
234
-        'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsByIdCollection.php',
235
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
236
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
237
-        'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
238
-        'OCA\\DAV\\Traits\\PrincipalProxyTrait' => __DIR__ . '/..' . '/../lib/Traits/PrincipalProxyTrait.php',
239
-        'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__ . '/..' . '/../lib/Upload/AssemblyStream.php',
240
-        'OCA\\DAV\\Upload\\ChunkingPlugin' => __DIR__ . '/..' . '/../lib/Upload/ChunkingPlugin.php',
241
-        'OCA\\DAV\\Upload\\CleanupService' => __DIR__ . '/..' . '/../lib/Upload/CleanupService.php',
242
-        'OCA\\DAV\\Upload\\FutureFile' => __DIR__ . '/..' . '/../lib/Upload/FutureFile.php',
243
-        'OCA\\DAV\\Upload\\RootCollection' => __DIR__ . '/..' . '/../lib/Upload/RootCollection.php',
244
-        'OCA\\DAV\\Upload\\UploadFile' => __DIR__ . '/..' . '/../lib/Upload/UploadFile.php',
245
-        'OCA\\DAV\\Upload\\UploadFolder' => __DIR__ . '/..' . '/../lib/Upload/UploadFolder.php',
246
-        '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\\BuildReminderIndexBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/BuildReminderIndexBackgroundJob.php',
30
+        'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CleanupDirectLinksJob.php',
31
+        'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
32
+        'OCA\\DAV\\BackgroundJob\\EventReminderJob' => __DIR__.'/..'.'/../lib/BackgroundJob/EventReminderJob.php',
33
+        'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
34
+        'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => __DIR__.'/..'.'/../lib/BackgroundJob/RefreshWebcalJob.php',
35
+        'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => __DIR__.'/..'.'/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
36
+        'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
37
+        'OCA\\DAV\\BackgroundJob\\UploadCleanup' => __DIR__.'/..'.'/../lib/BackgroundJob/UploadCleanup.php',
38
+        'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Backend.php',
39
+        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Filter/Calendar.php',
40
+        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Filter/Todo.php',
41
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Base.php',
42
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Calendar.php',
43
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Event.php',
44
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Todo.php',
45
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Calendar.php',
46
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Event.php',
47
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Todo.php',
48
+        'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => __DIR__.'/..'.'/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
49
+        'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__.'/..'.'/../lib/CalDAV/BirthdayService.php',
50
+        'OCA\\DAV\\CalDAV\\CachedSubscription' => __DIR__.'/..'.'/../lib/CalDAV/CachedSubscription.php',
51
+        'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => __DIR__.'/..'.'/../lib/CalDAV/CachedSubscriptionObject.php',
52
+        'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__.'/..'.'/../lib/CalDAV/CalDavBackend.php',
53
+        'OCA\\DAV\\CalDAV\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Calendar.php',
54
+        'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__.'/..'.'/../lib/CalDAV/CalendarHome.php',
55
+        'OCA\\DAV\\CalDAV\\CalendarImpl' => __DIR__.'/..'.'/../lib/CalDAV/CalendarImpl.php',
56
+        'OCA\\DAV\\CalDAV\\CalendarManager' => __DIR__.'/..'.'/../lib/CalDAV/CalendarManager.php',
57
+        'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/CalendarObject.php',
58
+        'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__.'/..'.'/../lib/CalDAV/CalendarRoot.php',
59
+        'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => __DIR__.'/..'.'/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
60
+        'OCA\\DAV\\CalDAV\\Integration\\ExternalCalendar' => __DIR__.'/..'.'/../lib/CalDAV/Integration/ExternalCalendar.php',
61
+        'OCA\\DAV\\CalDAV\\Integration\\ICalendarProvider' => __DIR__.'/..'.'/../lib/CalDAV/Integration/ICalendarProvider.php',
62
+        'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => __DIR__.'/..'.'/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
63
+        'OCA\\DAV\\CalDAV\\Outbox' => __DIR__.'/..'.'/../lib/CalDAV/Outbox.php',
64
+        'OCA\\DAV\\CalDAV\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Plugin.php',
65
+        'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__.'/..'.'/../lib/CalDAV/Principal/Collection.php',
66
+        'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__.'/..'.'/../lib/CalDAV/Principal/User.php',
67
+        'OCA\\DAV\\CalDAV\\Proxy\\Proxy' => __DIR__.'/..'.'/../lib/CalDAV/Proxy/Proxy.php',
68
+        'OCA\\DAV\\CalDAV\\Proxy\\ProxyMapper' => __DIR__.'/..'.'/../lib/CalDAV/Proxy/ProxyMapper.php',
69
+        'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendar.php',
70
+        'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendarObject.php',
71
+        'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendarRoot.php',
72
+        'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Publishing/PublishPlugin.php',
73
+        'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__.'/..'.'/../lib/CalDAV/Publishing/Xml/Publisher.php',
74
+        'OCA\\DAV\\CalDAV\\Reminder\\Backend' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/Backend.php',
75
+        'OCA\\DAV\\CalDAV\\Reminder\\INotificationProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/INotificationProvider.php',
76
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProviderManager' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProviderManager.php',
77
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AbstractProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php',
78
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AudioProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/AudioProvider.php',
79
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\EmailProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php',
80
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\ProviderNotAvailableException' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/ProviderNotAvailableException.php',
81
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\PushProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/PushProvider.php',
82
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationTypeDoesNotExistException' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationTypeDoesNotExistException.php',
83
+        'OCA\\DAV\\CalDAV\\Reminder\\Notifier' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/Notifier.php',
84
+        'OCA\\DAV\\CalDAV\\Reminder\\ReminderService' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/ReminderService.php',
85
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
86
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
87
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
88
+        'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/IMipPlugin.php',
89
+        'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/Plugin.php',
90
+        'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Search/SearchPlugin.php',
91
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
92
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
93
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
94
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
95
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
96
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
97
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
98
+        'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/WebcalCaching/Plugin.php',
99
+        'OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService' => __DIR__.'/..'.'/../lib/CalDAV/WebcalCaching/RefreshWebcalService.php',
100
+        'OCA\\DAV\\Capabilities' => __DIR__.'/..'.'/../lib/Capabilities.php',
101
+        'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__.'/..'.'/../lib/CardDAV/AddressBook.php',
102
+        'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__.'/..'.'/../lib/CardDAV/AddressBookImpl.php',
103
+        'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__.'/..'.'/../lib/CardDAV/AddressBookRoot.php',
104
+        'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__.'/..'.'/../lib/CardDAV/CardDavBackend.php',
105
+        'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__.'/..'.'/../lib/CardDAV/ContactsManager.php',
106
+        'OCA\\DAV\\CardDAV\\Converter' => __DIR__.'/..'.'/../lib/CardDAV/Converter.php',
107
+        'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => __DIR__.'/..'.'/../lib/CardDAV/HasPhotoPlugin.php',
108
+        'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__.'/..'.'/../lib/CardDAV/ImageExportPlugin.php',
109
+        'OCA\\DAV\\CardDAV\\Integration\\ExternalAddressBook' => __DIR__.'/..'.'/../lib/CardDAV/Integration/ExternalAddressBook.php',
110
+        'OCA\\DAV\\CardDAV\\Integration\\IAddressBookProvider' => __DIR__.'/..'.'/../lib/CardDAV/Integration/IAddressBookProvider.php',
111
+        'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => __DIR__.'/..'.'/../lib/CardDAV/MultiGetExportPlugin.php',
112
+        'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__.'/..'.'/../lib/CardDAV/PhotoCache.php',
113
+        'OCA\\DAV\\CardDAV\\Plugin' => __DIR__.'/..'.'/../lib/CardDAV/Plugin.php',
114
+        'OCA\\DAV\\CardDAV\\SyncService' => __DIR__.'/..'.'/../lib/CardDAV/SyncService.php',
115
+        'OCA\\DAV\\CardDAV\\SystemAddressbook' => __DIR__.'/..'.'/../lib/CardDAV/SystemAddressbook.php',
116
+        'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__.'/..'.'/../lib/CardDAV/UserAddressBooks.php',
117
+        'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__.'/..'.'/../lib/CardDAV/Xml/Groups.php',
118
+        'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__.'/..'.'/../lib/Command/CreateAddressBook.php',
119
+        'OCA\\DAV\\Command\\CreateCalendar' => __DIR__.'/..'.'/../lib/Command/CreateCalendar.php',
120
+        'OCA\\DAV\\Command\\ListCalendars' => __DIR__.'/..'.'/../lib/Command/ListCalendars.php',
121
+        'OCA\\DAV\\Command\\MoveCalendar' => __DIR__.'/..'.'/../lib/Command/MoveCalendar.php',
122
+        'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__.'/..'.'/../lib/Command/RemoveInvalidShares.php',
123
+        'OCA\\DAV\\Command\\SendEventReminders' => __DIR__.'/..'.'/../lib/Command/SendEventReminders.php',
124
+        'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__.'/..'.'/../lib/Command/SyncBirthdayCalendar.php',
125
+        'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__.'/..'.'/../lib/Command/SyncSystemAddressBook.php',
126
+        'OCA\\DAV\\Comments\\CommentNode' => __DIR__.'/..'.'/../lib/Comments/CommentNode.php',
127
+        'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__.'/..'.'/../lib/Comments/CommentsPlugin.php',
128
+        'OCA\\DAV\\Comments\\EntityCollection' => __DIR__.'/..'.'/../lib/Comments/EntityCollection.php',
129
+        'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__.'/..'.'/../lib/Comments/EntityTypeCollection.php',
130
+        'OCA\\DAV\\Comments\\RootCollection' => __DIR__.'/..'.'/../lib/Comments/RootCollection.php',
131
+        'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__.'/..'.'/../lib/Connector/LegacyDAVACL.php',
132
+        'OCA\\DAV\\Connector\\PublicAuth' => __DIR__.'/..'.'/../lib/Connector/PublicAuth.php',
133
+        'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
134
+        'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/AppEnabledPlugin.php',
135
+        'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__.'/..'.'/../lib/Connector/Sabre/Auth.php',
136
+        'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__.'/..'.'/../lib/Connector/Sabre/BearerAuth.php',
137
+        'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
138
+        'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__.'/..'.'/../lib/Connector/Sabre/CachingTree.php',
139
+        'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ChecksumList.php',
140
+        'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
141
+        'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
142
+        'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/DavAclPlugin.php',
143
+        'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__.'/..'.'/../lib/Connector/Sabre/Directory.php',
144
+        'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
145
+        'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
146
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
147
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/FileLocked.php',
148
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/Forbidden.php',
149
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/InvalidPath.php',
150
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
151
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
152
+        'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FakeLockerPlugin.php',
153
+        'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__.'/..'.'/../lib/Connector/Sabre/File.php',
154
+        'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FilesPlugin.php',
155
+        'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FilesReportPlugin.php',
156
+        'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/LockPlugin.php',
157
+        'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/MaintenancePlugin.php',
158
+        'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__.'/..'.'/../lib/Connector/Sabre/Node.php',
159
+        'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__.'/..'.'/../lib/Connector/Sabre/ObjectTree.php',
160
+        'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__.'/..'.'/../lib/Connector/Sabre/Principal.php',
161
+        'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/PropfindCompressionPlugin.php',
162
+        'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/QuotaPlugin.php',
163
+        'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__.'/..'.'/../lib/Connector/Sabre/Server.php',
164
+        'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__.'/..'.'/../lib/Connector/Sabre/ServerFactory.php',
165
+        'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ShareTypeList.php',
166
+        'OCA\\DAV\\Connector\\Sabre\\ShareeList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ShareeList.php',
167
+        'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/SharesPlugin.php',
168
+        'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__.'/..'.'/../lib/Connector/Sabre/TagList.php',
169
+        'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/TagsPlugin.php',
170
+        'OCA\\DAV\\Controller\\BirthdayCalendarController' => __DIR__.'/..'.'/../lib/Controller/BirthdayCalendarController.php',
171
+        'OCA\\DAV\\Controller\\DirectController' => __DIR__.'/..'.'/../lib/Controller/DirectController.php',
172
+        'OCA\\DAV\\Controller\\InvitationResponseController' => __DIR__.'/..'.'/../lib/Controller/InvitationResponseController.php',
173
+        'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__.'/..'.'/../lib/DAV/CustomPropertiesBackend.php',
174
+        'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/GroupPrincipalBackend.php',
175
+        'OCA\\DAV\\DAV\\PublicAuth' => __DIR__.'/..'.'/../lib/DAV/PublicAuth.php',
176
+        'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__.'/..'.'/../lib/DAV/Sharing/Backend.php',
177
+        'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__.'/..'.'/../lib/DAV/Sharing/IShareable.php',
178
+        'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__.'/..'.'/../lib/DAV/Sharing/Plugin.php',
179
+        'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__.'/..'.'/../lib/DAV/Sharing/Xml/Invite.php',
180
+        'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__.'/..'.'/../lib/DAV/Sharing/Xml/ShareRequest.php',
181
+        'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/SystemPrincipalBackend.php',
182
+        'OCA\\DAV\\Db\\Direct' => __DIR__.'/..'.'/../lib/Db/Direct.php',
183
+        'OCA\\DAV\\Db\\DirectMapper' => __DIR__.'/..'.'/../lib/Db/DirectMapper.php',
184
+        'OCA\\DAV\\Direct\\DirectFile' => __DIR__.'/..'.'/../lib/Direct/DirectFile.php',
185
+        'OCA\\DAV\\Direct\\DirectHome' => __DIR__.'/..'.'/../lib/Direct/DirectHome.php',
186
+        'OCA\\DAV\\Direct\\Server' => __DIR__.'/..'.'/../lib/Direct/Server.php',
187
+        'OCA\\DAV\\Direct\\ServerFactory' => __DIR__.'/..'.'/../lib/Direct/ServerFactory.php',
188
+        'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => __DIR__.'/..'.'/../lib/Events/SabrePluginAuthInitEvent.php',
189
+        'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => __DIR__.'/..'.'/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
190
+        'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__.'/..'.'/../lib/Files/BrowserErrorPagePlugin.php',
191
+        'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__.'/..'.'/../lib/Files/FileSearchBackend.php',
192
+        'OCA\\DAV\\Files\\FilesHome' => __DIR__.'/..'.'/../lib/Files/FilesHome.php',
193
+        'OCA\\DAV\\Files\\LazySearchBackend' => __DIR__.'/..'.'/../lib/Files/LazySearchBackend.php',
194
+        'OCA\\DAV\\Files\\RootCollection' => __DIR__.'/..'.'/../lib/Files/RootCollection.php',
195
+        'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__.'/..'.'/../lib/Files/Sharing/FilesDropPlugin.php',
196
+        'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__.'/..'.'/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
197
+        'OCA\\DAV\\HookManager' => __DIR__.'/..'.'/../lib/HookManager.php',
198
+        'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__.'/..'.'/../lib/Migration/BuildCalendarSearchIndex.php',
199
+        'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__.'/..'.'/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
200
+        'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__.'/..'.'/../lib/Migration/CalDAVRemoveEmptyValue.php',
201
+        'OCA\\DAV\\Migration\\ChunkCleanup' => __DIR__.'/..'.'/../lib/Migration/ChunkCleanup.php',
202
+        'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__.'/..'.'/../lib/Migration/FixBirthdayCalendarComponent.php',
203
+        'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => __DIR__.'/..'.'/../lib/Migration/RefreshWebcalJobRegistrar.php',
204
+        'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => __DIR__.'/..'.'/../lib/Migration/RegenerateBirthdayCalendars.php',
205
+        'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => __DIR__.'/..'.'/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
206
+        'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => __DIR__.'/..'.'/../lib/Migration/RemoveClassifiedEventActivity.php',
207
+        'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => __DIR__.'/..'.'/../lib/Migration/RemoveOrphanEventsAndContacts.php',
208
+        'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170825134824.php',
209
+        'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170919104507.php',
210
+        'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170924124212.php',
211
+        'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170926103422.php',
212
+        'OCA\\DAV\\Migration\\Version1005Date20180413093149' => __DIR__.'/..'.'/../lib/Migration/Version1005Date20180413093149.php',
213
+        'OCA\\DAV\\Migration\\Version1005Date20180530124431' => __DIR__.'/..'.'/../lib/Migration/Version1005Date20180530124431.php',
214
+        'OCA\\DAV\\Migration\\Version1006Date20180619154313' => __DIR__.'/..'.'/../lib/Migration/Version1006Date20180619154313.php',
215
+        'OCA\\DAV\\Migration\\Version1006Date20180628111625' => __DIR__.'/..'.'/../lib/Migration/Version1006Date20180628111625.php',
216
+        'OCA\\DAV\\Migration\\Version1008Date20181030113700' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181030113700.php',
217
+        'OCA\\DAV\\Migration\\Version1008Date20181105104826' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105104826.php',
218
+        'OCA\\DAV\\Migration\\Version1008Date20181105104833' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105104833.php',
219
+        'OCA\\DAV\\Migration\\Version1008Date20181105110300' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105110300.php',
220
+        'OCA\\DAV\\Migration\\Version1008Date20181105112049' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105112049.php',
221
+        'OCA\\DAV\\Migration\\Version1008Date20181114084440' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181114084440.php',
222
+        'OCA\\DAV\\Migration\\Version1011Date20190725113607' => __DIR__.'/..'.'/../lib/Migration/Version1011Date20190725113607.php',
223
+        'OCA\\DAV\\Migration\\Version1011Date20190806104428' => __DIR__.'/..'.'/../lib/Migration/Version1011Date20190806104428.php',
224
+        'OCA\\DAV\\Migration\\Version1012Date20190808122342' => __DIR__.'/..'.'/../lib/Migration/Version1012Date20190808122342.php',
225
+        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => __DIR__.'/..'.'/../lib/Provisioning/Apple/AppleProvisioningNode.php',
226
+        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => __DIR__.'/..'.'/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
227
+        'OCA\\DAV\\RootCollection' => __DIR__.'/..'.'/../lib/RootCollection.php',
228
+        'OCA\\DAV\\Server' => __DIR__.'/..'.'/../lib/Server.php',
229
+        'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__.'/..'.'/../lib/Settings/CalDAVSettings.php',
230
+        'OCA\\DAV\\Storage\\PublicOwnerWrapper' => __DIR__.'/..'.'/../lib/Storage/PublicOwnerWrapper.php',
231
+        'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagMappingNode.php',
232
+        'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagNode.php',
233
+        'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagPlugin.php',
234
+        'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsByIdCollection.php',
235
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
236
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
237
+        'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsRelationsCollection.php',
238
+        'OCA\\DAV\\Traits\\PrincipalProxyTrait' => __DIR__.'/..'.'/../lib/Traits/PrincipalProxyTrait.php',
239
+        'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__.'/..'.'/../lib/Upload/AssemblyStream.php',
240
+        'OCA\\DAV\\Upload\\ChunkingPlugin' => __DIR__.'/..'.'/../lib/Upload/ChunkingPlugin.php',
241
+        'OCA\\DAV\\Upload\\CleanupService' => __DIR__.'/..'.'/../lib/Upload/CleanupService.php',
242
+        'OCA\\DAV\\Upload\\FutureFile' => __DIR__.'/..'.'/../lib/Upload/FutureFile.php',
243
+        'OCA\\DAV\\Upload\\RootCollection' => __DIR__.'/..'.'/../lib/Upload/RootCollection.php',
244
+        'OCA\\DAV\\Upload\\UploadFile' => __DIR__.'/..'.'/../lib/Upload/UploadFile.php',
245
+        'OCA\\DAV\\Upload\\UploadFolder' => __DIR__.'/..'.'/../lib/Upload/UploadFolder.php',
246
+        'OCA\\DAV\\Upload\\UploadHome' => __DIR__.'/..'.'/../lib/Upload/UploadHome.php',
247 247
     );
248 248
 
249 249
     public static function getInitializer(ClassLoader $loader)
250 250
     {
251
-        return \Closure::bind(function () use ($loader) {
251
+        return \Closure::bind(function() use ($loader) {
252 252
             $loader->prefixLengthsPsr4 = ComposerStaticInitDAV::$prefixLengthsPsr4;
253 253
             $loader->prefixDirsPsr4 = ComposerStaticInitDAV::$prefixDirsPsr4;
254 254
             $loader->classMap = ComposerStaticInitDAV::$classMap;
Please login to merge, or discard this patch.
apps/dav/composer/composer/autoload_classmap.php 1 patch
Spacing   +223 added lines, -223 removed lines patch added patch discarded remove patch
@@ -6,227 +6,227 @@
 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\\BuildReminderIndexBackgroundJob' => $baseDir . '/../lib/BackgroundJob/BuildReminderIndexBackgroundJob.php',
15
-    'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => $baseDir . '/../lib/BackgroundJob/CleanupDirectLinksJob.php',
16
-    'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => $baseDir . '/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
17
-    'OCA\\DAV\\BackgroundJob\\EventReminderJob' => $baseDir . '/../lib/BackgroundJob/EventReminderJob.php',
18
-    'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => $baseDir . '/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
19
-    'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => $baseDir . '/../lib/BackgroundJob/RefreshWebcalJob.php',
20
-    'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => $baseDir . '/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
21
-    'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => $baseDir . '/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
22
-    'OCA\\DAV\\BackgroundJob\\UploadCleanup' => $baseDir . '/../lib/BackgroundJob/UploadCleanup.php',
23
-    'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir . '/../lib/CalDAV/Activity/Backend.php',
24
-    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Filter/Calendar.php',
25
-    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Filter/Todo.php',
26
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir . '/../lib/CalDAV/Activity/Provider/Base.php',
27
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Provider/Calendar.php',
28
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir . '/../lib/CalDAV/Activity/Provider/Event.php',
29
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Provider/Todo.php',
30
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Setting/Calendar.php',
31
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir . '/../lib/CalDAV/Activity/Setting/Event.php',
32
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Setting/Todo.php',
33
-    'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => $baseDir . '/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
34
-    'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir . '/../lib/CalDAV/BirthdayService.php',
35
-    'OCA\\DAV\\CalDAV\\CachedSubscription' => $baseDir . '/../lib/CalDAV/CachedSubscription.php',
36
-    'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => $baseDir . '/../lib/CalDAV/CachedSubscriptionObject.php',
37
-    'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir . '/../lib/CalDAV/CalDavBackend.php',
38
-    'OCA\\DAV\\CalDAV\\Calendar' => $baseDir . '/../lib/CalDAV/Calendar.php',
39
-    'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir . '/../lib/CalDAV/CalendarHome.php',
40
-    'OCA\\DAV\\CalDAV\\CalendarImpl' => $baseDir . '/../lib/CalDAV/CalendarImpl.php',
41
-    'OCA\\DAV\\CalDAV\\CalendarManager' => $baseDir . '/../lib/CalDAV/CalendarManager.php',
42
-    'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir . '/../lib/CalDAV/CalendarObject.php',
43
-    'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir . '/../lib/CalDAV/CalendarRoot.php',
44
-    'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => $baseDir . '/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
45
-    'OCA\\DAV\\CalDAV\\Integration\\ExternalCalendar' => $baseDir . '/../lib/CalDAV/Integration/ExternalCalendar.php',
46
-    'OCA\\DAV\\CalDAV\\Integration\\ICalendarProvider' => $baseDir . '/../lib/CalDAV/Integration/ICalendarProvider.php',
47
-    'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => $baseDir . '/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
48
-    'OCA\\DAV\\CalDAV\\Outbox' => $baseDir . '/../lib/CalDAV/Outbox.php',
49
-    'OCA\\DAV\\CalDAV\\Plugin' => $baseDir . '/../lib/CalDAV/Plugin.php',
50
-    'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir . '/../lib/CalDAV/Principal/Collection.php',
51
-    'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir . '/../lib/CalDAV/Principal/User.php',
52
-    'OCA\\DAV\\CalDAV\\Proxy\\Proxy' => $baseDir . '/../lib/CalDAV/Proxy/Proxy.php',
53
-    'OCA\\DAV\\CalDAV\\Proxy\\ProxyMapper' => $baseDir . '/../lib/CalDAV/Proxy/ProxyMapper.php',
54
-    'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir . '/../lib/CalDAV/PublicCalendar.php',
55
-    'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir . '/../lib/CalDAV/PublicCalendarObject.php',
56
-    'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir . '/../lib/CalDAV/PublicCalendarRoot.php',
57
-    'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir . '/../lib/CalDAV/Publishing/PublishPlugin.php',
58
-    'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir . '/../lib/CalDAV/Publishing/Xml/Publisher.php',
59
-    'OCA\\DAV\\CalDAV\\Reminder\\Backend' => $baseDir . '/../lib/CalDAV/Reminder/Backend.php',
60
-    'OCA\\DAV\\CalDAV\\Reminder\\INotificationProvider' => $baseDir . '/../lib/CalDAV/Reminder/INotificationProvider.php',
61
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProviderManager' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProviderManager.php',
62
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AbstractProvider' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php',
63
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AudioProvider' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/AudioProvider.php',
64
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\EmailProvider' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php',
65
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\ProviderNotAvailableException' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/ProviderNotAvailableException.php',
66
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\PushProvider' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/PushProvider.php',
67
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationTypeDoesNotExistException' => $baseDir . '/../lib/CalDAV/Reminder/NotificationTypeDoesNotExistException.php',
68
-    'OCA\\DAV\\CalDAV\\Reminder\\Notifier' => $baseDir . '/../lib/CalDAV/Reminder/Notifier.php',
69
-    'OCA\\DAV\\CalDAV\\Reminder\\ReminderService' => $baseDir . '/../lib/CalDAV/Reminder/ReminderService.php',
70
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
71
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
72
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
73
-    'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir . '/../lib/CalDAV/Schedule/IMipPlugin.php',
74
-    'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir . '/../lib/CalDAV/Schedule/Plugin.php',
75
-    'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir . '/../lib/CalDAV/Search/SearchPlugin.php',
76
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
77
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
78
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
79
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
80
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
81
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
82
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
83
-    'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => $baseDir . '/../lib/CalDAV/WebcalCaching/Plugin.php',
84
-    'OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService' => $baseDir . '/../lib/CalDAV/WebcalCaching/RefreshWebcalService.php',
85
-    'OCA\\DAV\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
86
-    'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir . '/../lib/CardDAV/AddressBook.php',
87
-    'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir . '/../lib/CardDAV/AddressBookImpl.php',
88
-    'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir . '/../lib/CardDAV/AddressBookRoot.php',
89
-    'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir . '/../lib/CardDAV/CardDavBackend.php',
90
-    'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir . '/../lib/CardDAV/ContactsManager.php',
91
-    'OCA\\DAV\\CardDAV\\Converter' => $baseDir . '/../lib/CardDAV/Converter.php',
92
-    'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => $baseDir . '/../lib/CardDAV/HasPhotoPlugin.php',
93
-    'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir . '/../lib/CardDAV/ImageExportPlugin.php',
94
-    'OCA\\DAV\\CardDAV\\Integration\\ExternalAddressBook' => $baseDir . '/../lib/CardDAV/Integration/ExternalAddressBook.php',
95
-    'OCA\\DAV\\CardDAV\\Integration\\IAddressBookProvider' => $baseDir . '/../lib/CardDAV/Integration/IAddressBookProvider.php',
96
-    'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => $baseDir . '/../lib/CardDAV/MultiGetExportPlugin.php',
97
-    'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir . '/../lib/CardDAV/PhotoCache.php',
98
-    'OCA\\DAV\\CardDAV\\Plugin' => $baseDir . '/../lib/CardDAV/Plugin.php',
99
-    'OCA\\DAV\\CardDAV\\SyncService' => $baseDir . '/../lib/CardDAV/SyncService.php',
100
-    'OCA\\DAV\\CardDAV\\SystemAddressbook' => $baseDir . '/../lib/CardDAV/SystemAddressbook.php',
101
-    'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir . '/../lib/CardDAV/UserAddressBooks.php',
102
-    'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir . '/../lib/CardDAV/Xml/Groups.php',
103
-    'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir . '/../lib/Command/CreateAddressBook.php',
104
-    'OCA\\DAV\\Command\\CreateCalendar' => $baseDir . '/../lib/Command/CreateCalendar.php',
105
-    'OCA\\DAV\\Command\\ListCalendars' => $baseDir . '/../lib/Command/ListCalendars.php',
106
-    'OCA\\DAV\\Command\\MoveCalendar' => $baseDir . '/../lib/Command/MoveCalendar.php',
107
-    'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir . '/../lib/Command/RemoveInvalidShares.php',
108
-    'OCA\\DAV\\Command\\SendEventReminders' => $baseDir . '/../lib/Command/SendEventReminders.php',
109
-    'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir . '/../lib/Command/SyncBirthdayCalendar.php',
110
-    'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir . '/../lib/Command/SyncSystemAddressBook.php',
111
-    'OCA\\DAV\\Comments\\CommentNode' => $baseDir . '/../lib/Comments/CommentNode.php',
112
-    'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir . '/../lib/Comments/CommentsPlugin.php',
113
-    'OCA\\DAV\\Comments\\EntityCollection' => $baseDir . '/../lib/Comments/EntityCollection.php',
114
-    'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir . '/../lib/Comments/EntityTypeCollection.php',
115
-    'OCA\\DAV\\Comments\\RootCollection' => $baseDir . '/../lib/Comments/RootCollection.php',
116
-    'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir . '/../lib/Connector/LegacyDAVACL.php',
117
-    'OCA\\DAV\\Connector\\PublicAuth' => $baseDir . '/../lib/Connector/PublicAuth.php',
118
-    'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
119
-    'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => $baseDir . '/../lib/Connector/Sabre/AppEnabledPlugin.php',
120
-    'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir . '/../lib/Connector/Sabre/Auth.php',
121
-    'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir . '/../lib/Connector/Sabre/BearerAuth.php',
122
-    'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
123
-    'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir . '/../lib/Connector/Sabre/CachingTree.php',
124
-    'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir . '/../lib/Connector/Sabre/ChecksumList.php',
125
-    'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
126
-    'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
127
-    'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir . '/../lib/Connector/Sabre/DavAclPlugin.php',
128
-    'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir . '/../lib/Connector/Sabre/Directory.php',
129
-    'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
130
-    'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
131
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
132
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir . '/../lib/Connector/Sabre/Exception/FileLocked.php',
133
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/Forbidden.php',
134
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
135
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
136
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
137
-    'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
138
-    'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir . '/../lib/Connector/Sabre/File.php',
139
-    'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesPlugin.php',
140
-    'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesReportPlugin.php',
141
-    'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir . '/../lib/Connector/Sabre/LockPlugin.php',
142
-    'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir . '/../lib/Connector/Sabre/MaintenancePlugin.php',
143
-    'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir . '/../lib/Connector/Sabre/Node.php',
144
-    'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir . '/../lib/Connector/Sabre/ObjectTree.php',
145
-    'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir . '/../lib/Connector/Sabre/Principal.php',
146
-    'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => $baseDir . '/../lib/Connector/Sabre/PropfindCompressionPlugin.php',
147
-    'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir . '/../lib/Connector/Sabre/QuotaPlugin.php',
148
-    'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir . '/../lib/Connector/Sabre/Server.php',
149
-    'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir . '/../lib/Connector/Sabre/ServerFactory.php',
150
-    'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir . '/../lib/Connector/Sabre/ShareTypeList.php',
151
-    'OCA\\DAV\\Connector\\Sabre\\ShareeList' => $baseDir . '/../lib/Connector/Sabre/ShareeList.php',
152
-    'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir . '/../lib/Connector/Sabre/SharesPlugin.php',
153
-    'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir . '/../lib/Connector/Sabre/TagList.php',
154
-    'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir . '/../lib/Connector/Sabre/TagsPlugin.php',
155
-    'OCA\\DAV\\Controller\\BirthdayCalendarController' => $baseDir . '/../lib/Controller/BirthdayCalendarController.php',
156
-    'OCA\\DAV\\Controller\\DirectController' => $baseDir . '/../lib/Controller/DirectController.php',
157
-    'OCA\\DAV\\Controller\\InvitationResponseController' => $baseDir . '/../lib/Controller/InvitationResponseController.php',
158
-    'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir . '/../lib/DAV/CustomPropertiesBackend.php',
159
-    'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir . '/../lib/DAV/GroupPrincipalBackend.php',
160
-    'OCA\\DAV\\DAV\\PublicAuth' => $baseDir . '/../lib/DAV/PublicAuth.php',
161
-    'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir . '/../lib/DAV/Sharing/Backend.php',
162
-    'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir . '/../lib/DAV/Sharing/IShareable.php',
163
-    'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir . '/../lib/DAV/Sharing/Plugin.php',
164
-    'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir . '/../lib/DAV/Sharing/Xml/Invite.php',
165
-    'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir . '/../lib/DAV/Sharing/Xml/ShareRequest.php',
166
-    'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir . '/../lib/DAV/SystemPrincipalBackend.php',
167
-    'OCA\\DAV\\Db\\Direct' => $baseDir . '/../lib/Db/Direct.php',
168
-    'OCA\\DAV\\Db\\DirectMapper' => $baseDir . '/../lib/Db/DirectMapper.php',
169
-    'OCA\\DAV\\Direct\\DirectFile' => $baseDir . '/../lib/Direct/DirectFile.php',
170
-    'OCA\\DAV\\Direct\\DirectHome' => $baseDir . '/../lib/Direct/DirectHome.php',
171
-    'OCA\\DAV\\Direct\\Server' => $baseDir . '/../lib/Direct/Server.php',
172
-    'OCA\\DAV\\Direct\\ServerFactory' => $baseDir . '/../lib/Direct/ServerFactory.php',
173
-    'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => $baseDir . '/../lib/Events/SabrePluginAuthInitEvent.php',
174
-    'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => $baseDir . '/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
175
-    'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir . '/../lib/Files/BrowserErrorPagePlugin.php',
176
-    'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir . '/../lib/Files/FileSearchBackend.php',
177
-    'OCA\\DAV\\Files\\FilesHome' => $baseDir . '/../lib/Files/FilesHome.php',
178
-    'OCA\\DAV\\Files\\LazySearchBackend' => $baseDir . '/../lib/Files/LazySearchBackend.php',
179
-    'OCA\\DAV\\Files\\RootCollection' => $baseDir . '/../lib/Files/RootCollection.php',
180
-    'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir . '/../lib/Files/Sharing/FilesDropPlugin.php',
181
-    'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
182
-    'OCA\\DAV\\HookManager' => $baseDir . '/../lib/HookManager.php',
183
-    'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndex.php',
184
-    'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
185
-    'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir . '/../lib/Migration/CalDAVRemoveEmptyValue.php',
186
-    'OCA\\DAV\\Migration\\ChunkCleanup' => $baseDir . '/../lib/Migration/ChunkCleanup.php',
187
-    'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir . '/../lib/Migration/FixBirthdayCalendarComponent.php',
188
-    'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => $baseDir . '/../lib/Migration/RefreshWebcalJobRegistrar.php',
189
-    'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => $baseDir . '/../lib/Migration/RegenerateBirthdayCalendars.php',
190
-    'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => $baseDir . '/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
191
-    'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => $baseDir . '/../lib/Migration/RemoveClassifiedEventActivity.php',
192
-    'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => $baseDir . '/../lib/Migration/RemoveOrphanEventsAndContacts.php',
193
-    'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir . '/../lib/Migration/Version1004Date20170825134824.php',
194
-    'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir . '/../lib/Migration/Version1004Date20170919104507.php',
195
-    'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir . '/../lib/Migration/Version1004Date20170924124212.php',
196
-    'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir . '/../lib/Migration/Version1004Date20170926103422.php',
197
-    'OCA\\DAV\\Migration\\Version1005Date20180413093149' => $baseDir . '/../lib/Migration/Version1005Date20180413093149.php',
198
-    'OCA\\DAV\\Migration\\Version1005Date20180530124431' => $baseDir . '/../lib/Migration/Version1005Date20180530124431.php',
199
-    'OCA\\DAV\\Migration\\Version1006Date20180619154313' => $baseDir . '/../lib/Migration/Version1006Date20180619154313.php',
200
-    'OCA\\DAV\\Migration\\Version1006Date20180628111625' => $baseDir . '/../lib/Migration/Version1006Date20180628111625.php',
201
-    'OCA\\DAV\\Migration\\Version1008Date20181030113700' => $baseDir . '/../lib/Migration/Version1008Date20181030113700.php',
202
-    'OCA\\DAV\\Migration\\Version1008Date20181105104826' => $baseDir . '/../lib/Migration/Version1008Date20181105104826.php',
203
-    'OCA\\DAV\\Migration\\Version1008Date20181105104833' => $baseDir . '/../lib/Migration/Version1008Date20181105104833.php',
204
-    'OCA\\DAV\\Migration\\Version1008Date20181105110300' => $baseDir . '/../lib/Migration/Version1008Date20181105110300.php',
205
-    'OCA\\DAV\\Migration\\Version1008Date20181105112049' => $baseDir . '/../lib/Migration/Version1008Date20181105112049.php',
206
-    'OCA\\DAV\\Migration\\Version1008Date20181114084440' => $baseDir . '/../lib/Migration/Version1008Date20181114084440.php',
207
-    'OCA\\DAV\\Migration\\Version1011Date20190725113607' => $baseDir . '/../lib/Migration/Version1011Date20190725113607.php',
208
-    'OCA\\DAV\\Migration\\Version1011Date20190806104428' => $baseDir . '/../lib/Migration/Version1011Date20190806104428.php',
209
-    'OCA\\DAV\\Migration\\Version1012Date20190808122342' => $baseDir . '/../lib/Migration/Version1012Date20190808122342.php',
210
-    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningNode.php',
211
-    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
212
-    'OCA\\DAV\\RootCollection' => $baseDir . '/../lib/RootCollection.php',
213
-    'OCA\\DAV\\Server' => $baseDir . '/../lib/Server.php',
214
-    'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir . '/../lib/Settings/CalDAVSettings.php',
215
-    'OCA\\DAV\\Storage\\PublicOwnerWrapper' => $baseDir . '/../lib/Storage/PublicOwnerWrapper.php',
216
-    'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir . '/../lib/SystemTag/SystemTagMappingNode.php',
217
-    'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir . '/../lib/SystemTag/SystemTagNode.php',
218
-    'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir . '/../lib/SystemTag/SystemTagPlugin.php',
219
-    'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir . '/../lib/SystemTag/SystemTagsByIdCollection.php',
220
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
221
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
222
-    'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
223
-    'OCA\\DAV\\Traits\\PrincipalProxyTrait' => $baseDir . '/../lib/Traits/PrincipalProxyTrait.php',
224
-    'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir . '/../lib/Upload/AssemblyStream.php',
225
-    'OCA\\DAV\\Upload\\ChunkingPlugin' => $baseDir . '/../lib/Upload/ChunkingPlugin.php',
226
-    'OCA\\DAV\\Upload\\CleanupService' => $baseDir . '/../lib/Upload/CleanupService.php',
227
-    'OCA\\DAV\\Upload\\FutureFile' => $baseDir . '/../lib/Upload/FutureFile.php',
228
-    'OCA\\DAV\\Upload\\RootCollection' => $baseDir . '/../lib/Upload/RootCollection.php',
229
-    'OCA\\DAV\\Upload\\UploadFile' => $baseDir . '/../lib/Upload/UploadFile.php',
230
-    'OCA\\DAV\\Upload\\UploadFolder' => $baseDir . '/../lib/Upload/UploadFolder.php',
231
-    '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\\BuildReminderIndexBackgroundJob' => $baseDir.'/../lib/BackgroundJob/BuildReminderIndexBackgroundJob.php',
15
+    'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => $baseDir.'/../lib/BackgroundJob/CleanupDirectLinksJob.php',
16
+    'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => $baseDir.'/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
17
+    'OCA\\DAV\\BackgroundJob\\EventReminderJob' => $baseDir.'/../lib/BackgroundJob/EventReminderJob.php',
18
+    'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => $baseDir.'/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
19
+    'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => $baseDir.'/../lib/BackgroundJob/RefreshWebcalJob.php',
20
+    'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => $baseDir.'/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
21
+    'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => $baseDir.'/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
22
+    'OCA\\DAV\\BackgroundJob\\UploadCleanup' => $baseDir.'/../lib/BackgroundJob/UploadCleanup.php',
23
+    'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir.'/../lib/CalDAV/Activity/Backend.php',
24
+    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Filter/Calendar.php',
25
+    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Filter/Todo.php',
26
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir.'/../lib/CalDAV/Activity/Provider/Base.php',
27
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Provider/Calendar.php',
28
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir.'/../lib/CalDAV/Activity/Provider/Event.php',
29
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Provider/Todo.php',
30
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Setting/Calendar.php',
31
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir.'/../lib/CalDAV/Activity/Setting/Event.php',
32
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Setting/Todo.php',
33
+    'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => $baseDir.'/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
34
+    'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir.'/../lib/CalDAV/BirthdayService.php',
35
+    'OCA\\DAV\\CalDAV\\CachedSubscription' => $baseDir.'/../lib/CalDAV/CachedSubscription.php',
36
+    'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => $baseDir.'/../lib/CalDAV/CachedSubscriptionObject.php',
37
+    'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir.'/../lib/CalDAV/CalDavBackend.php',
38
+    'OCA\\DAV\\CalDAV\\Calendar' => $baseDir.'/../lib/CalDAV/Calendar.php',
39
+    'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir.'/../lib/CalDAV/CalendarHome.php',
40
+    'OCA\\DAV\\CalDAV\\CalendarImpl' => $baseDir.'/../lib/CalDAV/CalendarImpl.php',
41
+    'OCA\\DAV\\CalDAV\\CalendarManager' => $baseDir.'/../lib/CalDAV/CalendarManager.php',
42
+    'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir.'/../lib/CalDAV/CalendarObject.php',
43
+    'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir.'/../lib/CalDAV/CalendarRoot.php',
44
+    'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => $baseDir.'/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
45
+    'OCA\\DAV\\CalDAV\\Integration\\ExternalCalendar' => $baseDir.'/../lib/CalDAV/Integration/ExternalCalendar.php',
46
+    'OCA\\DAV\\CalDAV\\Integration\\ICalendarProvider' => $baseDir.'/../lib/CalDAV/Integration/ICalendarProvider.php',
47
+    'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => $baseDir.'/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
48
+    'OCA\\DAV\\CalDAV\\Outbox' => $baseDir.'/../lib/CalDAV/Outbox.php',
49
+    'OCA\\DAV\\CalDAV\\Plugin' => $baseDir.'/../lib/CalDAV/Plugin.php',
50
+    'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir.'/../lib/CalDAV/Principal/Collection.php',
51
+    'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir.'/../lib/CalDAV/Principal/User.php',
52
+    'OCA\\DAV\\CalDAV\\Proxy\\Proxy' => $baseDir.'/../lib/CalDAV/Proxy/Proxy.php',
53
+    'OCA\\DAV\\CalDAV\\Proxy\\ProxyMapper' => $baseDir.'/../lib/CalDAV/Proxy/ProxyMapper.php',
54
+    'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir.'/../lib/CalDAV/PublicCalendar.php',
55
+    'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir.'/../lib/CalDAV/PublicCalendarObject.php',
56
+    'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir.'/../lib/CalDAV/PublicCalendarRoot.php',
57
+    'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir.'/../lib/CalDAV/Publishing/PublishPlugin.php',
58
+    'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir.'/../lib/CalDAV/Publishing/Xml/Publisher.php',
59
+    'OCA\\DAV\\CalDAV\\Reminder\\Backend' => $baseDir.'/../lib/CalDAV/Reminder/Backend.php',
60
+    'OCA\\DAV\\CalDAV\\Reminder\\INotificationProvider' => $baseDir.'/../lib/CalDAV/Reminder/INotificationProvider.php',
61
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProviderManager' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProviderManager.php',
62
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AbstractProvider' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php',
63
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AudioProvider' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/AudioProvider.php',
64
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\EmailProvider' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php',
65
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\ProviderNotAvailableException' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/ProviderNotAvailableException.php',
66
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\PushProvider' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/PushProvider.php',
67
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationTypeDoesNotExistException' => $baseDir.'/../lib/CalDAV/Reminder/NotificationTypeDoesNotExistException.php',
68
+    'OCA\\DAV\\CalDAV\\Reminder\\Notifier' => $baseDir.'/../lib/CalDAV/Reminder/Notifier.php',
69
+    'OCA\\DAV\\CalDAV\\Reminder\\ReminderService' => $baseDir.'/../lib/CalDAV/Reminder/ReminderService.php',
70
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
71
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
72
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
73
+    'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir.'/../lib/CalDAV/Schedule/IMipPlugin.php',
74
+    'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir.'/../lib/CalDAV/Schedule/Plugin.php',
75
+    'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir.'/../lib/CalDAV/Search/SearchPlugin.php',
76
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
77
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
78
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
79
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
80
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
81
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
82
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir.'/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
83
+    'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => $baseDir.'/../lib/CalDAV/WebcalCaching/Plugin.php',
84
+    'OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService' => $baseDir.'/../lib/CalDAV/WebcalCaching/RefreshWebcalService.php',
85
+    'OCA\\DAV\\Capabilities' => $baseDir.'/../lib/Capabilities.php',
86
+    'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir.'/../lib/CardDAV/AddressBook.php',
87
+    'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir.'/../lib/CardDAV/AddressBookImpl.php',
88
+    'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir.'/../lib/CardDAV/AddressBookRoot.php',
89
+    'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir.'/../lib/CardDAV/CardDavBackend.php',
90
+    'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir.'/../lib/CardDAV/ContactsManager.php',
91
+    'OCA\\DAV\\CardDAV\\Converter' => $baseDir.'/../lib/CardDAV/Converter.php',
92
+    'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => $baseDir.'/../lib/CardDAV/HasPhotoPlugin.php',
93
+    'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir.'/../lib/CardDAV/ImageExportPlugin.php',
94
+    'OCA\\DAV\\CardDAV\\Integration\\ExternalAddressBook' => $baseDir.'/../lib/CardDAV/Integration/ExternalAddressBook.php',
95
+    'OCA\\DAV\\CardDAV\\Integration\\IAddressBookProvider' => $baseDir.'/../lib/CardDAV/Integration/IAddressBookProvider.php',
96
+    'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => $baseDir.'/../lib/CardDAV/MultiGetExportPlugin.php',
97
+    'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir.'/../lib/CardDAV/PhotoCache.php',
98
+    'OCA\\DAV\\CardDAV\\Plugin' => $baseDir.'/../lib/CardDAV/Plugin.php',
99
+    'OCA\\DAV\\CardDAV\\SyncService' => $baseDir.'/../lib/CardDAV/SyncService.php',
100
+    'OCA\\DAV\\CardDAV\\SystemAddressbook' => $baseDir.'/../lib/CardDAV/SystemAddressbook.php',
101
+    'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir.'/../lib/CardDAV/UserAddressBooks.php',
102
+    'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir.'/../lib/CardDAV/Xml/Groups.php',
103
+    'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir.'/../lib/Command/CreateAddressBook.php',
104
+    'OCA\\DAV\\Command\\CreateCalendar' => $baseDir.'/../lib/Command/CreateCalendar.php',
105
+    'OCA\\DAV\\Command\\ListCalendars' => $baseDir.'/../lib/Command/ListCalendars.php',
106
+    'OCA\\DAV\\Command\\MoveCalendar' => $baseDir.'/../lib/Command/MoveCalendar.php',
107
+    'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir.'/../lib/Command/RemoveInvalidShares.php',
108
+    'OCA\\DAV\\Command\\SendEventReminders' => $baseDir.'/../lib/Command/SendEventReminders.php',
109
+    'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir.'/../lib/Command/SyncBirthdayCalendar.php',
110
+    'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir.'/../lib/Command/SyncSystemAddressBook.php',
111
+    'OCA\\DAV\\Comments\\CommentNode' => $baseDir.'/../lib/Comments/CommentNode.php',
112
+    'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir.'/../lib/Comments/CommentsPlugin.php',
113
+    'OCA\\DAV\\Comments\\EntityCollection' => $baseDir.'/../lib/Comments/EntityCollection.php',
114
+    'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir.'/../lib/Comments/EntityTypeCollection.php',
115
+    'OCA\\DAV\\Comments\\RootCollection' => $baseDir.'/../lib/Comments/RootCollection.php',
116
+    'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir.'/../lib/Connector/LegacyDAVACL.php',
117
+    'OCA\\DAV\\Connector\\PublicAuth' => $baseDir.'/../lib/Connector/PublicAuth.php',
118
+    'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir.'/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
119
+    'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => $baseDir.'/../lib/Connector/Sabre/AppEnabledPlugin.php',
120
+    'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir.'/../lib/Connector/Sabre/Auth.php',
121
+    'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir.'/../lib/Connector/Sabre/BearerAuth.php',
122
+    'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir.'/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
123
+    'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir.'/../lib/Connector/Sabre/CachingTree.php',
124
+    'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir.'/../lib/Connector/Sabre/ChecksumList.php',
125
+    'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir.'/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
126
+    'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir.'/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
127
+    'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir.'/../lib/Connector/Sabre/DavAclPlugin.php',
128
+    'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir.'/../lib/Connector/Sabre/Directory.php',
129
+    'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir.'/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
130
+    'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir.'/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
131
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir.'/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
132
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir.'/../lib/Connector/Sabre/Exception/FileLocked.php',
133
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir.'/../lib/Connector/Sabre/Exception/Forbidden.php',
134
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir.'/../lib/Connector/Sabre/Exception/InvalidPath.php',
135
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir.'/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
136
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir.'/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
137
+    'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir.'/../lib/Connector/Sabre/FakeLockerPlugin.php',
138
+    'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir.'/../lib/Connector/Sabre/File.php',
139
+    'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir.'/../lib/Connector/Sabre/FilesPlugin.php',
140
+    'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir.'/../lib/Connector/Sabre/FilesReportPlugin.php',
141
+    'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir.'/../lib/Connector/Sabre/LockPlugin.php',
142
+    'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir.'/../lib/Connector/Sabre/MaintenancePlugin.php',
143
+    'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir.'/../lib/Connector/Sabre/Node.php',
144
+    'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir.'/../lib/Connector/Sabre/ObjectTree.php',
145
+    'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir.'/../lib/Connector/Sabre/Principal.php',
146
+    'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => $baseDir.'/../lib/Connector/Sabre/PropfindCompressionPlugin.php',
147
+    'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir.'/../lib/Connector/Sabre/QuotaPlugin.php',
148
+    'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir.'/../lib/Connector/Sabre/Server.php',
149
+    'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir.'/../lib/Connector/Sabre/ServerFactory.php',
150
+    'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir.'/../lib/Connector/Sabre/ShareTypeList.php',
151
+    'OCA\\DAV\\Connector\\Sabre\\ShareeList' => $baseDir.'/../lib/Connector/Sabre/ShareeList.php',
152
+    'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir.'/../lib/Connector/Sabre/SharesPlugin.php',
153
+    'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir.'/../lib/Connector/Sabre/TagList.php',
154
+    'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir.'/../lib/Connector/Sabre/TagsPlugin.php',
155
+    'OCA\\DAV\\Controller\\BirthdayCalendarController' => $baseDir.'/../lib/Controller/BirthdayCalendarController.php',
156
+    'OCA\\DAV\\Controller\\DirectController' => $baseDir.'/../lib/Controller/DirectController.php',
157
+    'OCA\\DAV\\Controller\\InvitationResponseController' => $baseDir.'/../lib/Controller/InvitationResponseController.php',
158
+    'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir.'/../lib/DAV/CustomPropertiesBackend.php',
159
+    'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir.'/../lib/DAV/GroupPrincipalBackend.php',
160
+    'OCA\\DAV\\DAV\\PublicAuth' => $baseDir.'/../lib/DAV/PublicAuth.php',
161
+    'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir.'/../lib/DAV/Sharing/Backend.php',
162
+    'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir.'/../lib/DAV/Sharing/IShareable.php',
163
+    'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir.'/../lib/DAV/Sharing/Plugin.php',
164
+    'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir.'/../lib/DAV/Sharing/Xml/Invite.php',
165
+    'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir.'/../lib/DAV/Sharing/Xml/ShareRequest.php',
166
+    'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir.'/../lib/DAV/SystemPrincipalBackend.php',
167
+    'OCA\\DAV\\Db\\Direct' => $baseDir.'/../lib/Db/Direct.php',
168
+    'OCA\\DAV\\Db\\DirectMapper' => $baseDir.'/../lib/Db/DirectMapper.php',
169
+    'OCA\\DAV\\Direct\\DirectFile' => $baseDir.'/../lib/Direct/DirectFile.php',
170
+    'OCA\\DAV\\Direct\\DirectHome' => $baseDir.'/../lib/Direct/DirectHome.php',
171
+    'OCA\\DAV\\Direct\\Server' => $baseDir.'/../lib/Direct/Server.php',
172
+    'OCA\\DAV\\Direct\\ServerFactory' => $baseDir.'/../lib/Direct/ServerFactory.php',
173
+    'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => $baseDir.'/../lib/Events/SabrePluginAuthInitEvent.php',
174
+    'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => $baseDir.'/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
175
+    'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir.'/../lib/Files/BrowserErrorPagePlugin.php',
176
+    'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir.'/../lib/Files/FileSearchBackend.php',
177
+    'OCA\\DAV\\Files\\FilesHome' => $baseDir.'/../lib/Files/FilesHome.php',
178
+    'OCA\\DAV\\Files\\LazySearchBackend' => $baseDir.'/../lib/Files/LazySearchBackend.php',
179
+    'OCA\\DAV\\Files\\RootCollection' => $baseDir.'/../lib/Files/RootCollection.php',
180
+    'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir.'/../lib/Files/Sharing/FilesDropPlugin.php',
181
+    'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir.'/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
182
+    'OCA\\DAV\\HookManager' => $baseDir.'/../lib/HookManager.php',
183
+    'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir.'/../lib/Migration/BuildCalendarSearchIndex.php',
184
+    'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir.'/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
185
+    'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir.'/../lib/Migration/CalDAVRemoveEmptyValue.php',
186
+    'OCA\\DAV\\Migration\\ChunkCleanup' => $baseDir.'/../lib/Migration/ChunkCleanup.php',
187
+    'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir.'/../lib/Migration/FixBirthdayCalendarComponent.php',
188
+    'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => $baseDir.'/../lib/Migration/RefreshWebcalJobRegistrar.php',
189
+    'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => $baseDir.'/../lib/Migration/RegenerateBirthdayCalendars.php',
190
+    'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => $baseDir.'/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
191
+    'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => $baseDir.'/../lib/Migration/RemoveClassifiedEventActivity.php',
192
+    'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => $baseDir.'/../lib/Migration/RemoveOrphanEventsAndContacts.php',
193
+    'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir.'/../lib/Migration/Version1004Date20170825134824.php',
194
+    'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir.'/../lib/Migration/Version1004Date20170919104507.php',
195
+    'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir.'/../lib/Migration/Version1004Date20170924124212.php',
196
+    'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir.'/../lib/Migration/Version1004Date20170926103422.php',
197
+    'OCA\\DAV\\Migration\\Version1005Date20180413093149' => $baseDir.'/../lib/Migration/Version1005Date20180413093149.php',
198
+    'OCA\\DAV\\Migration\\Version1005Date20180530124431' => $baseDir.'/../lib/Migration/Version1005Date20180530124431.php',
199
+    'OCA\\DAV\\Migration\\Version1006Date20180619154313' => $baseDir.'/../lib/Migration/Version1006Date20180619154313.php',
200
+    'OCA\\DAV\\Migration\\Version1006Date20180628111625' => $baseDir.'/../lib/Migration/Version1006Date20180628111625.php',
201
+    'OCA\\DAV\\Migration\\Version1008Date20181030113700' => $baseDir.'/../lib/Migration/Version1008Date20181030113700.php',
202
+    'OCA\\DAV\\Migration\\Version1008Date20181105104826' => $baseDir.'/../lib/Migration/Version1008Date20181105104826.php',
203
+    'OCA\\DAV\\Migration\\Version1008Date20181105104833' => $baseDir.'/../lib/Migration/Version1008Date20181105104833.php',
204
+    'OCA\\DAV\\Migration\\Version1008Date20181105110300' => $baseDir.'/../lib/Migration/Version1008Date20181105110300.php',
205
+    'OCA\\DAV\\Migration\\Version1008Date20181105112049' => $baseDir.'/../lib/Migration/Version1008Date20181105112049.php',
206
+    'OCA\\DAV\\Migration\\Version1008Date20181114084440' => $baseDir.'/../lib/Migration/Version1008Date20181114084440.php',
207
+    'OCA\\DAV\\Migration\\Version1011Date20190725113607' => $baseDir.'/../lib/Migration/Version1011Date20190725113607.php',
208
+    'OCA\\DAV\\Migration\\Version1011Date20190806104428' => $baseDir.'/../lib/Migration/Version1011Date20190806104428.php',
209
+    'OCA\\DAV\\Migration\\Version1012Date20190808122342' => $baseDir.'/../lib/Migration/Version1012Date20190808122342.php',
210
+    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => $baseDir.'/../lib/Provisioning/Apple/AppleProvisioningNode.php',
211
+    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => $baseDir.'/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
212
+    'OCA\\DAV\\RootCollection' => $baseDir.'/../lib/RootCollection.php',
213
+    'OCA\\DAV\\Server' => $baseDir.'/../lib/Server.php',
214
+    'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir.'/../lib/Settings/CalDAVSettings.php',
215
+    'OCA\\DAV\\Storage\\PublicOwnerWrapper' => $baseDir.'/../lib/Storage/PublicOwnerWrapper.php',
216
+    'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir.'/../lib/SystemTag/SystemTagMappingNode.php',
217
+    'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir.'/../lib/SystemTag/SystemTagNode.php',
218
+    'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir.'/../lib/SystemTag/SystemTagPlugin.php',
219
+    'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir.'/../lib/SystemTag/SystemTagsByIdCollection.php',
220
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir.'/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
221
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir.'/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
222
+    'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir.'/../lib/SystemTag/SystemTagsRelationsCollection.php',
223
+    'OCA\\DAV\\Traits\\PrincipalProxyTrait' => $baseDir.'/../lib/Traits/PrincipalProxyTrait.php',
224
+    'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir.'/../lib/Upload/AssemblyStream.php',
225
+    'OCA\\DAV\\Upload\\ChunkingPlugin' => $baseDir.'/../lib/Upload/ChunkingPlugin.php',
226
+    'OCA\\DAV\\Upload\\CleanupService' => $baseDir.'/../lib/Upload/CleanupService.php',
227
+    'OCA\\DAV\\Upload\\FutureFile' => $baseDir.'/../lib/Upload/FutureFile.php',
228
+    'OCA\\DAV\\Upload\\RootCollection' => $baseDir.'/../lib/Upload/RootCollection.php',
229
+    'OCA\\DAV\\Upload\\UploadFile' => $baseDir.'/../lib/Upload/UploadFile.php',
230
+    'OCA\\DAV\\Upload\\UploadFolder' => $baseDir.'/../lib/Upload/UploadFolder.php',
231
+    'OCA\\DAV\\Upload\\UploadHome' => $baseDir.'/../lib/Upload/UploadHome.php',
232 232
 );
Please login to merge, or discard this patch.
apps/federatedfilesharing/lib/Notifications.php 2 patches
Indentation   +399 added lines, -399 removed lines patch added patch discarded remove patch
@@ -35,403 +35,403 @@
 block discarded – undo
35 35
 use OCP\OCS\IDiscoveryService;
36 36
 
37 37
 class Notifications {
38
-	public const RESPONSE_FORMAT = 'json'; // default response format for ocs calls
39
-
40
-	/** @var AddressHandler */
41
-	private $addressHandler;
42
-
43
-	/** @var IClientService */
44
-	private $httpClientService;
45
-
46
-	/** @var IDiscoveryService */
47
-	private $discoveryService;
48
-
49
-	/** @var IJobList  */
50
-	private $jobList;
51
-
52
-	/** @var ICloudFederationProviderManager */
53
-	private $federationProviderManager;
54
-
55
-	/** @var ICloudFederationFactory */
56
-	private $cloudFederationFactory;
57
-
58
-	/** @var IEventDispatcher */
59
-	private $eventDispatcher;
60
-
61
-	public function __construct(
62
-		AddressHandler $addressHandler,
63
-		IClientService $httpClientService,
64
-		IDiscoveryService $discoveryService,
65
-		IJobList $jobList,
66
-		ICloudFederationProviderManager $federationProviderManager,
67
-		ICloudFederationFactory $cloudFederationFactory,
68
-		IEventDispatcher $eventDispatcher
69
-	) {
70
-		$this->addressHandler = $addressHandler;
71
-		$this->httpClientService = $httpClientService;
72
-		$this->discoveryService = $discoveryService;
73
-		$this->jobList = $jobList;
74
-		$this->federationProviderManager = $federationProviderManager;
75
-		$this->cloudFederationFactory = $cloudFederationFactory;
76
-		$this->eventDispatcher = $eventDispatcher;
77
-	}
78
-
79
-	/**
80
-	 * send server-to-server share to remote server
81
-	 *
82
-	 * @param string $token
83
-	 * @param string $shareWith
84
-	 * @param string $name
85
-	 * @param int $remote_id
86
-	 * @param string $owner
87
-	 * @param string $ownerFederatedId
88
-	 * @param string $sharedBy
89
-	 * @param string $sharedByFederatedId
90
-	 * @param int $shareType (can be a remote user or group share)
91
-	 * @return bool
92
-	 * @throws \OC\HintException
93
-	 * @throws \OC\ServerNotAvailableException
94
-	 */
95
-	public function sendRemoteShare($token, $shareWith, $name, $remote_id, $owner, $ownerFederatedId, $sharedBy, $sharedByFederatedId, $shareType) {
96
-		list($user, $remote) = $this->addressHandler->splitUserRemote($shareWith);
97
-
98
-		if ($user && $remote) {
99
-			$local = $this->addressHandler->generateRemoteURL();
100
-
101
-			$fields = [
102
-				'shareWith' => $user,
103
-				'token' => $token,
104
-				'name' => $name,
105
-				'remoteId' => $remote_id,
106
-				'owner' => $owner,
107
-				'ownerFederatedId' => $ownerFederatedId,
108
-				'sharedBy' => $sharedBy,
109
-				'sharedByFederatedId' => $sharedByFederatedId,
110
-				'remote' => $local,
111
-				'shareType' => $shareType
112
-			];
113
-
114
-			$result = $this->tryHttpPostToShareEndpoint($remote, '', $fields);
115
-			$status = json_decode($result['result'], true);
116
-
117
-			$ocsStatus = isset($status['ocs']);
118
-			$ocsSuccess = $ocsStatus && ($status['ocs']['meta']['statuscode'] === 100 || $status['ocs']['meta']['statuscode'] === 200);
119
-
120
-			if ($result['success'] && (!$ocsStatus ||$ocsSuccess)) {
121
-				$event = new FederatedShareAddedEvent($remote);
122
-				$this->eventDispatcher->dispatchTyped($event);
123
-				return true;
124
-			}
125
-		}
126
-
127
-		return false;
128
-	}
129
-
130
-	/**
131
-	 * ask owner to re-share the file with the given user
132
-	 *
133
-	 * @param string $token
134
-	 * @param int $id remote Id
135
-	 * @param int $shareId internal share Id
136
-	 * @param string $remote remote address of the owner
137
-	 * @param string $shareWith
138
-	 * @param int $permission
139
-	 * @param string $filename
140
-	 * @return bool
141
-	 * @throws \OC\HintException
142
-	 * @throws \OC\ServerNotAvailableException
143
-	 */
144
-	public function requestReShare($token, $id, $shareId, $remote, $shareWith, $permission, $filename) {
145
-		$fields = [
146
-			'shareWith' => $shareWith,
147
-			'token' => $token,
148
-			'permission' => $permission,
149
-			'remoteId' => $shareId,
150
-		];
151
-
152
-		$ocmFields = $fields;
153
-		$ocmFields['remoteId'] = $id;
154
-		$ocmFields['localId'] = $shareId;
155
-		$ocmFields['name'] = $filename;
156
-
157
-		$ocmResult = $this->tryOCMEndPoint($remote, $ocmFields, 'reshare');
158
-		if (is_array($ocmResult) && isset($ocmResult['token']) && isset($ocmResult['providerId'])) {
159
-			return [$ocmResult['token'], $ocmResult['providerId']];
160
-		}
161
-
162
-		$result = $this->tryLegacyEndPoint(rtrim($remote, '/'), '/' . $id . '/reshare', $fields);
163
-		$status = json_decode($result['result'], true);
164
-
165
-		$httpRequestSuccessful = $result['success'];
166
-		$ocsCallSuccessful = $status['ocs']['meta']['statuscode'] === 100 || $status['ocs']['meta']['statuscode'] === 200;
167
-		$validToken = isset($status['ocs']['data']['token']) && is_string($status['ocs']['data']['token']);
168
-		$validRemoteId = isset($status['ocs']['data']['remoteId']);
169
-
170
-		if ($httpRequestSuccessful && $ocsCallSuccessful && $validToken && $validRemoteId) {
171
-			return [
172
-				$status['ocs']['data']['token'],
173
-				(int)$status['ocs']['data']['remoteId']
174
-			];
175
-		}
176
-
177
-		return false;
178
-	}
179
-
180
-	/**
181
-	 * send server-to-server unshare to remote server
182
-	 *
183
-	 * @param string $remote url
184
-	 * @param int $id share id
185
-	 * @param string $token
186
-	 * @return bool
187
-	 */
188
-	public function sendRemoteUnShare($remote, $id, $token) {
189
-		$this->sendUpdateToRemote($remote, $id, $token, 'unshare');
190
-	}
191
-
192
-	/**
193
-	 * send server-to-server unshare to remote server
194
-	 *
195
-	 * @param string $remote url
196
-	 * @param int $id share id
197
-	 * @param string $token
198
-	 * @return bool
199
-	 */
200
-	public function sendRevokeShare($remote, $id, $token) {
201
-		$this->sendUpdateToRemote($remote, $id, $token, 'reshare_undo');
202
-	}
203
-
204
-	/**
205
-	 * send notification to remote server if the permissions was changed
206
-	 *
207
-	 * @param string $remote
208
-	 * @param int $remoteId
209
-	 * @param string $token
210
-	 * @param int $permissions
211
-	 * @return bool
212
-	 */
213
-	public function sendPermissionChange($remote, $remoteId, $token, $permissions) {
214
-		$this->sendUpdateToRemote($remote, $remoteId, $token, 'permissions', ['permissions' => $permissions]);
215
-	}
216
-
217
-	/**
218
-	 * forward accept reShare to remote server
219
-	 *
220
-	 * @param string $remote
221
-	 * @param int $remoteId
222
-	 * @param string $token
223
-	 */
224
-	public function sendAcceptShare($remote, $remoteId, $token) {
225
-		$this->sendUpdateToRemote($remote, $remoteId, $token, 'accept');
226
-	}
227
-
228
-	/**
229
-	 * forward decline reShare to remote server
230
-	 *
231
-	 * @param string $remote
232
-	 * @param int $remoteId
233
-	 * @param string $token
234
-	 */
235
-	public function sendDeclineShare($remote, $remoteId, $token) {
236
-		$this->sendUpdateToRemote($remote, $remoteId, $token, 'decline');
237
-	}
238
-
239
-	/**
240
-	 * inform remote server whether server-to-server share was accepted/declined
241
-	 *
242
-	 * @param string $remote
243
-	 * @param string $token
244
-	 * @param int $remoteId Share id on the remote host
245
-	 * @param string $action possible actions: accept, decline, unshare, revoke, permissions
246
-	 * @param array $data
247
-	 * @param int $try
248
-	 * @return boolean
249
-	 */
250
-	public function sendUpdateToRemote($remote, $remoteId, $token, $action, $data = [], $try = 0) {
251
-		$fields = [
252
-			'token' => $token,
253
-			'remoteId' => $remoteId
254
-		];
255
-		foreach ($data as $key => $value) {
256
-			$fields[$key] = $value;
257
-		}
258
-
259
-		$result = $this->tryHttpPostToShareEndpoint(rtrim($remote, '/'), '/' . $remoteId . '/' . $action, $fields, $action);
260
-		$status = json_decode($result['result'], true);
261
-
262
-		if ($result['success'] &&
263
-			($status['ocs']['meta']['statuscode'] === 100 ||
264
-				$status['ocs']['meta']['statuscode'] === 200
265
-			)
266
-		) {
267
-			return true;
268
-		} elseif ($try === 0) {
269
-			// only add new job on first try
270
-			$this->jobList->add('OCA\FederatedFileSharing\BackgroundJob\RetryJob',
271
-				[
272
-					'remote' => $remote,
273
-					'remoteId' => $remoteId,
274
-					'token' => $token,
275
-					'action' => $action,
276
-					'data' => json_encode($data),
277
-					'try' => $try,
278
-					'lastRun' => $this->getTimestamp()
279
-				]
280
-			);
281
-		}
282
-
283
-		return false;
284
-	}
285
-
286
-
287
-	/**
288
-	 * return current timestamp
289
-	 *
290
-	 * @return int
291
-	 */
292
-	protected function getTimestamp() {
293
-		return time();
294
-	}
295
-
296
-	/**
297
-	 * try http post with the given protocol, if no protocol is given we pick
298
-	 * the secure one (https)
299
-	 *
300
-	 * @param string $remoteDomain
301
-	 * @param string $urlSuffix
302
-	 * @param array $fields post parameters
303
-	 * @param string $action define the action (possible values: share, reshare, accept, decline, unshare, revoke, permissions)
304
-	 * @return array
305
-	 * @throws \Exception
306
-	 */
307
-	protected function tryHttpPostToShareEndpoint($remoteDomain, $urlSuffix, array $fields, $action="share") {
308
-		if ($this->addressHandler->urlContainProtocol($remoteDomain) === false) {
309
-			$remoteDomain = 'https://' . $remoteDomain;
310
-		}
311
-
312
-		$result = [
313
-			'success' => false,
314
-			'result' => '',
315
-		];
316
-
317
-		// if possible we use the new OCM API
318
-		$ocmResult = $this->tryOCMEndPoint($remoteDomain, $fields, $action);
319
-		if (is_array($ocmResult)) {
320
-			$result['success'] = true;
321
-			$result['result'] = json_encode([
322
-				'ocs' => ['meta' => ['statuscode' => 200]]]);
323
-			return $result;
324
-		}
325
-
326
-		return $this->tryLegacyEndPoint($remoteDomain, $urlSuffix, $fields);
327
-	}
328
-
329
-	/**
330
-	 * try old federated sharing API if the OCM api doesn't work
331
-	 *
332
-	 * @param $remoteDomain
333
-	 * @param $urlSuffix
334
-	 * @param array $fields
335
-	 * @return mixed
336
-	 * @throws \Exception
337
-	 */
338
-	protected function tryLegacyEndPoint($remoteDomain, $urlSuffix, array $fields) {
339
-		$result = [
340
-			'success' => false,
341
-			'result' => '',
342
-		];
343
-
344
-		// Fall back to old API
345
-		$client = $this->httpClientService->newClient();
346
-		$federationEndpoints = $this->discoveryService->discover($remoteDomain, 'FEDERATED_SHARING');
347
-		$endpoint = isset($federationEndpoints['share']) ? $federationEndpoints['share'] : '/ocs/v2.php/cloud/shares';
348
-		try {
349
-			$response = $client->post($remoteDomain . $endpoint . $urlSuffix . '?format=' . self::RESPONSE_FORMAT, [
350
-				'body' => $fields,
351
-				'timeout' => 10,
352
-				'connect_timeout' => 10,
353
-			]);
354
-			$result['result'] = $response->getBody();
355
-			$result['success'] = true;
356
-		} catch (\Exception $e) {
357
-			// if flat re-sharing is not supported by the remote server
358
-			// we re-throw the exception and fall back to the old behaviour.
359
-			// (flat re-shares has been introduced in Nextcloud 9.1)
360
-			if ($e->getCode() === Http::STATUS_INTERNAL_SERVER_ERROR) {
361
-				throw $e;
362
-			}
363
-		}
364
-
365
-		return $result;
366
-	}
367
-
368
-	/**
369
-	 * send action regarding federated sharing to the remote server using the OCM API
370
-	 *
371
-	 * @param $remoteDomain
372
-	 * @param $fields
373
-	 * @param $action
374
-	 *
375
-	 * @return bool
376
-	 */
377
-	protected function tryOCMEndPoint($remoteDomain, $fields, $action) {
378
-		switch ($action) {
379
-			case 'share':
380
-				$share = $this->cloudFederationFactory->getCloudFederationShare(
381
-					$fields['shareWith'] . '@' . $remoteDomain,
382
-					$fields['name'],
383
-					'',
384
-					$fields['remoteId'],
385
-					$fields['ownerFederatedId'],
386
-					$fields['owner'],
387
-					$fields['sharedByFederatedId'],
388
-					$fields['sharedBy'],
389
-					$fields['token'],
390
-					$fields['shareType'],
391
-					'file'
392
-				);
393
-				return $this->federationProviderManager->sendShare($share);
394
-			case 'reshare':
395
-				// ask owner to reshare a file
396
-				$notification = $this->cloudFederationFactory->getCloudFederationNotification();
397
-				$notification->setMessage('REQUEST_RESHARE',
398
-					'file',
399
-					$fields['remoteId'],
400
-					[
401
-						'sharedSecret' => $fields['token'],
402
-						'shareWith' => $fields['shareWith'],
403
-						'senderId' => $fields['localId'],
404
-						'shareType' => $fields['shareType'],
405
-						'message' => 'Ask owner to reshare the file'
406
-					]
407
-				);
408
-				return $this->federationProviderManager->sendNotification($remoteDomain, $notification);
409
-			case 'unshare':
410
-				//owner unshares the file from the recipient again
411
-				$notification = $this->cloudFederationFactory->getCloudFederationNotification();
412
-				$notification->setMessage('SHARE_UNSHARED',
413
-					'file',
414
-					$fields['remoteId'],
415
-					[
416
-						'sharedSecret' => $fields['token'],
417
-						'messgage' => 'file is no longer shared with you'
418
-					]
419
-				);
420
-				return $this->federationProviderManager->sendNotification($remoteDomain, $notification);
421
-			case 'reshare_undo':
422
-				// if a reshare was unshared we send the information to the initiator/owner
423
-				$notification = $this->cloudFederationFactory->getCloudFederationNotification();
424
-				$notification->setMessage('RESHARE_UNDO',
425
-					'file',
426
-					$fields['remoteId'],
427
-					[
428
-						'sharedSecret' => $fields['token'],
429
-						'message' => 'reshare was revoked'
430
-					]
431
-				);
432
-				return $this->federationProviderManager->sendNotification($remoteDomain, $notification);
433
-		}
434
-
435
-		return false;
436
-	}
38
+    public const RESPONSE_FORMAT = 'json'; // default response format for ocs calls
39
+
40
+    /** @var AddressHandler */
41
+    private $addressHandler;
42
+
43
+    /** @var IClientService */
44
+    private $httpClientService;
45
+
46
+    /** @var IDiscoveryService */
47
+    private $discoveryService;
48
+
49
+    /** @var IJobList  */
50
+    private $jobList;
51
+
52
+    /** @var ICloudFederationProviderManager */
53
+    private $federationProviderManager;
54
+
55
+    /** @var ICloudFederationFactory */
56
+    private $cloudFederationFactory;
57
+
58
+    /** @var IEventDispatcher */
59
+    private $eventDispatcher;
60
+
61
+    public function __construct(
62
+        AddressHandler $addressHandler,
63
+        IClientService $httpClientService,
64
+        IDiscoveryService $discoveryService,
65
+        IJobList $jobList,
66
+        ICloudFederationProviderManager $federationProviderManager,
67
+        ICloudFederationFactory $cloudFederationFactory,
68
+        IEventDispatcher $eventDispatcher
69
+    ) {
70
+        $this->addressHandler = $addressHandler;
71
+        $this->httpClientService = $httpClientService;
72
+        $this->discoveryService = $discoveryService;
73
+        $this->jobList = $jobList;
74
+        $this->federationProviderManager = $federationProviderManager;
75
+        $this->cloudFederationFactory = $cloudFederationFactory;
76
+        $this->eventDispatcher = $eventDispatcher;
77
+    }
78
+
79
+    /**
80
+     * send server-to-server share to remote server
81
+     *
82
+     * @param string $token
83
+     * @param string $shareWith
84
+     * @param string $name
85
+     * @param int $remote_id
86
+     * @param string $owner
87
+     * @param string $ownerFederatedId
88
+     * @param string $sharedBy
89
+     * @param string $sharedByFederatedId
90
+     * @param int $shareType (can be a remote user or group share)
91
+     * @return bool
92
+     * @throws \OC\HintException
93
+     * @throws \OC\ServerNotAvailableException
94
+     */
95
+    public function sendRemoteShare($token, $shareWith, $name, $remote_id, $owner, $ownerFederatedId, $sharedBy, $sharedByFederatedId, $shareType) {
96
+        list($user, $remote) = $this->addressHandler->splitUserRemote($shareWith);
97
+
98
+        if ($user && $remote) {
99
+            $local = $this->addressHandler->generateRemoteURL();
100
+
101
+            $fields = [
102
+                'shareWith' => $user,
103
+                'token' => $token,
104
+                'name' => $name,
105
+                'remoteId' => $remote_id,
106
+                'owner' => $owner,
107
+                'ownerFederatedId' => $ownerFederatedId,
108
+                'sharedBy' => $sharedBy,
109
+                'sharedByFederatedId' => $sharedByFederatedId,
110
+                'remote' => $local,
111
+                'shareType' => $shareType
112
+            ];
113
+
114
+            $result = $this->tryHttpPostToShareEndpoint($remote, '', $fields);
115
+            $status = json_decode($result['result'], true);
116
+
117
+            $ocsStatus = isset($status['ocs']);
118
+            $ocsSuccess = $ocsStatus && ($status['ocs']['meta']['statuscode'] === 100 || $status['ocs']['meta']['statuscode'] === 200);
119
+
120
+            if ($result['success'] && (!$ocsStatus ||$ocsSuccess)) {
121
+                $event = new FederatedShareAddedEvent($remote);
122
+                $this->eventDispatcher->dispatchTyped($event);
123
+                return true;
124
+            }
125
+        }
126
+
127
+        return false;
128
+    }
129
+
130
+    /**
131
+     * ask owner to re-share the file with the given user
132
+     *
133
+     * @param string $token
134
+     * @param int $id remote Id
135
+     * @param int $shareId internal share Id
136
+     * @param string $remote remote address of the owner
137
+     * @param string $shareWith
138
+     * @param int $permission
139
+     * @param string $filename
140
+     * @return bool
141
+     * @throws \OC\HintException
142
+     * @throws \OC\ServerNotAvailableException
143
+     */
144
+    public function requestReShare($token, $id, $shareId, $remote, $shareWith, $permission, $filename) {
145
+        $fields = [
146
+            'shareWith' => $shareWith,
147
+            'token' => $token,
148
+            'permission' => $permission,
149
+            'remoteId' => $shareId,
150
+        ];
151
+
152
+        $ocmFields = $fields;
153
+        $ocmFields['remoteId'] = $id;
154
+        $ocmFields['localId'] = $shareId;
155
+        $ocmFields['name'] = $filename;
156
+
157
+        $ocmResult = $this->tryOCMEndPoint($remote, $ocmFields, 'reshare');
158
+        if (is_array($ocmResult) && isset($ocmResult['token']) && isset($ocmResult['providerId'])) {
159
+            return [$ocmResult['token'], $ocmResult['providerId']];
160
+        }
161
+
162
+        $result = $this->tryLegacyEndPoint(rtrim($remote, '/'), '/' . $id . '/reshare', $fields);
163
+        $status = json_decode($result['result'], true);
164
+
165
+        $httpRequestSuccessful = $result['success'];
166
+        $ocsCallSuccessful = $status['ocs']['meta']['statuscode'] === 100 || $status['ocs']['meta']['statuscode'] === 200;
167
+        $validToken = isset($status['ocs']['data']['token']) && is_string($status['ocs']['data']['token']);
168
+        $validRemoteId = isset($status['ocs']['data']['remoteId']);
169
+
170
+        if ($httpRequestSuccessful && $ocsCallSuccessful && $validToken && $validRemoteId) {
171
+            return [
172
+                $status['ocs']['data']['token'],
173
+                (int)$status['ocs']['data']['remoteId']
174
+            ];
175
+        }
176
+
177
+        return false;
178
+    }
179
+
180
+    /**
181
+     * send server-to-server unshare to remote server
182
+     *
183
+     * @param string $remote url
184
+     * @param int $id share id
185
+     * @param string $token
186
+     * @return bool
187
+     */
188
+    public function sendRemoteUnShare($remote, $id, $token) {
189
+        $this->sendUpdateToRemote($remote, $id, $token, 'unshare');
190
+    }
191
+
192
+    /**
193
+     * send server-to-server unshare to remote server
194
+     *
195
+     * @param string $remote url
196
+     * @param int $id share id
197
+     * @param string $token
198
+     * @return bool
199
+     */
200
+    public function sendRevokeShare($remote, $id, $token) {
201
+        $this->sendUpdateToRemote($remote, $id, $token, 'reshare_undo');
202
+    }
203
+
204
+    /**
205
+     * send notification to remote server if the permissions was changed
206
+     *
207
+     * @param string $remote
208
+     * @param int $remoteId
209
+     * @param string $token
210
+     * @param int $permissions
211
+     * @return bool
212
+     */
213
+    public function sendPermissionChange($remote, $remoteId, $token, $permissions) {
214
+        $this->sendUpdateToRemote($remote, $remoteId, $token, 'permissions', ['permissions' => $permissions]);
215
+    }
216
+
217
+    /**
218
+     * forward accept reShare to remote server
219
+     *
220
+     * @param string $remote
221
+     * @param int $remoteId
222
+     * @param string $token
223
+     */
224
+    public function sendAcceptShare($remote, $remoteId, $token) {
225
+        $this->sendUpdateToRemote($remote, $remoteId, $token, 'accept');
226
+    }
227
+
228
+    /**
229
+     * forward decline reShare to remote server
230
+     *
231
+     * @param string $remote
232
+     * @param int $remoteId
233
+     * @param string $token
234
+     */
235
+    public function sendDeclineShare($remote, $remoteId, $token) {
236
+        $this->sendUpdateToRemote($remote, $remoteId, $token, 'decline');
237
+    }
238
+
239
+    /**
240
+     * inform remote server whether server-to-server share was accepted/declined
241
+     *
242
+     * @param string $remote
243
+     * @param string $token
244
+     * @param int $remoteId Share id on the remote host
245
+     * @param string $action possible actions: accept, decline, unshare, revoke, permissions
246
+     * @param array $data
247
+     * @param int $try
248
+     * @return boolean
249
+     */
250
+    public function sendUpdateToRemote($remote, $remoteId, $token, $action, $data = [], $try = 0) {
251
+        $fields = [
252
+            'token' => $token,
253
+            'remoteId' => $remoteId
254
+        ];
255
+        foreach ($data as $key => $value) {
256
+            $fields[$key] = $value;
257
+        }
258
+
259
+        $result = $this->tryHttpPostToShareEndpoint(rtrim($remote, '/'), '/' . $remoteId . '/' . $action, $fields, $action);
260
+        $status = json_decode($result['result'], true);
261
+
262
+        if ($result['success'] &&
263
+            ($status['ocs']['meta']['statuscode'] === 100 ||
264
+                $status['ocs']['meta']['statuscode'] === 200
265
+            )
266
+        ) {
267
+            return true;
268
+        } elseif ($try === 0) {
269
+            // only add new job on first try
270
+            $this->jobList->add('OCA\FederatedFileSharing\BackgroundJob\RetryJob',
271
+                [
272
+                    'remote' => $remote,
273
+                    'remoteId' => $remoteId,
274
+                    'token' => $token,
275
+                    'action' => $action,
276
+                    'data' => json_encode($data),
277
+                    'try' => $try,
278
+                    'lastRun' => $this->getTimestamp()
279
+                ]
280
+            );
281
+        }
282
+
283
+        return false;
284
+    }
285
+
286
+
287
+    /**
288
+     * return current timestamp
289
+     *
290
+     * @return int
291
+     */
292
+    protected function getTimestamp() {
293
+        return time();
294
+    }
295
+
296
+    /**
297
+     * try http post with the given protocol, if no protocol is given we pick
298
+     * the secure one (https)
299
+     *
300
+     * @param string $remoteDomain
301
+     * @param string $urlSuffix
302
+     * @param array $fields post parameters
303
+     * @param string $action define the action (possible values: share, reshare, accept, decline, unshare, revoke, permissions)
304
+     * @return array
305
+     * @throws \Exception
306
+     */
307
+    protected function tryHttpPostToShareEndpoint($remoteDomain, $urlSuffix, array $fields, $action="share") {
308
+        if ($this->addressHandler->urlContainProtocol($remoteDomain) === false) {
309
+            $remoteDomain = 'https://' . $remoteDomain;
310
+        }
311
+
312
+        $result = [
313
+            'success' => false,
314
+            'result' => '',
315
+        ];
316
+
317
+        // if possible we use the new OCM API
318
+        $ocmResult = $this->tryOCMEndPoint($remoteDomain, $fields, $action);
319
+        if (is_array($ocmResult)) {
320
+            $result['success'] = true;
321
+            $result['result'] = json_encode([
322
+                'ocs' => ['meta' => ['statuscode' => 200]]]);
323
+            return $result;
324
+        }
325
+
326
+        return $this->tryLegacyEndPoint($remoteDomain, $urlSuffix, $fields);
327
+    }
328
+
329
+    /**
330
+     * try old federated sharing API if the OCM api doesn't work
331
+     *
332
+     * @param $remoteDomain
333
+     * @param $urlSuffix
334
+     * @param array $fields
335
+     * @return mixed
336
+     * @throws \Exception
337
+     */
338
+    protected function tryLegacyEndPoint($remoteDomain, $urlSuffix, array $fields) {
339
+        $result = [
340
+            'success' => false,
341
+            'result' => '',
342
+        ];
343
+
344
+        // Fall back to old API
345
+        $client = $this->httpClientService->newClient();
346
+        $federationEndpoints = $this->discoveryService->discover($remoteDomain, 'FEDERATED_SHARING');
347
+        $endpoint = isset($federationEndpoints['share']) ? $federationEndpoints['share'] : '/ocs/v2.php/cloud/shares';
348
+        try {
349
+            $response = $client->post($remoteDomain . $endpoint . $urlSuffix . '?format=' . self::RESPONSE_FORMAT, [
350
+                'body' => $fields,
351
+                'timeout' => 10,
352
+                'connect_timeout' => 10,
353
+            ]);
354
+            $result['result'] = $response->getBody();
355
+            $result['success'] = true;
356
+        } catch (\Exception $e) {
357
+            // if flat re-sharing is not supported by the remote server
358
+            // we re-throw the exception and fall back to the old behaviour.
359
+            // (flat re-shares has been introduced in Nextcloud 9.1)
360
+            if ($e->getCode() === Http::STATUS_INTERNAL_SERVER_ERROR) {
361
+                throw $e;
362
+            }
363
+        }
364
+
365
+        return $result;
366
+    }
367
+
368
+    /**
369
+     * send action regarding federated sharing to the remote server using the OCM API
370
+     *
371
+     * @param $remoteDomain
372
+     * @param $fields
373
+     * @param $action
374
+     *
375
+     * @return bool
376
+     */
377
+    protected function tryOCMEndPoint($remoteDomain, $fields, $action) {
378
+        switch ($action) {
379
+            case 'share':
380
+                $share = $this->cloudFederationFactory->getCloudFederationShare(
381
+                    $fields['shareWith'] . '@' . $remoteDomain,
382
+                    $fields['name'],
383
+                    '',
384
+                    $fields['remoteId'],
385
+                    $fields['ownerFederatedId'],
386
+                    $fields['owner'],
387
+                    $fields['sharedByFederatedId'],
388
+                    $fields['sharedBy'],
389
+                    $fields['token'],
390
+                    $fields['shareType'],
391
+                    'file'
392
+                );
393
+                return $this->federationProviderManager->sendShare($share);
394
+            case 'reshare':
395
+                // ask owner to reshare a file
396
+                $notification = $this->cloudFederationFactory->getCloudFederationNotification();
397
+                $notification->setMessage('REQUEST_RESHARE',
398
+                    'file',
399
+                    $fields['remoteId'],
400
+                    [
401
+                        'sharedSecret' => $fields['token'],
402
+                        'shareWith' => $fields['shareWith'],
403
+                        'senderId' => $fields['localId'],
404
+                        'shareType' => $fields['shareType'],
405
+                        'message' => 'Ask owner to reshare the file'
406
+                    ]
407
+                );
408
+                return $this->federationProviderManager->sendNotification($remoteDomain, $notification);
409
+            case 'unshare':
410
+                //owner unshares the file from the recipient again
411
+                $notification = $this->cloudFederationFactory->getCloudFederationNotification();
412
+                $notification->setMessage('SHARE_UNSHARED',
413
+                    'file',
414
+                    $fields['remoteId'],
415
+                    [
416
+                        'sharedSecret' => $fields['token'],
417
+                        'messgage' => 'file is no longer shared with you'
418
+                    ]
419
+                );
420
+                return $this->federationProviderManager->sendNotification($remoteDomain, $notification);
421
+            case 'reshare_undo':
422
+                // if a reshare was unshared we send the information to the initiator/owner
423
+                $notification = $this->cloudFederationFactory->getCloudFederationNotification();
424
+                $notification->setMessage('RESHARE_UNDO',
425
+                    'file',
426
+                    $fields['remoteId'],
427
+                    [
428
+                        'sharedSecret' => $fields['token'],
429
+                        'message' => 'reshare was revoked'
430
+                    ]
431
+                );
432
+                return $this->federationProviderManager->sendNotification($remoteDomain, $notification);
433
+        }
434
+
435
+        return false;
436
+    }
437 437
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -117,7 +117,7 @@  discard block
 block discarded – undo
117 117
 			$ocsStatus = isset($status['ocs']);
118 118
 			$ocsSuccess = $ocsStatus && ($status['ocs']['meta']['statuscode'] === 100 || $status['ocs']['meta']['statuscode'] === 200);
119 119
 
120
-			if ($result['success'] && (!$ocsStatus ||$ocsSuccess)) {
120
+			if ($result['success'] && (!$ocsStatus || $ocsSuccess)) {
121 121
 				$event = new FederatedShareAddedEvent($remote);
122 122
 				$this->eventDispatcher->dispatchTyped($event);
123 123
 				return true;
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
 			return [$ocmResult['token'], $ocmResult['providerId']];
160 160
 		}
161 161
 
162
-		$result = $this->tryLegacyEndPoint(rtrim($remote, '/'), '/' . $id . '/reshare', $fields);
162
+		$result = $this->tryLegacyEndPoint(rtrim($remote, '/'), '/'.$id.'/reshare', $fields);
163 163
 		$status = json_decode($result['result'], true);
164 164
 
165 165
 		$httpRequestSuccessful = $result['success'];
@@ -170,7 +170,7 @@  discard block
 block discarded – undo
170 170
 		if ($httpRequestSuccessful && $ocsCallSuccessful && $validToken && $validRemoteId) {
171 171
 			return [
172 172
 				$status['ocs']['data']['token'],
173
-				(int)$status['ocs']['data']['remoteId']
173
+				(int) $status['ocs']['data']['remoteId']
174 174
 			];
175 175
 		}
176 176
 
@@ -256,7 +256,7 @@  discard block
 block discarded – undo
256 256
 			$fields[$key] = $value;
257 257
 		}
258 258
 
259
-		$result = $this->tryHttpPostToShareEndpoint(rtrim($remote, '/'), '/' . $remoteId . '/' . $action, $fields, $action);
259
+		$result = $this->tryHttpPostToShareEndpoint(rtrim($remote, '/'), '/'.$remoteId.'/'.$action, $fields, $action);
260 260
 		$status = json_decode($result['result'], true);
261 261
 
262 262
 		if ($result['success'] &&
@@ -304,9 +304,9 @@  discard block
 block discarded – undo
304 304
 	 * @return array
305 305
 	 * @throws \Exception
306 306
 	 */
307
-	protected function tryHttpPostToShareEndpoint($remoteDomain, $urlSuffix, array $fields, $action="share") {
307
+	protected function tryHttpPostToShareEndpoint($remoteDomain, $urlSuffix, array $fields, $action = "share") {
308 308
 		if ($this->addressHandler->urlContainProtocol($remoteDomain) === false) {
309
-			$remoteDomain = 'https://' . $remoteDomain;
309
+			$remoteDomain = 'https://'.$remoteDomain;
310 310
 		}
311 311
 
312 312
 		$result = [
@@ -346,7 +346,7 @@  discard block
 block discarded – undo
346 346
 		$federationEndpoints = $this->discoveryService->discover($remoteDomain, 'FEDERATED_SHARING');
347 347
 		$endpoint = isset($federationEndpoints['share']) ? $federationEndpoints['share'] : '/ocs/v2.php/cloud/shares';
348 348
 		try {
349
-			$response = $client->post($remoteDomain . $endpoint . $urlSuffix . '?format=' . self::RESPONSE_FORMAT, [
349
+			$response = $client->post($remoteDomain.$endpoint.$urlSuffix.'?format='.self::RESPONSE_FORMAT, [
350 350
 				'body' => $fields,
351 351
 				'timeout' => 10,
352 352
 				'connect_timeout' => 10,
@@ -378,7 +378,7 @@  discard block
 block discarded – undo
378 378
 		switch ($action) {
379 379
 			case 'share':
380 380
 				$share = $this->cloudFederationFactory->getCloudFederationShare(
381
-					$fields['shareWith'] . '@' . $remoteDomain,
381
+					$fields['shareWith'].'@'.$remoteDomain,
382 382
 					$fields['name'],
383 383
 					'',
384 384
 					$fields['remoteId'],
Please login to merge, or discard this patch.
apps/federatedfilesharing/lib/Events/FederatedShareAddedEvent.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -35,20 +35,20 @@
 block discarded – undo
35 35
  */
36 36
 class FederatedShareAddedEvent extends Event {
37 37
 
38
-	/** @var string */
39
-	private $remote;
40
-
41
-	/**
42
-	 * @since 20.0.0
43
-	 */
44
-	public function __construct(string $remote) {
45
-		$this->remote = $remote;
46
-	}
47
-
48
-	/**
49
-	 * @since 20.0.0
50
-	 */
51
-	public function getRemote(): string {
52
-		return $this->remote;
53
-	}
38
+    /** @var string */
39
+    private $remote;
40
+
41
+    /**
42
+     * @since 20.0.0
43
+     */
44
+    public function __construct(string $remote) {
45
+        $this->remote = $remote;
46
+    }
47
+
48
+    /**
49
+     * @since 20.0.0
50
+     */
51
+    public function getRemote(): string {
52
+        return $this->remote;
53
+    }
54 54
 }
Please login to merge, or discard this patch.
apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php 1 patch
Indentation   +785 added lines, -785 removed lines patch added patch discarded remove patch
@@ -59,789 +59,789 @@
 block discarded – undo
59 59
 
60 60
 class CloudFederationProviderFiles implements ICloudFederationProvider {
61 61
 
62
-	/** @var IAppManager */
63
-	private $appManager;
64
-
65
-	/** @var FederatedShareProvider */
66
-	private $federatedShareProvider;
67
-
68
-	/** @var AddressHandler */
69
-	private $addressHandler;
70
-
71
-	/** @var ILogger */
72
-	private $logger;
73
-
74
-	/** @var IUserManager */
75
-	private $userManager;
76
-
77
-	/** @var IManager */
78
-	private $shareManager;
79
-
80
-	/** @var ICloudIdManager */
81
-	private $cloudIdManager;
82
-
83
-	/** @var IActivityManager */
84
-	private $activityManager;
85
-
86
-	/** @var INotificationManager */
87
-	private $notificationManager;
88
-
89
-	/** @var IURLGenerator */
90
-	private $urlGenerator;
91
-
92
-	/** @var ICloudFederationFactory */
93
-	private $cloudFederationFactory;
94
-
95
-	/** @var ICloudFederationProviderManager */
96
-	private $cloudFederationProviderManager;
97
-
98
-	/** @var IDBConnection */
99
-	private $connection;
100
-
101
-	/** @var IGroupManager */
102
-	private $groupManager;
103
-
104
-	/**
105
-	 * CloudFederationProvider constructor.
106
-	 *
107
-	 * @param IAppManager $appManager
108
-	 * @param FederatedShareProvider $federatedShareProvider
109
-	 * @param AddressHandler $addressHandler
110
-	 * @param ILogger $logger
111
-	 * @param IUserManager $userManager
112
-	 * @param IManager $shareManager
113
-	 * @param ICloudIdManager $cloudIdManager
114
-	 * @param IActivityManager $activityManager
115
-	 * @param INotificationManager $notificationManager
116
-	 * @param IURLGenerator $urlGenerator
117
-	 * @param ICloudFederationFactory $cloudFederationFactory
118
-	 * @param ICloudFederationProviderManager $cloudFederationProviderManager
119
-	 * @param IDBConnection $connection
120
-	 * @param IGroupManager $groupManager
121
-	 */
122
-	public function __construct(IAppManager $appManager,
123
-								FederatedShareProvider $federatedShareProvider,
124
-								AddressHandler $addressHandler,
125
-								ILogger $logger,
126
-								IUserManager $userManager,
127
-								IManager $shareManager,
128
-								ICloudIdManager $cloudIdManager,
129
-								IActivityManager $activityManager,
130
-								INotificationManager $notificationManager,
131
-								IURLGenerator $urlGenerator,
132
-								ICloudFederationFactory $cloudFederationFactory,
133
-								ICloudFederationProviderManager $cloudFederationProviderManager,
134
-								IDBConnection $connection,
135
-								IGroupManager $groupManager
136
-	) {
137
-		$this->appManager = $appManager;
138
-		$this->federatedShareProvider = $federatedShareProvider;
139
-		$this->addressHandler = $addressHandler;
140
-		$this->logger = $logger;
141
-		$this->userManager = $userManager;
142
-		$this->shareManager = $shareManager;
143
-		$this->cloudIdManager = $cloudIdManager;
144
-		$this->activityManager = $activityManager;
145
-		$this->notificationManager = $notificationManager;
146
-		$this->urlGenerator = $urlGenerator;
147
-		$this->cloudFederationFactory = $cloudFederationFactory;
148
-		$this->cloudFederationProviderManager = $cloudFederationProviderManager;
149
-		$this->connection = $connection;
150
-		$this->groupManager = $groupManager;
151
-	}
152
-
153
-
154
-
155
-	/**
156
-	 * @return string
157
-	 */
158
-	public function getShareType() {
159
-		return 'file';
160
-	}
161
-
162
-	/**
163
-	 * share received from another server
164
-	 *
165
-	 * @param ICloudFederationShare $share
166
-	 * @return string provider specific unique ID of the share
167
-	 *
168
-	 * @throws ProviderCouldNotAddShareException
169
-	 * @throws \OCP\AppFramework\QueryException
170
-	 * @throws \OC\HintException
171
-	 * @since 14.0.0
172
-	 */
173
-	public function shareReceived(ICloudFederationShare $share) {
174
-		if (!$this->isS2SEnabled(true)) {
175
-			throw new ProviderCouldNotAddShareException('Server does not support federated cloud sharing', '', Http::STATUS_SERVICE_UNAVAILABLE);
176
-		}
177
-
178
-		$protocol = $share->getProtocol();
179
-		if ($protocol['name'] !== 'webdav') {
180
-			throw new ProviderCouldNotAddShareException('Unsupported protocol for data exchange.', '', Http::STATUS_NOT_IMPLEMENTED);
181
-		}
182
-
183
-		list($ownerUid, $remote) = $this->addressHandler->splitUserRemote($share->getOwner());
184
-		// for backward compatibility make sure that the remote url stored in the
185
-		// database ends with a trailing slash
186
-		if (substr($remote, -1) !== '/') {
187
-			$remote = $remote . '/';
188
-		}
189
-
190
-		$token = $share->getShareSecret();
191
-		$name = $share->getResourceName();
192
-		$owner = $share->getOwnerDisplayName();
193
-		$sharedBy = $share->getSharedByDisplayName();
194
-		$shareWith = $share->getShareWith();
195
-		$remoteId = $share->getProviderId();
196
-		$sharedByFederatedId = $share->getSharedBy();
197
-		$ownerFederatedId = $share->getOwner();
198
-		$shareType = $this->mapShareTypeToNextcloud($share->getShareType());
199
-
200
-		// if no explicit information about the person who created the share was send
201
-		// we assume that the share comes from the owner
202
-		if ($sharedByFederatedId === null) {
203
-			$sharedBy = $owner;
204
-			$sharedByFederatedId = $ownerFederatedId;
205
-		}
206
-
207
-		if ($remote && $token && $name && $owner && $remoteId && $shareWith) {
208
-			if (!Util::isValidFileName($name)) {
209
-				throw new ProviderCouldNotAddShareException('The mountpoint name contains invalid characters.', '', Http::STATUS_BAD_REQUEST);
210
-			}
211
-
212
-			// FIXME this should be a method in the user management instead
213
-			if ($shareType === IShare::TYPE_USER) {
214
-				$this->logger->debug('shareWith before, ' . $shareWith, ['app' => 'files_sharing']);
215
-				Util::emitHook(
216
-					'\OCA\Files_Sharing\API\Server2Server',
217
-					'preLoginNameUsedAsUserName',
218
-					['uid' => &$shareWith]
219
-				);
220
-				$this->logger->debug('shareWith after, ' . $shareWith, ['app' => 'files_sharing']);
221
-
222
-				if (!$this->userManager->userExists($shareWith)) {
223
-					throw new ProviderCouldNotAddShareException('User does not exists', '',Http::STATUS_BAD_REQUEST);
224
-				}
225
-
226
-				\OC_Util::setupFS($shareWith);
227
-			}
228
-
229
-			if ($shareType === IShare::TYPE_GROUP && !$this->groupManager->groupExists($shareWith)) {
230
-				throw new ProviderCouldNotAddShareException('Group does not exists', '',Http::STATUS_BAD_REQUEST);
231
-			}
232
-
233
-			$externalManager = new \OCA\Files_Sharing\External\Manager(
234
-				\OC::$server->getDatabaseConnection(),
235
-				Filesystem::getMountManager(),
236
-				Filesystem::getLoader(),
237
-				\OC::$server->getHTTPClientService(),
238
-				\OC::$server->getNotificationManager(),
239
-				\OC::$server->query(\OCP\OCS\IDiscoveryService::class),
240
-				\OC::$server->getCloudFederationProviderManager(),
241
-				\OC::$server->getCloudFederationFactory(),
242
-				\OC::$server->getGroupManager(),
243
-				\OC::$server->getUserManager(),
244
-				$shareWith,
245
-				\OC::$server->query(IEventDispatcher::class)
246
-			);
247
-
248
-			try {
249
-				$externalManager->addShare($remote, $token, '', $name, $owner, $shareType,false, $shareWith, $remoteId);
250
-				$shareId = \OC::$server->getDatabaseConnection()->lastInsertId('*PREFIX*share_external');
251
-
252
-				if ($shareType === IShare::TYPE_USER) {
253
-					$event = $this->activityManager->generateEvent();
254
-					$event->setApp('files_sharing')
255
-						->setType('remote_share')
256
-						->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_RECEIVED, [$ownerFederatedId, trim($name, '/')])
257
-						->setAffectedUser($shareWith)
258
-						->setObject('remote_share', (int)$shareId, $name);
259
-					\OC::$server->getActivityManager()->publish($event);
260
-					$this->notifyAboutNewShare($shareWith, $shareId, $ownerFederatedId, $sharedByFederatedId, $name, $sharedBy, $owner);
261
-				} else {
262
-					$groupMembers = $this->groupManager->get($shareWith)->getUsers();
263
-					foreach ($groupMembers as $user) {
264
-						$event = $this->activityManager->generateEvent();
265
-						$event->setApp('files_sharing')
266
-							->setType('remote_share')
267
-							->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_RECEIVED, [$ownerFederatedId, trim($name, '/')])
268
-							->setAffectedUser($user->getUID())
269
-							->setObject('remote_share', (int)$shareId, $name);
270
-						\OC::$server->getActivityManager()->publish($event);
271
-						$this->notifyAboutNewShare($user->getUID(), $shareId, $ownerFederatedId, $sharedByFederatedId, $name, $sharedBy, $owner);
272
-					}
273
-				}
274
-				return $shareId;
275
-			} catch (\Exception $e) {
276
-				$this->logger->logException($e, [
277
-					'message' => 'Server can not add remote share.',
278
-					'level' => ILogger::ERROR,
279
-					'app' => 'files_sharing'
280
-				]);
281
-				throw new ProviderCouldNotAddShareException('internal server error, was not able to add share from ' . $remote, '', HTTP::STATUS_INTERNAL_SERVER_ERROR);
282
-			}
283
-		}
284
-
285
-		throw new ProviderCouldNotAddShareException('server can not add remote share, missing parameter', '', HTTP::STATUS_BAD_REQUEST);
286
-	}
287
-
288
-	/**
289
-	 * notification received from another server
290
-	 *
291
-	 * @param string $notificationType (e.g. SHARE_ACCEPTED)
292
-	 * @param string $providerId id of the share
293
-	 * @param array $notification payload of the notification
294
-	 * @return array data send back to the sender
295
-	 *
296
-	 * @throws ActionNotSupportedException
297
-	 * @throws AuthenticationFailedException
298
-	 * @throws BadRequestException
299
-	 * @throws \OC\HintException
300
-	 * @since 14.0.0
301
-	 */
302
-	public function notificationReceived($notificationType, $providerId, array $notification) {
303
-		switch ($notificationType) {
304
-			case 'SHARE_ACCEPTED':
305
-				return $this->shareAccepted($providerId, $notification);
306
-			case 'SHARE_DECLINED':
307
-				return $this->shareDeclined($providerId, $notification);
308
-			case 'SHARE_UNSHARED':
309
-				return $this->unshare($providerId, $notification);
310
-			case 'REQUEST_RESHARE':
311
-				return $this->reshareRequested($providerId, $notification);
312
-			case 'RESHARE_UNDO':
313
-				return $this->undoReshare($providerId, $notification);
314
-			case 'RESHARE_CHANGE_PERMISSION':
315
-				return $this->updateResharePermissions($providerId, $notification);
316
-		}
317
-
318
-
319
-		throw new BadRequestException([$notificationType]);
320
-	}
321
-
322
-	/**
323
-	 * map OCM share type (strings) to Nextcloud internal share types (integer)
324
-	 *
325
-	 * @param string $shareType
326
-	 * @return int
327
-	 */
328
-	private function mapShareTypeToNextcloud($shareType) {
329
-		$result = IShare::TYPE_USER;
330
-		if ($shareType === 'group') {
331
-			$result = IShare::TYPE_GROUP;
332
-		}
333
-
334
-		return $result;
335
-	}
336
-
337
-	/**
338
-	 * notify user about new federated share
339
-	 *
340
-	 * @param $shareWith
341
-	 * @param $shareId
342
-	 * @param $ownerFederatedId
343
-	 * @param $sharedByFederatedId
344
-	 * @param $name
345
-	 */
346
-	private function notifyAboutNewShare($shareWith, $shareId, $ownerFederatedId, $sharedByFederatedId, $name, $sharedBy, $owner) {
347
-		$notification = $this->notificationManager->createNotification();
348
-		$notification->setApp('files_sharing')
349
-			->setUser($shareWith)
350
-			->setDateTime(new \DateTime())
351
-			->setObject('remote_share', $shareId)
352
-			->setSubject('remote_share', [$ownerFederatedId, $sharedByFederatedId, trim($name, '/'), $sharedBy, $owner]);
353
-
354
-		$declineAction = $notification->createAction();
355
-		$declineAction->setLabel('decline')
356
-			->setLink($this->urlGenerator->getAbsoluteURL($this->urlGenerator->linkTo('', 'ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/' . $shareId)), 'DELETE');
357
-		$notification->addAction($declineAction);
358
-
359
-		$acceptAction = $notification->createAction();
360
-		$acceptAction->setLabel('accept')
361
-			->setLink($this->urlGenerator->getAbsoluteURL($this->urlGenerator->linkTo('', 'ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/' . $shareId)), 'POST');
362
-		$notification->addAction($acceptAction);
363
-
364
-		$this->notificationManager->notify($notification);
365
-	}
366
-
367
-	/**
368
-	 * process notification that the recipient accepted a share
369
-	 *
370
-	 * @param string $id
371
-	 * @param array $notification
372
-	 * @return array
373
-	 * @throws ActionNotSupportedException
374
-	 * @throws AuthenticationFailedException
375
-	 * @throws BadRequestException
376
-	 * @throws \OC\HintException
377
-	 */
378
-	private function shareAccepted($id, array $notification) {
379
-		if (!$this->isS2SEnabled()) {
380
-			throw new ActionNotSupportedException('Server does not support federated cloud sharing');
381
-		}
382
-
383
-		if (!isset($notification['sharedSecret'])) {
384
-			throw new BadRequestException(['sharedSecret']);
385
-		}
386
-
387
-		$token = $notification['sharedSecret'];
388
-
389
-		$share = $this->federatedShareProvider->getShareById($id);
390
-
391
-		$this->verifyShare($share, $token);
392
-		$this->executeAcceptShare($share);
393
-		if ($share->getShareOwner() !== $share->getSharedBy()) {
394
-			list(, $remote) = $this->addressHandler->splitUserRemote($share->getSharedBy());
395
-			$remoteId = $this->federatedShareProvider->getRemoteId($share);
396
-			$notification = $this->cloudFederationFactory->getCloudFederationNotification();
397
-			$notification->setMessage(
398
-				'SHARE_ACCEPTED',
399
-				'file',
400
-				$remoteId,
401
-				[
402
-					'sharedSecret' => $token,
403
-					'message' => 'Recipient accepted the re-share'
404
-				]
405
-
406
-			);
407
-			$this->cloudFederationProviderManager->sendNotification($remote, $notification);
408
-		}
409
-
410
-		return [];
411
-	}
412
-
413
-	/**
414
-	 * @param IShare $share
415
-	 * @throws ShareNotFound
416
-	 */
417
-	protected function executeAcceptShare(IShare $share) {
418
-		try {
419
-			$fileId = (int)$share->getNode()->getId();
420
-			list($file, $link) = $this->getFile($this->getCorrectUid($share), $fileId);
421
-		} catch (\Exception $e) {
422
-			throw new ShareNotFound();
423
-		}
424
-
425
-		$event = $this->activityManager->generateEvent();
426
-		$event->setApp('files_sharing')
427
-			->setType('remote_share')
428
-			->setAffectedUser($this->getCorrectUid($share))
429
-			->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_ACCEPTED, [$share->getSharedWith(), [$fileId => $file]])
430
-			->setObject('files', $fileId, $file)
431
-			->setLink($link);
432
-		$this->activityManager->publish($event);
433
-	}
434
-
435
-	/**
436
-	 * process notification that the recipient declined a share
437
-	 *
438
-	 * @param string $id
439
-	 * @param array $notification
440
-	 * @return array
441
-	 * @throws ActionNotSupportedException
442
-	 * @throws AuthenticationFailedException
443
-	 * @throws BadRequestException
444
-	 * @throws ShareNotFound
445
-	 * @throws \OC\HintException
446
-	 *
447
-	 */
448
-	protected function shareDeclined($id, array $notification) {
449
-		if (!$this->isS2SEnabled()) {
450
-			throw new ActionNotSupportedException('Server does not support federated cloud sharing');
451
-		}
452
-
453
-		if (!isset($notification['sharedSecret'])) {
454
-			throw new BadRequestException(['sharedSecret']);
455
-		}
456
-
457
-		$token = $notification['sharedSecret'];
458
-
459
-		$share = $this->federatedShareProvider->getShareById($id);
460
-
461
-		$this->verifyShare($share, $token);
462
-
463
-		if ($share->getShareOwner() !== $share->getSharedBy()) {
464
-			list(, $remote) = $this->addressHandler->splitUserRemote($share->getSharedBy());
465
-			$remoteId = $this->federatedShareProvider->getRemoteId($share);
466
-			$notification = $this->cloudFederationFactory->getCloudFederationNotification();
467
-			$notification->setMessage(
468
-				'SHARE_DECLINED',
469
-				'file',
470
-				$remoteId,
471
-				[
472
-					'sharedSecret' => $token,
473
-					'message' => 'Recipient declined the re-share'
474
-				]
475
-
476
-			);
477
-			$this->cloudFederationProviderManager->sendNotification($remote, $notification);
478
-		}
479
-
480
-		$this->executeDeclineShare($share);
481
-
482
-		return [];
483
-	}
484
-
485
-	/**
486
-	 * delete declined share and create a activity
487
-	 *
488
-	 * @param IShare $share
489
-	 * @throws ShareNotFound
490
-	 */
491
-	protected function executeDeclineShare(IShare $share) {
492
-		$this->federatedShareProvider->removeShareFromTable($share);
493
-
494
-		try {
495
-			$fileId = (int)$share->getNode()->getId();
496
-			list($file, $link) = $this->getFile($this->getCorrectUid($share), $fileId);
497
-		} catch (\Exception $e) {
498
-			throw new ShareNotFound();
499
-		}
500
-
501
-		$event = $this->activityManager->generateEvent();
502
-		$event->setApp('files_sharing')
503
-			->setType('remote_share')
504
-			->setAffectedUser($this->getCorrectUid($share))
505
-			->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_DECLINED, [$share->getSharedWith(), [$fileId => $file]])
506
-			->setObject('files', $fileId, $file)
507
-			->setLink($link);
508
-		$this->activityManager->publish($event);
509
-	}
510
-
511
-	/**
512
-	 * received the notification that the owner unshared a file from you
513
-	 *
514
-	 * @param string $id
515
-	 * @param array $notification
516
-	 * @return array
517
-	 * @throws AuthenticationFailedException
518
-	 * @throws BadRequestException
519
-	 */
520
-	private function undoReshare($id, array $notification) {
521
-		if (!isset($notification['sharedSecret'])) {
522
-			throw new BadRequestException(['sharedSecret']);
523
-		}
524
-		$token = $notification['sharedSecret'];
525
-
526
-		$share = $this->federatedShareProvider->getShareById($id);
527
-
528
-		$this->verifyShare($share, $token);
529
-		$this->federatedShareProvider->removeShareFromTable($share);
530
-		return [];
531
-	}
532
-
533
-	/**
534
-	 * unshare file from self
535
-	 *
536
-	 * @param string $id
537
-	 * @param array $notification
538
-	 * @return array
539
-	 * @throws ActionNotSupportedException
540
-	 * @throws BadRequestException
541
-	 */
542
-	private function unshare($id, array $notification) {
543
-		if (!$this->isS2SEnabled(true)) {
544
-			throw new ActionNotSupportedException("incoming shares disabled!");
545
-		}
546
-
547
-		if (!isset($notification['sharedSecret'])) {
548
-			throw new BadRequestException(['sharedSecret']);
549
-		}
550
-		$token = $notification['sharedSecret'];
551
-
552
-		$qb = $this->connection->getQueryBuilder();
553
-		$qb->select('*')
554
-			->from('share_external')
555
-			->where(
556
-				$qb->expr()->andX(
557
-					$qb->expr()->eq('remote_id', $qb->createNamedParameter($id)),
558
-					$qb->expr()->eq('share_token', $qb->createNamedParameter($token))
559
-				)
560
-			);
561
-
562
-		$result = $qb->execute();
563
-		$share = $result->fetch();
564
-		$result->closeCursor();
565
-
566
-		if ($token && $id && !empty($share)) {
567
-			$remote = $this->cleanupRemote($share['remote']);
568
-
569
-			$owner = $this->cloudIdManager->getCloudId($share['owner'], $remote);
570
-			$mountpoint = $share['mountpoint'];
571
-			$user = $share['user'];
572
-
573
-			$qb = $this->connection->getQueryBuilder();
574
-			$qb->delete('share_external')
575
-				->where(
576
-					$qb->expr()->andX(
577
-						$qb->expr()->eq('remote_id', $qb->createNamedParameter($id)),
578
-						$qb->expr()->eq('share_token', $qb->createNamedParameter($token))
579
-					)
580
-				);
581
-
582
-			$qb->execute();
583
-
584
-			// delete all child in case of a group share
585
-			$qb = $this->connection->getQueryBuilder();
586
-			$qb->delete('share_external')
587
-				->where($qb->expr()->eq('parent', $qb->createNamedParameter((int)$share['id'])));
588
-			$qb->execute();
589
-
590
-			if ((int)$share['share_type'] === IShare::TYPE_USER) {
591
-				if ($share['accepted']) {
592
-					$path = trim($mountpoint, '/');
593
-				} else {
594
-					$path = trim($share['name'], '/');
595
-				}
596
-				$notification = $this->notificationManager->createNotification();
597
-				$notification->setApp('files_sharing')
598
-					->setUser($share['user'])
599
-					->setObject('remote_share', (int)$share['id']);
600
-				$this->notificationManager->markProcessed($notification);
601
-
602
-				$event = $this->activityManager->generateEvent();
603
-				$event->setApp('files_sharing')
604
-					->setType('remote_share')
605
-					->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_UNSHARED, [$owner->getId(), $path])
606
-					->setAffectedUser($user)
607
-					->setObject('remote_share', (int)$share['id'], $path);
608
-				\OC::$server->getActivityManager()->publish($event);
609
-			}
610
-		}
611
-
612
-		return [];
613
-	}
614
-
615
-	private function cleanupRemote($remote) {
616
-		$remote = substr($remote, strpos($remote, '://') + 3);
617
-
618
-		return rtrim($remote, '/');
619
-	}
620
-
621
-	/**
622
-	 * recipient of a share request to re-share the file with another user
623
-	 *
624
-	 * @param string $id
625
-	 * @param array $notification
626
-	 * @return array
627
-	 * @throws AuthenticationFailedException
628
-	 * @throws BadRequestException
629
-	 * @throws ProviderCouldNotAddShareException
630
-	 * @throws ShareNotFound
631
-	 */
632
-	protected function reshareRequested($id, array $notification) {
633
-		if (!isset($notification['sharedSecret'])) {
634
-			throw new BadRequestException(['sharedSecret']);
635
-		}
636
-		$token = $notification['sharedSecret'];
637
-
638
-		if (!isset($notification['shareWith'])) {
639
-			throw new BadRequestException(['shareWith']);
640
-		}
641
-		$shareWith = $notification['shareWith'];
642
-
643
-		if (!isset($notification['senderId'])) {
644
-			throw new BadRequestException(['senderId']);
645
-		}
646
-		$senderId = $notification['senderId'];
647
-
648
-		$share = $this->federatedShareProvider->getShareById($id);
649
-		// don't allow to share a file back to the owner
650
-		try {
651
-			list($user, $remote) = $this->addressHandler->splitUserRemote($shareWith);
652
-			$owner = $share->getShareOwner();
653
-			$currentServer = $this->addressHandler->generateRemoteURL();
654
-			if ($this->addressHandler->compareAddresses($user, $remote, $owner, $currentServer)) {
655
-				throw new ProviderCouldNotAddShareException('Resharing back to the owner is not allowed: ' . $id);
656
-			}
657
-		} catch (\Exception $e) {
658
-			throw new ProviderCouldNotAddShareException($e->getMessage());
659
-		}
660
-
661
-		$this->verifyShare($share, $token);
662
-
663
-		// check if re-sharing is allowed
664
-		if ($share->getPermissions() & Constants::PERMISSION_SHARE) {
665
-			// the recipient of the initial share is now the initiator for the re-share
666
-			$share->setSharedBy($share->getSharedWith());
667
-			$share->setSharedWith($shareWith);
668
-			$result = $this->federatedShareProvider->create($share);
669
-			$this->federatedShareProvider->storeRemoteId((int)$result->getId(), $senderId);
670
-			return ['token' => $result->getToken(), 'providerId' => $result->getId()];
671
-		} else {
672
-			throw new ProviderCouldNotAddShareException('resharing not allowed for share: ' . $id);
673
-		}
674
-	}
675
-
676
-	/**
677
-	 * update permission of a re-share so that the share dialog shows the right
678
-	 * permission if the owner or the sender changes the permission
679
-	 *
680
-	 * @param string $id
681
-	 * @param array $notification
682
-	 * @return array
683
-	 * @throws AuthenticationFailedException
684
-	 * @throws BadRequestException
685
-	 */
686
-	protected function updateResharePermissions($id, array $notification) {
687
-		if (!isset($notification['sharedSecret'])) {
688
-			throw new BadRequestException(['sharedSecret']);
689
-		}
690
-		$token = $notification['sharedSecret'];
691
-
692
-		if (!isset($notification['permission'])) {
693
-			throw new BadRequestException(['permission']);
694
-		}
695
-		$ocmPermissions = $notification['permission'];
696
-
697
-		$share = $this->federatedShareProvider->getShareById($id);
698
-
699
-		$ncPermission = $this->ocmPermissions2ncPermissions($ocmPermissions);
700
-
701
-		$this->verifyShare($share, $token);
702
-		$this->updatePermissionsInDatabase($share, $ncPermission);
703
-
704
-		return [];
705
-	}
706
-
707
-	/**
708
-	 * translate OCM Permissions to Nextcloud permissions
709
-	 *
710
-	 * @param array $ocmPermissions
711
-	 * @return int
712
-	 * @throws BadRequestException
713
-	 */
714
-	protected function ocmPermissions2ncPermissions(array $ocmPermissions) {
715
-		$ncPermissions = 0;
716
-		foreach ($ocmPermissions as $permission) {
717
-			switch (strtolower($permission)) {
718
-				case 'read':
719
-					$ncPermissions += Constants::PERMISSION_READ;
720
-					break;
721
-				case 'write':
722
-					$ncPermissions += Constants::PERMISSION_CREATE + Constants::PERMISSION_UPDATE;
723
-					break;
724
-				case 'share':
725
-					$ncPermissions += Constants::PERMISSION_SHARE;
726
-					break;
727
-				default:
728
-					throw new BadRequestException(['permission']);
729
-			}
730
-		}
731
-
732
-		return $ncPermissions;
733
-	}
734
-
735
-	/**
736
-	 * update permissions in database
737
-	 *
738
-	 * @param IShare $share
739
-	 * @param int $permissions
740
-	 */
741
-	protected function updatePermissionsInDatabase(IShare $share, $permissions) {
742
-		$query = $this->connection->getQueryBuilder();
743
-		$query->update('share')
744
-			->where($query->expr()->eq('id', $query->createNamedParameter($share->getId())))
745
-			->set('permissions', $query->createNamedParameter($permissions))
746
-			->execute();
747
-	}
748
-
749
-
750
-	/**
751
-	 * get file
752
-	 *
753
-	 * @param string $user
754
-	 * @param int $fileSource
755
-	 * @return array with internal path of the file and a absolute link to it
756
-	 */
757
-	private function getFile($user, $fileSource) {
758
-		\OC_Util::setupFS($user);
759
-
760
-		try {
761
-			$file = Filesystem::getPath($fileSource);
762
-		} catch (NotFoundException $e) {
763
-			$file = null;
764
-		}
765
-		$args = Filesystem::is_dir($file) ? ['dir' => $file] : ['dir' => dirname($file), 'scrollto' => $file];
766
-		$link = Util::linkToAbsolute('files', 'index.php', $args);
767
-
768
-		return [$file, $link];
769
-	}
770
-
771
-	/**
772
-	 * check if we are the initiator or the owner of a re-share and return the correct UID
773
-	 *
774
-	 * @param IShare $share
775
-	 * @return string
776
-	 */
777
-	protected function getCorrectUid(IShare $share) {
778
-		if ($this->userManager->userExists($share->getShareOwner())) {
779
-			return $share->getShareOwner();
780
-		}
781
-
782
-		return $share->getSharedBy();
783
-	}
784
-
785
-
786
-
787
-	/**
788
-	 * check if we got the right share
789
-	 *
790
-	 * @param IShare $share
791
-	 * @param string $token
792
-	 * @return bool
793
-	 * @throws AuthenticationFailedException
794
-	 */
795
-	protected function verifyShare(IShare $share, $token) {
796
-		if (
797
-			$share->getShareType() === IShare::TYPE_REMOTE &&
798
-			$share->getToken() === $token
799
-		) {
800
-			return true;
801
-		}
802
-
803
-		if ($share->getShareType() === IShare::TYPE_CIRCLE) {
804
-			try {
805
-				$knownShare = $this->shareManager->getShareByToken($token);
806
-				if ($knownShare->getId() === $share->getId()) {
807
-					return true;
808
-				}
809
-			} catch (ShareNotFound $e) {
810
-			}
811
-		}
812
-
813
-		throw new AuthenticationFailedException();
814
-	}
815
-
816
-
817
-
818
-	/**
819
-	 * check if server-to-server sharing is enabled
820
-	 *
821
-	 * @param bool $incoming
822
-	 * @return bool
823
-	 */
824
-	private function isS2SEnabled($incoming = false) {
825
-		$result = $this->appManager->isEnabledForUser('files_sharing');
826
-
827
-		if ($incoming) {
828
-			$result = $result && $this->federatedShareProvider->isIncomingServer2serverShareEnabled();
829
-		} else {
830
-			$result = $result && $this->federatedShareProvider->isOutgoingServer2serverShareEnabled();
831
-		}
832
-
833
-		return $result;
834
-	}
835
-
836
-
837
-	/**
838
-	 * get the supported share types, e.g. "user", "group", etc.
839
-	 *
840
-	 * @return array
841
-	 *
842
-	 * @since 14.0.0
843
-	 */
844
-	public function getSupportedShareTypes() {
845
-		return ['user', 'group'];
846
-	}
62
+    /** @var IAppManager */
63
+    private $appManager;
64
+
65
+    /** @var FederatedShareProvider */
66
+    private $federatedShareProvider;
67
+
68
+    /** @var AddressHandler */
69
+    private $addressHandler;
70
+
71
+    /** @var ILogger */
72
+    private $logger;
73
+
74
+    /** @var IUserManager */
75
+    private $userManager;
76
+
77
+    /** @var IManager */
78
+    private $shareManager;
79
+
80
+    /** @var ICloudIdManager */
81
+    private $cloudIdManager;
82
+
83
+    /** @var IActivityManager */
84
+    private $activityManager;
85
+
86
+    /** @var INotificationManager */
87
+    private $notificationManager;
88
+
89
+    /** @var IURLGenerator */
90
+    private $urlGenerator;
91
+
92
+    /** @var ICloudFederationFactory */
93
+    private $cloudFederationFactory;
94
+
95
+    /** @var ICloudFederationProviderManager */
96
+    private $cloudFederationProviderManager;
97
+
98
+    /** @var IDBConnection */
99
+    private $connection;
100
+
101
+    /** @var IGroupManager */
102
+    private $groupManager;
103
+
104
+    /**
105
+     * CloudFederationProvider constructor.
106
+     *
107
+     * @param IAppManager $appManager
108
+     * @param FederatedShareProvider $federatedShareProvider
109
+     * @param AddressHandler $addressHandler
110
+     * @param ILogger $logger
111
+     * @param IUserManager $userManager
112
+     * @param IManager $shareManager
113
+     * @param ICloudIdManager $cloudIdManager
114
+     * @param IActivityManager $activityManager
115
+     * @param INotificationManager $notificationManager
116
+     * @param IURLGenerator $urlGenerator
117
+     * @param ICloudFederationFactory $cloudFederationFactory
118
+     * @param ICloudFederationProviderManager $cloudFederationProviderManager
119
+     * @param IDBConnection $connection
120
+     * @param IGroupManager $groupManager
121
+     */
122
+    public function __construct(IAppManager $appManager,
123
+                                FederatedShareProvider $federatedShareProvider,
124
+                                AddressHandler $addressHandler,
125
+                                ILogger $logger,
126
+                                IUserManager $userManager,
127
+                                IManager $shareManager,
128
+                                ICloudIdManager $cloudIdManager,
129
+                                IActivityManager $activityManager,
130
+                                INotificationManager $notificationManager,
131
+                                IURLGenerator $urlGenerator,
132
+                                ICloudFederationFactory $cloudFederationFactory,
133
+                                ICloudFederationProviderManager $cloudFederationProviderManager,
134
+                                IDBConnection $connection,
135
+                                IGroupManager $groupManager
136
+    ) {
137
+        $this->appManager = $appManager;
138
+        $this->federatedShareProvider = $federatedShareProvider;
139
+        $this->addressHandler = $addressHandler;
140
+        $this->logger = $logger;
141
+        $this->userManager = $userManager;
142
+        $this->shareManager = $shareManager;
143
+        $this->cloudIdManager = $cloudIdManager;
144
+        $this->activityManager = $activityManager;
145
+        $this->notificationManager = $notificationManager;
146
+        $this->urlGenerator = $urlGenerator;
147
+        $this->cloudFederationFactory = $cloudFederationFactory;
148
+        $this->cloudFederationProviderManager = $cloudFederationProviderManager;
149
+        $this->connection = $connection;
150
+        $this->groupManager = $groupManager;
151
+    }
152
+
153
+
154
+
155
+    /**
156
+     * @return string
157
+     */
158
+    public function getShareType() {
159
+        return 'file';
160
+    }
161
+
162
+    /**
163
+     * share received from another server
164
+     *
165
+     * @param ICloudFederationShare $share
166
+     * @return string provider specific unique ID of the share
167
+     *
168
+     * @throws ProviderCouldNotAddShareException
169
+     * @throws \OCP\AppFramework\QueryException
170
+     * @throws \OC\HintException
171
+     * @since 14.0.0
172
+     */
173
+    public function shareReceived(ICloudFederationShare $share) {
174
+        if (!$this->isS2SEnabled(true)) {
175
+            throw new ProviderCouldNotAddShareException('Server does not support federated cloud sharing', '', Http::STATUS_SERVICE_UNAVAILABLE);
176
+        }
177
+
178
+        $protocol = $share->getProtocol();
179
+        if ($protocol['name'] !== 'webdav') {
180
+            throw new ProviderCouldNotAddShareException('Unsupported protocol for data exchange.', '', Http::STATUS_NOT_IMPLEMENTED);
181
+        }
182
+
183
+        list($ownerUid, $remote) = $this->addressHandler->splitUserRemote($share->getOwner());
184
+        // for backward compatibility make sure that the remote url stored in the
185
+        // database ends with a trailing slash
186
+        if (substr($remote, -1) !== '/') {
187
+            $remote = $remote . '/';
188
+        }
189
+
190
+        $token = $share->getShareSecret();
191
+        $name = $share->getResourceName();
192
+        $owner = $share->getOwnerDisplayName();
193
+        $sharedBy = $share->getSharedByDisplayName();
194
+        $shareWith = $share->getShareWith();
195
+        $remoteId = $share->getProviderId();
196
+        $sharedByFederatedId = $share->getSharedBy();
197
+        $ownerFederatedId = $share->getOwner();
198
+        $shareType = $this->mapShareTypeToNextcloud($share->getShareType());
199
+
200
+        // if no explicit information about the person who created the share was send
201
+        // we assume that the share comes from the owner
202
+        if ($sharedByFederatedId === null) {
203
+            $sharedBy = $owner;
204
+            $sharedByFederatedId = $ownerFederatedId;
205
+        }
206
+
207
+        if ($remote && $token && $name && $owner && $remoteId && $shareWith) {
208
+            if (!Util::isValidFileName($name)) {
209
+                throw new ProviderCouldNotAddShareException('The mountpoint name contains invalid characters.', '', Http::STATUS_BAD_REQUEST);
210
+            }
211
+
212
+            // FIXME this should be a method in the user management instead
213
+            if ($shareType === IShare::TYPE_USER) {
214
+                $this->logger->debug('shareWith before, ' . $shareWith, ['app' => 'files_sharing']);
215
+                Util::emitHook(
216
+                    '\OCA\Files_Sharing\API\Server2Server',
217
+                    'preLoginNameUsedAsUserName',
218
+                    ['uid' => &$shareWith]
219
+                );
220
+                $this->logger->debug('shareWith after, ' . $shareWith, ['app' => 'files_sharing']);
221
+
222
+                if (!$this->userManager->userExists($shareWith)) {
223
+                    throw new ProviderCouldNotAddShareException('User does not exists', '',Http::STATUS_BAD_REQUEST);
224
+                }
225
+
226
+                \OC_Util::setupFS($shareWith);
227
+            }
228
+
229
+            if ($shareType === IShare::TYPE_GROUP && !$this->groupManager->groupExists($shareWith)) {
230
+                throw new ProviderCouldNotAddShareException('Group does not exists', '',Http::STATUS_BAD_REQUEST);
231
+            }
232
+
233
+            $externalManager = new \OCA\Files_Sharing\External\Manager(
234
+                \OC::$server->getDatabaseConnection(),
235
+                Filesystem::getMountManager(),
236
+                Filesystem::getLoader(),
237
+                \OC::$server->getHTTPClientService(),
238
+                \OC::$server->getNotificationManager(),
239
+                \OC::$server->query(\OCP\OCS\IDiscoveryService::class),
240
+                \OC::$server->getCloudFederationProviderManager(),
241
+                \OC::$server->getCloudFederationFactory(),
242
+                \OC::$server->getGroupManager(),
243
+                \OC::$server->getUserManager(),
244
+                $shareWith,
245
+                \OC::$server->query(IEventDispatcher::class)
246
+            );
247
+
248
+            try {
249
+                $externalManager->addShare($remote, $token, '', $name, $owner, $shareType,false, $shareWith, $remoteId);
250
+                $shareId = \OC::$server->getDatabaseConnection()->lastInsertId('*PREFIX*share_external');
251
+
252
+                if ($shareType === IShare::TYPE_USER) {
253
+                    $event = $this->activityManager->generateEvent();
254
+                    $event->setApp('files_sharing')
255
+                        ->setType('remote_share')
256
+                        ->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_RECEIVED, [$ownerFederatedId, trim($name, '/')])
257
+                        ->setAffectedUser($shareWith)
258
+                        ->setObject('remote_share', (int)$shareId, $name);
259
+                    \OC::$server->getActivityManager()->publish($event);
260
+                    $this->notifyAboutNewShare($shareWith, $shareId, $ownerFederatedId, $sharedByFederatedId, $name, $sharedBy, $owner);
261
+                } else {
262
+                    $groupMembers = $this->groupManager->get($shareWith)->getUsers();
263
+                    foreach ($groupMembers as $user) {
264
+                        $event = $this->activityManager->generateEvent();
265
+                        $event->setApp('files_sharing')
266
+                            ->setType('remote_share')
267
+                            ->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_RECEIVED, [$ownerFederatedId, trim($name, '/')])
268
+                            ->setAffectedUser($user->getUID())
269
+                            ->setObject('remote_share', (int)$shareId, $name);
270
+                        \OC::$server->getActivityManager()->publish($event);
271
+                        $this->notifyAboutNewShare($user->getUID(), $shareId, $ownerFederatedId, $sharedByFederatedId, $name, $sharedBy, $owner);
272
+                    }
273
+                }
274
+                return $shareId;
275
+            } catch (\Exception $e) {
276
+                $this->logger->logException($e, [
277
+                    'message' => 'Server can not add remote share.',
278
+                    'level' => ILogger::ERROR,
279
+                    'app' => 'files_sharing'
280
+                ]);
281
+                throw new ProviderCouldNotAddShareException('internal server error, was not able to add share from ' . $remote, '', HTTP::STATUS_INTERNAL_SERVER_ERROR);
282
+            }
283
+        }
284
+
285
+        throw new ProviderCouldNotAddShareException('server can not add remote share, missing parameter', '', HTTP::STATUS_BAD_REQUEST);
286
+    }
287
+
288
+    /**
289
+     * notification received from another server
290
+     *
291
+     * @param string $notificationType (e.g. SHARE_ACCEPTED)
292
+     * @param string $providerId id of the share
293
+     * @param array $notification payload of the notification
294
+     * @return array data send back to the sender
295
+     *
296
+     * @throws ActionNotSupportedException
297
+     * @throws AuthenticationFailedException
298
+     * @throws BadRequestException
299
+     * @throws \OC\HintException
300
+     * @since 14.0.0
301
+     */
302
+    public function notificationReceived($notificationType, $providerId, array $notification) {
303
+        switch ($notificationType) {
304
+            case 'SHARE_ACCEPTED':
305
+                return $this->shareAccepted($providerId, $notification);
306
+            case 'SHARE_DECLINED':
307
+                return $this->shareDeclined($providerId, $notification);
308
+            case 'SHARE_UNSHARED':
309
+                return $this->unshare($providerId, $notification);
310
+            case 'REQUEST_RESHARE':
311
+                return $this->reshareRequested($providerId, $notification);
312
+            case 'RESHARE_UNDO':
313
+                return $this->undoReshare($providerId, $notification);
314
+            case 'RESHARE_CHANGE_PERMISSION':
315
+                return $this->updateResharePermissions($providerId, $notification);
316
+        }
317
+
318
+
319
+        throw new BadRequestException([$notificationType]);
320
+    }
321
+
322
+    /**
323
+     * map OCM share type (strings) to Nextcloud internal share types (integer)
324
+     *
325
+     * @param string $shareType
326
+     * @return int
327
+     */
328
+    private function mapShareTypeToNextcloud($shareType) {
329
+        $result = IShare::TYPE_USER;
330
+        if ($shareType === 'group') {
331
+            $result = IShare::TYPE_GROUP;
332
+        }
333
+
334
+        return $result;
335
+    }
336
+
337
+    /**
338
+     * notify user about new federated share
339
+     *
340
+     * @param $shareWith
341
+     * @param $shareId
342
+     * @param $ownerFederatedId
343
+     * @param $sharedByFederatedId
344
+     * @param $name
345
+     */
346
+    private function notifyAboutNewShare($shareWith, $shareId, $ownerFederatedId, $sharedByFederatedId, $name, $sharedBy, $owner) {
347
+        $notification = $this->notificationManager->createNotification();
348
+        $notification->setApp('files_sharing')
349
+            ->setUser($shareWith)
350
+            ->setDateTime(new \DateTime())
351
+            ->setObject('remote_share', $shareId)
352
+            ->setSubject('remote_share', [$ownerFederatedId, $sharedByFederatedId, trim($name, '/'), $sharedBy, $owner]);
353
+
354
+        $declineAction = $notification->createAction();
355
+        $declineAction->setLabel('decline')
356
+            ->setLink($this->urlGenerator->getAbsoluteURL($this->urlGenerator->linkTo('', 'ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/' . $shareId)), 'DELETE');
357
+        $notification->addAction($declineAction);
358
+
359
+        $acceptAction = $notification->createAction();
360
+        $acceptAction->setLabel('accept')
361
+            ->setLink($this->urlGenerator->getAbsoluteURL($this->urlGenerator->linkTo('', 'ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/' . $shareId)), 'POST');
362
+        $notification->addAction($acceptAction);
363
+
364
+        $this->notificationManager->notify($notification);
365
+    }
366
+
367
+    /**
368
+     * process notification that the recipient accepted a share
369
+     *
370
+     * @param string $id
371
+     * @param array $notification
372
+     * @return array
373
+     * @throws ActionNotSupportedException
374
+     * @throws AuthenticationFailedException
375
+     * @throws BadRequestException
376
+     * @throws \OC\HintException
377
+     */
378
+    private function shareAccepted($id, array $notification) {
379
+        if (!$this->isS2SEnabled()) {
380
+            throw new ActionNotSupportedException('Server does not support federated cloud sharing');
381
+        }
382
+
383
+        if (!isset($notification['sharedSecret'])) {
384
+            throw new BadRequestException(['sharedSecret']);
385
+        }
386
+
387
+        $token = $notification['sharedSecret'];
388
+
389
+        $share = $this->federatedShareProvider->getShareById($id);
390
+
391
+        $this->verifyShare($share, $token);
392
+        $this->executeAcceptShare($share);
393
+        if ($share->getShareOwner() !== $share->getSharedBy()) {
394
+            list(, $remote) = $this->addressHandler->splitUserRemote($share->getSharedBy());
395
+            $remoteId = $this->federatedShareProvider->getRemoteId($share);
396
+            $notification = $this->cloudFederationFactory->getCloudFederationNotification();
397
+            $notification->setMessage(
398
+                'SHARE_ACCEPTED',
399
+                'file',
400
+                $remoteId,
401
+                [
402
+                    'sharedSecret' => $token,
403
+                    'message' => 'Recipient accepted the re-share'
404
+                ]
405
+
406
+            );
407
+            $this->cloudFederationProviderManager->sendNotification($remote, $notification);
408
+        }
409
+
410
+        return [];
411
+    }
412
+
413
+    /**
414
+     * @param IShare $share
415
+     * @throws ShareNotFound
416
+     */
417
+    protected function executeAcceptShare(IShare $share) {
418
+        try {
419
+            $fileId = (int)$share->getNode()->getId();
420
+            list($file, $link) = $this->getFile($this->getCorrectUid($share), $fileId);
421
+        } catch (\Exception $e) {
422
+            throw new ShareNotFound();
423
+        }
424
+
425
+        $event = $this->activityManager->generateEvent();
426
+        $event->setApp('files_sharing')
427
+            ->setType('remote_share')
428
+            ->setAffectedUser($this->getCorrectUid($share))
429
+            ->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_ACCEPTED, [$share->getSharedWith(), [$fileId => $file]])
430
+            ->setObject('files', $fileId, $file)
431
+            ->setLink($link);
432
+        $this->activityManager->publish($event);
433
+    }
434
+
435
+    /**
436
+     * process notification that the recipient declined a share
437
+     *
438
+     * @param string $id
439
+     * @param array $notification
440
+     * @return array
441
+     * @throws ActionNotSupportedException
442
+     * @throws AuthenticationFailedException
443
+     * @throws BadRequestException
444
+     * @throws ShareNotFound
445
+     * @throws \OC\HintException
446
+     *
447
+     */
448
+    protected function shareDeclined($id, array $notification) {
449
+        if (!$this->isS2SEnabled()) {
450
+            throw new ActionNotSupportedException('Server does not support federated cloud sharing');
451
+        }
452
+
453
+        if (!isset($notification['sharedSecret'])) {
454
+            throw new BadRequestException(['sharedSecret']);
455
+        }
456
+
457
+        $token = $notification['sharedSecret'];
458
+
459
+        $share = $this->federatedShareProvider->getShareById($id);
460
+
461
+        $this->verifyShare($share, $token);
462
+
463
+        if ($share->getShareOwner() !== $share->getSharedBy()) {
464
+            list(, $remote) = $this->addressHandler->splitUserRemote($share->getSharedBy());
465
+            $remoteId = $this->federatedShareProvider->getRemoteId($share);
466
+            $notification = $this->cloudFederationFactory->getCloudFederationNotification();
467
+            $notification->setMessage(
468
+                'SHARE_DECLINED',
469
+                'file',
470
+                $remoteId,
471
+                [
472
+                    'sharedSecret' => $token,
473
+                    'message' => 'Recipient declined the re-share'
474
+                ]
475
+
476
+            );
477
+            $this->cloudFederationProviderManager->sendNotification($remote, $notification);
478
+        }
479
+
480
+        $this->executeDeclineShare($share);
481
+
482
+        return [];
483
+    }
484
+
485
+    /**
486
+     * delete declined share and create a activity
487
+     *
488
+     * @param IShare $share
489
+     * @throws ShareNotFound
490
+     */
491
+    protected function executeDeclineShare(IShare $share) {
492
+        $this->federatedShareProvider->removeShareFromTable($share);
493
+
494
+        try {
495
+            $fileId = (int)$share->getNode()->getId();
496
+            list($file, $link) = $this->getFile($this->getCorrectUid($share), $fileId);
497
+        } catch (\Exception $e) {
498
+            throw new ShareNotFound();
499
+        }
500
+
501
+        $event = $this->activityManager->generateEvent();
502
+        $event->setApp('files_sharing')
503
+            ->setType('remote_share')
504
+            ->setAffectedUser($this->getCorrectUid($share))
505
+            ->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_DECLINED, [$share->getSharedWith(), [$fileId => $file]])
506
+            ->setObject('files', $fileId, $file)
507
+            ->setLink($link);
508
+        $this->activityManager->publish($event);
509
+    }
510
+
511
+    /**
512
+     * received the notification that the owner unshared a file from you
513
+     *
514
+     * @param string $id
515
+     * @param array $notification
516
+     * @return array
517
+     * @throws AuthenticationFailedException
518
+     * @throws BadRequestException
519
+     */
520
+    private function undoReshare($id, array $notification) {
521
+        if (!isset($notification['sharedSecret'])) {
522
+            throw new BadRequestException(['sharedSecret']);
523
+        }
524
+        $token = $notification['sharedSecret'];
525
+
526
+        $share = $this->federatedShareProvider->getShareById($id);
527
+
528
+        $this->verifyShare($share, $token);
529
+        $this->federatedShareProvider->removeShareFromTable($share);
530
+        return [];
531
+    }
532
+
533
+    /**
534
+     * unshare file from self
535
+     *
536
+     * @param string $id
537
+     * @param array $notification
538
+     * @return array
539
+     * @throws ActionNotSupportedException
540
+     * @throws BadRequestException
541
+     */
542
+    private function unshare($id, array $notification) {
543
+        if (!$this->isS2SEnabled(true)) {
544
+            throw new ActionNotSupportedException("incoming shares disabled!");
545
+        }
546
+
547
+        if (!isset($notification['sharedSecret'])) {
548
+            throw new BadRequestException(['sharedSecret']);
549
+        }
550
+        $token = $notification['sharedSecret'];
551
+
552
+        $qb = $this->connection->getQueryBuilder();
553
+        $qb->select('*')
554
+            ->from('share_external')
555
+            ->where(
556
+                $qb->expr()->andX(
557
+                    $qb->expr()->eq('remote_id', $qb->createNamedParameter($id)),
558
+                    $qb->expr()->eq('share_token', $qb->createNamedParameter($token))
559
+                )
560
+            );
561
+
562
+        $result = $qb->execute();
563
+        $share = $result->fetch();
564
+        $result->closeCursor();
565
+
566
+        if ($token && $id && !empty($share)) {
567
+            $remote = $this->cleanupRemote($share['remote']);
568
+
569
+            $owner = $this->cloudIdManager->getCloudId($share['owner'], $remote);
570
+            $mountpoint = $share['mountpoint'];
571
+            $user = $share['user'];
572
+
573
+            $qb = $this->connection->getQueryBuilder();
574
+            $qb->delete('share_external')
575
+                ->where(
576
+                    $qb->expr()->andX(
577
+                        $qb->expr()->eq('remote_id', $qb->createNamedParameter($id)),
578
+                        $qb->expr()->eq('share_token', $qb->createNamedParameter($token))
579
+                    )
580
+                );
581
+
582
+            $qb->execute();
583
+
584
+            // delete all child in case of a group share
585
+            $qb = $this->connection->getQueryBuilder();
586
+            $qb->delete('share_external')
587
+                ->where($qb->expr()->eq('parent', $qb->createNamedParameter((int)$share['id'])));
588
+            $qb->execute();
589
+
590
+            if ((int)$share['share_type'] === IShare::TYPE_USER) {
591
+                if ($share['accepted']) {
592
+                    $path = trim($mountpoint, '/');
593
+                } else {
594
+                    $path = trim($share['name'], '/');
595
+                }
596
+                $notification = $this->notificationManager->createNotification();
597
+                $notification->setApp('files_sharing')
598
+                    ->setUser($share['user'])
599
+                    ->setObject('remote_share', (int)$share['id']);
600
+                $this->notificationManager->markProcessed($notification);
601
+
602
+                $event = $this->activityManager->generateEvent();
603
+                $event->setApp('files_sharing')
604
+                    ->setType('remote_share')
605
+                    ->setSubject(RemoteShares::SUBJECT_REMOTE_SHARE_UNSHARED, [$owner->getId(), $path])
606
+                    ->setAffectedUser($user)
607
+                    ->setObject('remote_share', (int)$share['id'], $path);
608
+                \OC::$server->getActivityManager()->publish($event);
609
+            }
610
+        }
611
+
612
+        return [];
613
+    }
614
+
615
+    private function cleanupRemote($remote) {
616
+        $remote = substr($remote, strpos($remote, '://') + 3);
617
+
618
+        return rtrim($remote, '/');
619
+    }
620
+
621
+    /**
622
+     * recipient of a share request to re-share the file with another user
623
+     *
624
+     * @param string $id
625
+     * @param array $notification
626
+     * @return array
627
+     * @throws AuthenticationFailedException
628
+     * @throws BadRequestException
629
+     * @throws ProviderCouldNotAddShareException
630
+     * @throws ShareNotFound
631
+     */
632
+    protected function reshareRequested($id, array $notification) {
633
+        if (!isset($notification['sharedSecret'])) {
634
+            throw new BadRequestException(['sharedSecret']);
635
+        }
636
+        $token = $notification['sharedSecret'];
637
+
638
+        if (!isset($notification['shareWith'])) {
639
+            throw new BadRequestException(['shareWith']);
640
+        }
641
+        $shareWith = $notification['shareWith'];
642
+
643
+        if (!isset($notification['senderId'])) {
644
+            throw new BadRequestException(['senderId']);
645
+        }
646
+        $senderId = $notification['senderId'];
647
+
648
+        $share = $this->federatedShareProvider->getShareById($id);
649
+        // don't allow to share a file back to the owner
650
+        try {
651
+            list($user, $remote) = $this->addressHandler->splitUserRemote($shareWith);
652
+            $owner = $share->getShareOwner();
653
+            $currentServer = $this->addressHandler->generateRemoteURL();
654
+            if ($this->addressHandler->compareAddresses($user, $remote, $owner, $currentServer)) {
655
+                throw new ProviderCouldNotAddShareException('Resharing back to the owner is not allowed: ' . $id);
656
+            }
657
+        } catch (\Exception $e) {
658
+            throw new ProviderCouldNotAddShareException($e->getMessage());
659
+        }
660
+
661
+        $this->verifyShare($share, $token);
662
+
663
+        // check if re-sharing is allowed
664
+        if ($share->getPermissions() & Constants::PERMISSION_SHARE) {
665
+            // the recipient of the initial share is now the initiator for the re-share
666
+            $share->setSharedBy($share->getSharedWith());
667
+            $share->setSharedWith($shareWith);
668
+            $result = $this->federatedShareProvider->create($share);
669
+            $this->federatedShareProvider->storeRemoteId((int)$result->getId(), $senderId);
670
+            return ['token' => $result->getToken(), 'providerId' => $result->getId()];
671
+        } else {
672
+            throw new ProviderCouldNotAddShareException('resharing not allowed for share: ' . $id);
673
+        }
674
+    }
675
+
676
+    /**
677
+     * update permission of a re-share so that the share dialog shows the right
678
+     * permission if the owner or the sender changes the permission
679
+     *
680
+     * @param string $id
681
+     * @param array $notification
682
+     * @return array
683
+     * @throws AuthenticationFailedException
684
+     * @throws BadRequestException
685
+     */
686
+    protected function updateResharePermissions($id, array $notification) {
687
+        if (!isset($notification['sharedSecret'])) {
688
+            throw new BadRequestException(['sharedSecret']);
689
+        }
690
+        $token = $notification['sharedSecret'];
691
+
692
+        if (!isset($notification['permission'])) {
693
+            throw new BadRequestException(['permission']);
694
+        }
695
+        $ocmPermissions = $notification['permission'];
696
+
697
+        $share = $this->federatedShareProvider->getShareById($id);
698
+
699
+        $ncPermission = $this->ocmPermissions2ncPermissions($ocmPermissions);
700
+
701
+        $this->verifyShare($share, $token);
702
+        $this->updatePermissionsInDatabase($share, $ncPermission);
703
+
704
+        return [];
705
+    }
706
+
707
+    /**
708
+     * translate OCM Permissions to Nextcloud permissions
709
+     *
710
+     * @param array $ocmPermissions
711
+     * @return int
712
+     * @throws BadRequestException
713
+     */
714
+    protected function ocmPermissions2ncPermissions(array $ocmPermissions) {
715
+        $ncPermissions = 0;
716
+        foreach ($ocmPermissions as $permission) {
717
+            switch (strtolower($permission)) {
718
+                case 'read':
719
+                    $ncPermissions += Constants::PERMISSION_READ;
720
+                    break;
721
+                case 'write':
722
+                    $ncPermissions += Constants::PERMISSION_CREATE + Constants::PERMISSION_UPDATE;
723
+                    break;
724
+                case 'share':
725
+                    $ncPermissions += Constants::PERMISSION_SHARE;
726
+                    break;
727
+                default:
728
+                    throw new BadRequestException(['permission']);
729
+            }
730
+        }
731
+
732
+        return $ncPermissions;
733
+    }
734
+
735
+    /**
736
+     * update permissions in database
737
+     *
738
+     * @param IShare $share
739
+     * @param int $permissions
740
+     */
741
+    protected function updatePermissionsInDatabase(IShare $share, $permissions) {
742
+        $query = $this->connection->getQueryBuilder();
743
+        $query->update('share')
744
+            ->where($query->expr()->eq('id', $query->createNamedParameter($share->getId())))
745
+            ->set('permissions', $query->createNamedParameter($permissions))
746
+            ->execute();
747
+    }
748
+
749
+
750
+    /**
751
+     * get file
752
+     *
753
+     * @param string $user
754
+     * @param int $fileSource
755
+     * @return array with internal path of the file and a absolute link to it
756
+     */
757
+    private function getFile($user, $fileSource) {
758
+        \OC_Util::setupFS($user);
759
+
760
+        try {
761
+            $file = Filesystem::getPath($fileSource);
762
+        } catch (NotFoundException $e) {
763
+            $file = null;
764
+        }
765
+        $args = Filesystem::is_dir($file) ? ['dir' => $file] : ['dir' => dirname($file), 'scrollto' => $file];
766
+        $link = Util::linkToAbsolute('files', 'index.php', $args);
767
+
768
+        return [$file, $link];
769
+    }
770
+
771
+    /**
772
+     * check if we are the initiator or the owner of a re-share and return the correct UID
773
+     *
774
+     * @param IShare $share
775
+     * @return string
776
+     */
777
+    protected function getCorrectUid(IShare $share) {
778
+        if ($this->userManager->userExists($share->getShareOwner())) {
779
+            return $share->getShareOwner();
780
+        }
781
+
782
+        return $share->getSharedBy();
783
+    }
784
+
785
+
786
+
787
+    /**
788
+     * check if we got the right share
789
+     *
790
+     * @param IShare $share
791
+     * @param string $token
792
+     * @return bool
793
+     * @throws AuthenticationFailedException
794
+     */
795
+    protected function verifyShare(IShare $share, $token) {
796
+        if (
797
+            $share->getShareType() === IShare::TYPE_REMOTE &&
798
+            $share->getToken() === $token
799
+        ) {
800
+            return true;
801
+        }
802
+
803
+        if ($share->getShareType() === IShare::TYPE_CIRCLE) {
804
+            try {
805
+                $knownShare = $this->shareManager->getShareByToken($token);
806
+                if ($knownShare->getId() === $share->getId()) {
807
+                    return true;
808
+                }
809
+            } catch (ShareNotFound $e) {
810
+            }
811
+        }
812
+
813
+        throw new AuthenticationFailedException();
814
+    }
815
+
816
+
817
+
818
+    /**
819
+     * check if server-to-server sharing is enabled
820
+     *
821
+     * @param bool $incoming
822
+     * @return bool
823
+     */
824
+    private function isS2SEnabled($incoming = false) {
825
+        $result = $this->appManager->isEnabledForUser('files_sharing');
826
+
827
+        if ($incoming) {
828
+            $result = $result && $this->federatedShareProvider->isIncomingServer2serverShareEnabled();
829
+        } else {
830
+            $result = $result && $this->federatedShareProvider->isOutgoingServer2serverShareEnabled();
831
+        }
832
+
833
+        return $result;
834
+    }
835
+
836
+
837
+    /**
838
+     * get the supported share types, e.g. "user", "group", etc.
839
+     *
840
+     * @return array
841
+     *
842
+     * @since 14.0.0
843
+     */
844
+    public function getSupportedShareTypes() {
845
+        return ['user', 'group'];
846
+    }
847 847
 }
Please login to merge, or discard this patch.
apps/federatedfilesharing/composer/composer/autoload_static.php 1 patch
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -6,42 +6,42 @@
 block discarded – undo
6 6
 
7 7
 class ComposerStaticInitFederatedFileSharing
8 8
 {
9
-    public static $prefixLengthsPsr4 = array (
9
+    public static $prefixLengthsPsr4 = array(
10 10
         'O' => 
11
-        array (
11
+        array(
12 12
             'OCA\\FederatedFileSharing\\' => 25,
13 13
         ),
14 14
     );
15 15
 
16
-    public static $prefixDirsPsr4 = array (
16
+    public static $prefixDirsPsr4 = array(
17 17
         'OCA\\FederatedFileSharing\\' => 
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\\FederatedFileSharing\\AddressHandler' => __DIR__ . '/..' . '/../lib/AddressHandler.php',
25
-        'OCA\\FederatedFileSharing\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
26
-        'OCA\\FederatedFileSharing\\BackgroundJob\\RetryJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/RetryJob.php',
27
-        'OCA\\FederatedFileSharing\\Controller\\MountPublicLinkController' => __DIR__ . '/..' . '/../lib/Controller/MountPublicLinkController.php',
28
-        'OCA\\FederatedFileSharing\\Controller\\RequestHandlerController' => __DIR__ . '/..' . '/../lib/Controller/RequestHandlerController.php',
29
-        'OCA\\FederatedFileSharing\\Events\\FederatedShareAddedEvent' => __DIR__ . '/..' . '/../lib/Events/FederatedShareAddedEvent.php',
30
-        'OCA\\FederatedFileSharing\\FederatedShareProvider' => __DIR__ . '/..' . '/../lib/FederatedShareProvider.php',
31
-        'OCA\\FederatedFileSharing\\Listeners\\LoadAdditionalScriptsListener' => __DIR__ . '/..' . '/../lib/Listeners/LoadAdditionalScriptsListener.php',
32
-        'OCA\\FederatedFileSharing\\Migration\\Version1010Date20200630191755' => __DIR__ . '/..' . '/../lib/Migration/Version1010Date20200630191755.php',
33
-        'OCA\\FederatedFileSharing\\Notifications' => __DIR__ . '/..' . '/../lib/Notifications.php',
34
-        'OCA\\FederatedFileSharing\\Notifier' => __DIR__ . '/..' . '/../lib/Notifier.php',
35
-        'OCA\\FederatedFileSharing\\OCM\\CloudFederationProviderFiles' => __DIR__ . '/..' . '/../lib/OCM/CloudFederationProviderFiles.php',
36
-        'OCA\\FederatedFileSharing\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php',
37
-        'OCA\\FederatedFileSharing\\Settings\\Personal' => __DIR__ . '/..' . '/../lib/Settings/Personal.php',
38
-        'OCA\\FederatedFileSharing\\Settings\\PersonalSection' => __DIR__ . '/..' . '/../lib/Settings/PersonalSection.php',
39
-        'OCA\\FederatedFileSharing\\TokenHandler' => __DIR__ . '/..' . '/../lib/TokenHandler.php',
23
+    public static $classMap = array(
24
+        'OCA\\FederatedFileSharing\\AddressHandler' => __DIR__.'/..'.'/../lib/AddressHandler.php',
25
+        'OCA\\FederatedFileSharing\\AppInfo\\Application' => __DIR__.'/..'.'/../lib/AppInfo/Application.php',
26
+        'OCA\\FederatedFileSharing\\BackgroundJob\\RetryJob' => __DIR__.'/..'.'/../lib/BackgroundJob/RetryJob.php',
27
+        'OCA\\FederatedFileSharing\\Controller\\MountPublicLinkController' => __DIR__.'/..'.'/../lib/Controller/MountPublicLinkController.php',
28
+        'OCA\\FederatedFileSharing\\Controller\\RequestHandlerController' => __DIR__.'/..'.'/../lib/Controller/RequestHandlerController.php',
29
+        'OCA\\FederatedFileSharing\\Events\\FederatedShareAddedEvent' => __DIR__.'/..'.'/../lib/Events/FederatedShareAddedEvent.php',
30
+        'OCA\\FederatedFileSharing\\FederatedShareProvider' => __DIR__.'/..'.'/../lib/FederatedShareProvider.php',
31
+        'OCA\\FederatedFileSharing\\Listeners\\LoadAdditionalScriptsListener' => __DIR__.'/..'.'/../lib/Listeners/LoadAdditionalScriptsListener.php',
32
+        'OCA\\FederatedFileSharing\\Migration\\Version1010Date20200630191755' => __DIR__.'/..'.'/../lib/Migration/Version1010Date20200630191755.php',
33
+        'OCA\\FederatedFileSharing\\Notifications' => __DIR__.'/..'.'/../lib/Notifications.php',
34
+        'OCA\\FederatedFileSharing\\Notifier' => __DIR__.'/..'.'/../lib/Notifier.php',
35
+        'OCA\\FederatedFileSharing\\OCM\\CloudFederationProviderFiles' => __DIR__.'/..'.'/../lib/OCM/CloudFederationProviderFiles.php',
36
+        'OCA\\FederatedFileSharing\\Settings\\Admin' => __DIR__.'/..'.'/../lib/Settings/Admin.php',
37
+        'OCA\\FederatedFileSharing\\Settings\\Personal' => __DIR__.'/..'.'/../lib/Settings/Personal.php',
38
+        'OCA\\FederatedFileSharing\\Settings\\PersonalSection' => __DIR__.'/..'.'/../lib/Settings/PersonalSection.php',
39
+        'OCA\\FederatedFileSharing\\TokenHandler' => __DIR__.'/..'.'/../lib/TokenHandler.php',
40 40
     );
41 41
 
42 42
     public static function getInitializer(ClassLoader $loader)
43 43
     {
44
-        return \Closure::bind(function () use ($loader) {
44
+        return \Closure::bind(function() use ($loader) {
45 45
             $loader->prefixLengthsPsr4 = ComposerStaticInitFederatedFileSharing::$prefixLengthsPsr4;
46 46
             $loader->prefixDirsPsr4 = ComposerStaticInitFederatedFileSharing::$prefixDirsPsr4;
47 47
             $loader->classMap = ComposerStaticInitFederatedFileSharing::$classMap;
Please login to merge, or discard this patch.