Passed
Push — master ( 7b0e11...1d7207 )
by Morris
28:08 queued 15s
created
apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php 2 patches
Indentation   +461 added lines, -461 removed lines patch added patch discarded remove patch
@@ -32,465 +32,465 @@
 block discarded – undo
32 32
 
33 33
 abstract class AbstractPrincipalBackend implements BackendInterface {
34 34
 
35
-	/** @var IDBConnection */
36
-	private $db;
37
-
38
-	/** @var IUserSession */
39
-	private $userSession;
40
-
41
-	/** @var IGroupManager */
42
-	private $groupManager;
43
-
44
-	/** @var ILogger */
45
-	private $logger;
46
-
47
-	/** @var string */
48
-	private $principalPrefix;
49
-
50
-	/** @var string */
51
-	private $dbTableName;
52
-
53
-	/** @var string */
54
-	private $dbMetaDataTableName;
55
-
56
-	/** @var string */
57
-	private $dbForeignKeyName;
58
-
59
-	/** @var string */
60
-	private $cuType;
61
-
62
-	/**
63
-	 * @param IDBConnection $dbConnection
64
-	 * @param IUserSession $userSession
65
-	 * @param IGroupManager $groupManager
66
-	 * @param ILogger $logger
67
-	 * @param string $principalPrefix
68
-	 * @param string $dbPrefix
69
-	 * @param string $cuType
70
-	 */
71
-	public function __construct(IDBConnection $dbConnection,
72
-								IUserSession $userSession,
73
-								IGroupManager $groupManager,
74
-								ILogger $logger,
75
-								string $principalPrefix,
76
-								string $dbPrefix,
77
-								string $cuType) {
78
-		$this->db = $dbConnection;
79
-		$this->userSession = $userSession;
80
-		$this->groupManager = $groupManager;
81
-		$this->logger = $logger;
82
-		$this->principalPrefix = $principalPrefix;
83
-		$this->dbTableName = 'calendar_' . $dbPrefix . 's';
84
-		$this->dbMetaDataTableName = $this->dbTableName . '_md';
85
-		$this->dbForeignKeyName = $dbPrefix . '_id';
86
-		$this->cuType = $cuType;
87
-	}
88
-
89
-	/**
90
-	 * Returns a list of principals based on a prefix.
91
-	 *
92
-	 * This prefix will often contain something like 'principals'. You are only
93
-	 * expected to return principals that are in this base path.
94
-	 *
95
-	 * You are expected to return at least a 'uri' for every user, you can
96
-	 * return any additional properties if you wish so. Common properties are:
97
-	 *   {DAV:}displayname
98
-	 *
99
-	 * @param string $prefixPath
100
-	 * @return string[]
101
-	 */
102
-	public function getPrincipalsByPrefix($prefixPath) {
103
-		$principals = [];
104
-
105
-		if ($prefixPath === $this->principalPrefix) {
106
-			$query = $this->db->getQueryBuilder();
107
-			$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname'])
108
-				->from($this->dbTableName);
109
-			$stmt = $query->execute();
110
-
111
-			$metaDataQuery = $this->db->getQueryBuilder();
112
-			$metaDataQuery->select([$this->dbForeignKeyName, 'key', 'value'])
113
-				->from($this->dbMetaDataTableName);
114
-			$metaDataStmt = $metaDataQuery->execute();
115
-			$metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
116
-
117
-			$metaDataById = [];
118
-			foreach($metaDataRows as $metaDataRow) {
119
-				if (!isset($metaDataById[$metaDataRow[$this->dbForeignKeyName]])) {
120
-					$metaDataById[$metaDataRow[$this->dbForeignKeyName]] = [];
121
-				}
122
-
123
-				$metaDataById[$metaDataRow[$this->dbForeignKeyName]][$metaDataRow['key']] =
124
-					$metaDataRow['value'];
125
-			}
126
-
127
-			while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
128
-				$id = $row['id'];
129
-
130
-				if (isset($metaDataById[$id])) {
131
-					$principals[] = $this->rowToPrincipal($row, $metaDataById[$id]);
132
-				} else {
133
-					$principals[] = $this->rowToPrincipal($row);
134
-				}
135
-
136
-			}
137
-
138
-			$stmt->closeCursor();
139
-		}
140
-
141
-		return $principals;
142
-	}
143
-
144
-	/**
145
-	 * Returns a specific principal, specified by it's path.
146
-	 * The returned structure should be the exact same as from
147
-	 * getPrincipalsByPrefix.
148
-	 *
149
-	 * @param string $path
150
-	 * @return array
151
-	 */
152
-	public function getPrincipalByPath($path) {
153
-		if (strpos($path, $this->principalPrefix) !== 0) {
154
-			return null;
155
-		}
156
-		list(, $name) = \Sabre\Uri\split($path);
157
-
158
-		list($backendId, $resourceId) = explode('-',  $name, 2);
159
-
160
-		$query = $this->db->getQueryBuilder();
161
-		$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname'])
162
-			->from($this->dbTableName)
163
-			->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId)))
164
-			->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($resourceId)));
165
-		$stmt = $query->execute();
166
-		$row = $stmt->fetch(\PDO::FETCH_ASSOC);
167
-
168
-		if(!$row) {
169
-			return null;
170
-		}
171
-
172
-		$metaDataQuery = $this->db->getQueryBuilder();
173
-		$metaDataQuery->select(['key', 'value'])
174
-			->from($this->dbMetaDataTableName)
175
-			->where($metaDataQuery->expr()->eq($this->dbForeignKeyName, $metaDataQuery->createNamedParameter($row['id'])));
176
-		$metaDataStmt = $metaDataQuery->execute();
177
-		$metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
178
-		$metadata = [];
179
-
180
-		foreach($metaDataRows as $metaDataRow) {
181
-			$metadata[$metaDataRow['key']] = $metaDataRow['value'];
182
-		}
183
-
184
-		return $this->rowToPrincipal($row, $metadata);
185
-	}
186
-
187
-	/**
188
-	 * @param int $id
189
-	 * @return array|null
190
-	 */
191
-	public function getPrincipalById($id):?array {
192
-		$query = $this->db->getQueryBuilder();
193
-		$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname'])
194
-			->from($this->dbTableName)
195
-			->where($query->expr()->eq('id', $query->createNamedParameter($id)));
196
-		$stmt = $query->execute();
197
-		$row = $stmt->fetch(\PDO::FETCH_ASSOC);
198
-
199
-		if(!$row) {
200
-			return null;
201
-		}
202
-
203
-		$metaDataQuery = $this->db->getQueryBuilder();
204
-		$metaDataQuery->select(['key', 'value'])
205
-			->from($this->dbMetaDataTableName)
206
-			->where($metaDataQuery->expr()->eq($this->dbForeignKeyName, $metaDataQuery->createNamedParameter($row['id'])));
207
-		$metaDataStmt = $metaDataQuery->execute();
208
-		$metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
209
-		$metadata = [];
210
-
211
-		foreach($metaDataRows as $metaDataRow) {
212
-			$metadata[$metaDataRow['key']] = $metaDataRow['value'];
213
-		}
214
-
215
-		return $this->rowToPrincipal($row, $metadata);
216
-	}
217
-
218
-	/**
219
-	 * Returns the list of members for a group-principal
220
-	 *
221
-	 * @param string $principal
222
-	 * @return string[]
223
-	 */
224
-	public function getGroupMemberSet($principal) {
225
-		return [];
226
-	}
227
-
228
-	/**
229
-	 * Returns the list of groups a principal is a member of
230
-	 *
231
-	 * @param string $principal
232
-	 * @return array
233
-	 */
234
-	public function getGroupMembership($principal) {
235
-		return [];
236
-	}
237
-
238
-	/**
239
-	 * Updates the list of group members for a group principal.
240
-	 *
241
-	 * The principals should be passed as a list of uri's.
242
-	 *
243
-	 * @param string $principal
244
-	 * @param string[] $members
245
-	 * @throws Exception
246
-	 */
247
-	public function setGroupMemberSet($principal, array $members) {
248
-		throw new Exception('Setting members of the group is not supported yet');
249
-	}
250
-
251
-	/**
252
-	 * @param string $path
253
-	 * @param PropPatch $propPatch
254
-	 * @return int
255
-	 */
256
-	function updatePrincipal($path, PropPatch $propPatch) {
257
-		return 0;
258
-	}
259
-
260
-	/**
261
-	 * @param string $prefixPath
262
-	 * @param array $searchProperties
263
-	 * @param string $test
264
-	 * @return array
265
-	 */
266
-	function searchPrincipals($prefixPath, array $searchProperties, $test = 'allof') {
267
-		$results = [];
268
-		if (\count($searchProperties) === 0) {
269
-			return [];
270
-		}
271
-		if ($prefixPath !== $this->principalPrefix) {
272
-			return [];
273
-		}
274
-
275
-		$user = $this->userSession->getUser();
276
-		if (!$user) {
277
-			return [];
278
-		}
279
-		$usersGroups = $this->groupManager->getUserGroupIds($user);
280
-
281
-		foreach ($searchProperties as $prop => $value) {
282
-			switch ($prop) {
283
-				case '{http://sabredav.org/ns}email-address':
284
-					$query = $this->db->getQueryBuilder();
285
-					$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
286
-						->from($this->dbTableName)
287
-						->where($query->expr()->iLike('email', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
288
-
289
-					$stmt = $query->execute();
290
-					$principals = [];
291
-					while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
292
-						if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
293
-							continue;
294
-						}
295
-						$principals[] = $this->rowToPrincipal($row)['uri'];
296
-					}
297
-					$results[] = $principals;
298
-
299
-					$stmt->closeCursor();
300
-					break;
301
-
302
-				case '{DAV:}displayname':
303
-					$query = $this->db->getQueryBuilder();
304
-					$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
305
-						->from($this->dbTableName)
306
-						->where($query->expr()->iLike('displayname', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
307
-
308
-					$stmt = $query->execute();
309
-					$principals = [];
310
-					while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
311
-						if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
312
-							continue;
313
-						}
314
-						$principals[] = $this->rowToPrincipal($row)['uri'];
315
-					}
316
-					$results[] = $principals;
317
-
318
-					$stmt->closeCursor();
319
-					break;
320
-
321
-				case '{urn:ietf:params:xml:ns:caldav}calendar-user-address-set':
322
-					// If you add support for more search properties that qualify as a user-address,
323
-					// please also add them to the array below
324
-					$results[] = $this->searchPrincipals($this->principalPrefix, [
325
-						'{http://sabredav.org/ns}email-address' => $value,
326
-					], 'anyof');
327
-					break;
328
-
329
-				default:
330
-					$rowsByMetadata = $this->searchPrincipalsByMetadataKey($prop, $value);
331
-					$filteredRows = array_filter($rowsByMetadata, function($row) use ($usersGroups) {
332
-						return $this->isAllowedToAccessResource($row, $usersGroups);
333
-					});
334
-
335
-					$results[] = array_map(function($row) {
336
-						return $row['uri'];
337
-					}, $filteredRows);
338
-
339
-					break;
340
-			}
341
-		}
342
-
343
-		// results is an array of arrays, so this is not the first search result
344
-		// but the results of the first searchProperty
345
-		if (count($results) === 1) {
346
-			return $results[0];
347
-		}
348
-
349
-		switch ($test) {
350
-			case 'anyof':
351
-				return array_values(array_unique(array_merge(...$results)));
352
-
353
-			case 'allof':
354
-			default:
355
-				return array_values(array_intersect(...$results));
356
-		}
357
-	}
358
-
359
-	/**
360
-	 * Searches principals based on their metadata keys.
361
-	 * This allows to search for all principals with a specific key.
362
-	 * e.g.:
363
-	 * '{http://nextcloud.com/ns}room-building-address' => 'ABC Street 123, ...'
364
-	 *
365
-	 * @param $key
366
-	 * @param $value
367
-	 * @return array
368
-	 */
369
-	private function searchPrincipalsByMetadataKey($key, $value):array {
370
-		$query = $this->db->getQueryBuilder();
371
-		$query->select([$this->dbForeignKeyName])
372
-			->from($this->dbMetaDataTableName)
373
-			->where($query->expr()->eq('key', $query->createNamedParameter($key)))
374
-			->andWhere($query->expr()->iLike('value', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
375
-		$stmt = $query->execute();
376
-
377
-		$rows = [];
378
-		while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
379
-			$id = $row[$this->dbForeignKeyName];
380
-
381
-			$principalRow = $this->getPrincipalById($id);
382
-			if (!$principalRow) {
383
-				continue;
384
-			}
385
-
386
-			$rows[] = $principalRow;
387
-		}
388
-
389
-		return $rows;
390
-	}
391
-
392
-	/**
393
-	 * @param string $uri
394
-	 * @param string $principalPrefix
395
-	 * @return null|string
396
-	 */
397
-	function findByUri($uri, $principalPrefix) {
398
-		$user = $this->userSession->getUser();
399
-		if (!$user) {
400
-			return null;
401
-		}
402
-		$usersGroups = $this->groupManager->getUserGroupIds($user);
403
-
404
-		if (strpos($uri, 'mailto:') === 0) {
405
-			$email = substr($uri, 7);
406
-			$query = $this->db->getQueryBuilder();
407
-			$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
408
-				->from($this->dbTableName)
409
-				->where($query->expr()->eq('email', $query->createNamedParameter($email)));
410
-
411
-			$stmt = $query->execute();
412
-			$row = $stmt->fetch(\PDO::FETCH_ASSOC);
413
-
414
-			if(!$row) {
415
-				return null;
416
-			}
417
-			if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
418
-				return null;
419
-			}
420
-
421
-			return $this->rowToPrincipal($row)['uri'];
422
-		}
423
-
424
-		if (strpos($uri, 'principal:') === 0) {
425
-			$path = substr($uri, 10);
426
-			if (strpos($path, $this->principalPrefix) !== 0) {
427
-				return null;
428
-			}
429
-
430
-			list(, $name) = \Sabre\Uri\split($path);
431
-			list($backendId, $resourceId) = explode('-',  $name, 2);
432
-
433
-			$query = $this->db->getQueryBuilder();
434
-			$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
435
-				->from($this->dbTableName)
436
-				->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId)))
437
-				->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($resourceId)));
438
-			$stmt = $query->execute();
439
-			$row = $stmt->fetch(\PDO::FETCH_ASSOC);
440
-
441
-			if(!$row) {
442
-				return null;
443
-			}
444
-			if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
445
-				return null;
446
-			}
447
-
448
-			return $this->rowToPrincipal($row)['uri'];
449
-		}
450
-
451
-		return null;
452
-	}
453
-
454
-	/**
455
-	 * convert database row to principal
456
-	 *
457
-	 * @param String[] $row
458
-	 * @param String[] $metadata
459
-	 * @return Array
460
-	 */
461
-	private function rowToPrincipal(array $row, array $metadata=[]):array {
462
-		return array_merge([
463
-			'uri' => $this->principalPrefix . '/' . $row['backend_id'] . '-' . $row['resource_id'],
464
-			'{DAV:}displayname' => $row['displayname'],
465
-			'{http://sabredav.org/ns}email-address' => $row['email'],
466
-			'{urn:ietf:params:xml:ns:caldav}calendar-user-type' => $this->cuType,
467
-		], $metadata);
468
-	}
469
-
470
-	/**
471
-	 * @param $row
472
-	 * @param $userGroups
473
-	 * @return bool
474
-	 */
475
-	private function isAllowedToAccessResource(array $row, array $userGroups):bool {
476
-		if (!isset($row['group_restrictions']) ||
477
-			$row['group_restrictions'] === null ||
478
-			$row['group_restrictions'] === '') {
479
-			return true;
480
-		}
481
-
482
-		// group restrictions contains something, but not parsable, deny access and log warning
483
-		$json = json_decode($row['group_restrictions']);
484
-		if (!\is_array($json)) {
485
-			$this->logger->info('group_restrictions field could not be parsed for ' . $this->dbTableName . '::' . $row['id'] . ', denying access to resource');
486
-			return false;
487
-		}
488
-
489
-		// empty array => no group restrictions
490
-		if (empty($json)) {
491
-			return true;
492
-		}
493
-
494
-		return !empty(array_intersect($json, $userGroups));
495
-	}
35
+    /** @var IDBConnection */
36
+    private $db;
37
+
38
+    /** @var IUserSession */
39
+    private $userSession;
40
+
41
+    /** @var IGroupManager */
42
+    private $groupManager;
43
+
44
+    /** @var ILogger */
45
+    private $logger;
46
+
47
+    /** @var string */
48
+    private $principalPrefix;
49
+
50
+    /** @var string */
51
+    private $dbTableName;
52
+
53
+    /** @var string */
54
+    private $dbMetaDataTableName;
55
+
56
+    /** @var string */
57
+    private $dbForeignKeyName;
58
+
59
+    /** @var string */
60
+    private $cuType;
61
+
62
+    /**
63
+     * @param IDBConnection $dbConnection
64
+     * @param IUserSession $userSession
65
+     * @param IGroupManager $groupManager
66
+     * @param ILogger $logger
67
+     * @param string $principalPrefix
68
+     * @param string $dbPrefix
69
+     * @param string $cuType
70
+     */
71
+    public function __construct(IDBConnection $dbConnection,
72
+                                IUserSession $userSession,
73
+                                IGroupManager $groupManager,
74
+                                ILogger $logger,
75
+                                string $principalPrefix,
76
+                                string $dbPrefix,
77
+                                string $cuType) {
78
+        $this->db = $dbConnection;
79
+        $this->userSession = $userSession;
80
+        $this->groupManager = $groupManager;
81
+        $this->logger = $logger;
82
+        $this->principalPrefix = $principalPrefix;
83
+        $this->dbTableName = 'calendar_' . $dbPrefix . 's';
84
+        $this->dbMetaDataTableName = $this->dbTableName . '_md';
85
+        $this->dbForeignKeyName = $dbPrefix . '_id';
86
+        $this->cuType = $cuType;
87
+    }
88
+
89
+    /**
90
+     * Returns a list of principals based on a prefix.
91
+     *
92
+     * This prefix will often contain something like 'principals'. You are only
93
+     * expected to return principals that are in this base path.
94
+     *
95
+     * You are expected to return at least a 'uri' for every user, you can
96
+     * return any additional properties if you wish so. Common properties are:
97
+     *   {DAV:}displayname
98
+     *
99
+     * @param string $prefixPath
100
+     * @return string[]
101
+     */
102
+    public function getPrincipalsByPrefix($prefixPath) {
103
+        $principals = [];
104
+
105
+        if ($prefixPath === $this->principalPrefix) {
106
+            $query = $this->db->getQueryBuilder();
107
+            $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname'])
108
+                ->from($this->dbTableName);
109
+            $stmt = $query->execute();
110
+
111
+            $metaDataQuery = $this->db->getQueryBuilder();
112
+            $metaDataQuery->select([$this->dbForeignKeyName, 'key', 'value'])
113
+                ->from($this->dbMetaDataTableName);
114
+            $metaDataStmt = $metaDataQuery->execute();
115
+            $metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
116
+
117
+            $metaDataById = [];
118
+            foreach($metaDataRows as $metaDataRow) {
119
+                if (!isset($metaDataById[$metaDataRow[$this->dbForeignKeyName]])) {
120
+                    $metaDataById[$metaDataRow[$this->dbForeignKeyName]] = [];
121
+                }
122
+
123
+                $metaDataById[$metaDataRow[$this->dbForeignKeyName]][$metaDataRow['key']] =
124
+                    $metaDataRow['value'];
125
+            }
126
+
127
+            while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
128
+                $id = $row['id'];
129
+
130
+                if (isset($metaDataById[$id])) {
131
+                    $principals[] = $this->rowToPrincipal($row, $metaDataById[$id]);
132
+                } else {
133
+                    $principals[] = $this->rowToPrincipal($row);
134
+                }
135
+
136
+            }
137
+
138
+            $stmt->closeCursor();
139
+        }
140
+
141
+        return $principals;
142
+    }
143
+
144
+    /**
145
+     * Returns a specific principal, specified by it's path.
146
+     * The returned structure should be the exact same as from
147
+     * getPrincipalsByPrefix.
148
+     *
149
+     * @param string $path
150
+     * @return array
151
+     */
152
+    public function getPrincipalByPath($path) {
153
+        if (strpos($path, $this->principalPrefix) !== 0) {
154
+            return null;
155
+        }
156
+        list(, $name) = \Sabre\Uri\split($path);
157
+
158
+        list($backendId, $resourceId) = explode('-',  $name, 2);
159
+
160
+        $query = $this->db->getQueryBuilder();
161
+        $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname'])
162
+            ->from($this->dbTableName)
163
+            ->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId)))
164
+            ->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($resourceId)));
165
+        $stmt = $query->execute();
166
+        $row = $stmt->fetch(\PDO::FETCH_ASSOC);
167
+
168
+        if(!$row) {
169
+            return null;
170
+        }
171
+
172
+        $metaDataQuery = $this->db->getQueryBuilder();
173
+        $metaDataQuery->select(['key', 'value'])
174
+            ->from($this->dbMetaDataTableName)
175
+            ->where($metaDataQuery->expr()->eq($this->dbForeignKeyName, $metaDataQuery->createNamedParameter($row['id'])));
176
+        $metaDataStmt = $metaDataQuery->execute();
177
+        $metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
178
+        $metadata = [];
179
+
180
+        foreach($metaDataRows as $metaDataRow) {
181
+            $metadata[$metaDataRow['key']] = $metaDataRow['value'];
182
+        }
183
+
184
+        return $this->rowToPrincipal($row, $metadata);
185
+    }
186
+
187
+    /**
188
+     * @param int $id
189
+     * @return array|null
190
+     */
191
+    public function getPrincipalById($id):?array {
192
+        $query = $this->db->getQueryBuilder();
193
+        $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname'])
194
+            ->from($this->dbTableName)
195
+            ->where($query->expr()->eq('id', $query->createNamedParameter($id)));
196
+        $stmt = $query->execute();
197
+        $row = $stmt->fetch(\PDO::FETCH_ASSOC);
198
+
199
+        if(!$row) {
200
+            return null;
201
+        }
202
+
203
+        $metaDataQuery = $this->db->getQueryBuilder();
204
+        $metaDataQuery->select(['key', 'value'])
205
+            ->from($this->dbMetaDataTableName)
206
+            ->where($metaDataQuery->expr()->eq($this->dbForeignKeyName, $metaDataQuery->createNamedParameter($row['id'])));
207
+        $metaDataStmt = $metaDataQuery->execute();
208
+        $metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
209
+        $metadata = [];
210
+
211
+        foreach($metaDataRows as $metaDataRow) {
212
+            $metadata[$metaDataRow['key']] = $metaDataRow['value'];
213
+        }
214
+
215
+        return $this->rowToPrincipal($row, $metadata);
216
+    }
217
+
218
+    /**
219
+     * Returns the list of members for a group-principal
220
+     *
221
+     * @param string $principal
222
+     * @return string[]
223
+     */
224
+    public function getGroupMemberSet($principal) {
225
+        return [];
226
+    }
227
+
228
+    /**
229
+     * Returns the list of groups a principal is a member of
230
+     *
231
+     * @param string $principal
232
+     * @return array
233
+     */
234
+    public function getGroupMembership($principal) {
235
+        return [];
236
+    }
237
+
238
+    /**
239
+     * Updates the list of group members for a group principal.
240
+     *
241
+     * The principals should be passed as a list of uri's.
242
+     *
243
+     * @param string $principal
244
+     * @param string[] $members
245
+     * @throws Exception
246
+     */
247
+    public function setGroupMemberSet($principal, array $members) {
248
+        throw new Exception('Setting members of the group is not supported yet');
249
+    }
250
+
251
+    /**
252
+     * @param string $path
253
+     * @param PropPatch $propPatch
254
+     * @return int
255
+     */
256
+    function updatePrincipal($path, PropPatch $propPatch) {
257
+        return 0;
258
+    }
259
+
260
+    /**
261
+     * @param string $prefixPath
262
+     * @param array $searchProperties
263
+     * @param string $test
264
+     * @return array
265
+     */
266
+    function searchPrincipals($prefixPath, array $searchProperties, $test = 'allof') {
267
+        $results = [];
268
+        if (\count($searchProperties) === 0) {
269
+            return [];
270
+        }
271
+        if ($prefixPath !== $this->principalPrefix) {
272
+            return [];
273
+        }
274
+
275
+        $user = $this->userSession->getUser();
276
+        if (!$user) {
277
+            return [];
278
+        }
279
+        $usersGroups = $this->groupManager->getUserGroupIds($user);
280
+
281
+        foreach ($searchProperties as $prop => $value) {
282
+            switch ($prop) {
283
+                case '{http://sabredav.org/ns}email-address':
284
+                    $query = $this->db->getQueryBuilder();
285
+                    $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
286
+                        ->from($this->dbTableName)
287
+                        ->where($query->expr()->iLike('email', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
288
+
289
+                    $stmt = $query->execute();
290
+                    $principals = [];
291
+                    while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
292
+                        if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
293
+                            continue;
294
+                        }
295
+                        $principals[] = $this->rowToPrincipal($row)['uri'];
296
+                    }
297
+                    $results[] = $principals;
298
+
299
+                    $stmt->closeCursor();
300
+                    break;
301
+
302
+                case '{DAV:}displayname':
303
+                    $query = $this->db->getQueryBuilder();
304
+                    $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
305
+                        ->from($this->dbTableName)
306
+                        ->where($query->expr()->iLike('displayname', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
307
+
308
+                    $stmt = $query->execute();
309
+                    $principals = [];
310
+                    while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
311
+                        if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
312
+                            continue;
313
+                        }
314
+                        $principals[] = $this->rowToPrincipal($row)['uri'];
315
+                    }
316
+                    $results[] = $principals;
317
+
318
+                    $stmt->closeCursor();
319
+                    break;
320
+
321
+                case '{urn:ietf:params:xml:ns:caldav}calendar-user-address-set':
322
+                    // If you add support for more search properties that qualify as a user-address,
323
+                    // please also add them to the array below
324
+                    $results[] = $this->searchPrincipals($this->principalPrefix, [
325
+                        '{http://sabredav.org/ns}email-address' => $value,
326
+                    ], 'anyof');
327
+                    break;
328
+
329
+                default:
330
+                    $rowsByMetadata = $this->searchPrincipalsByMetadataKey($prop, $value);
331
+                    $filteredRows = array_filter($rowsByMetadata, function($row) use ($usersGroups) {
332
+                        return $this->isAllowedToAccessResource($row, $usersGroups);
333
+                    });
334
+
335
+                    $results[] = array_map(function($row) {
336
+                        return $row['uri'];
337
+                    }, $filteredRows);
338
+
339
+                    break;
340
+            }
341
+        }
342
+
343
+        // results is an array of arrays, so this is not the first search result
344
+        // but the results of the first searchProperty
345
+        if (count($results) === 1) {
346
+            return $results[0];
347
+        }
348
+
349
+        switch ($test) {
350
+            case 'anyof':
351
+                return array_values(array_unique(array_merge(...$results)));
352
+
353
+            case 'allof':
354
+            default:
355
+                return array_values(array_intersect(...$results));
356
+        }
357
+    }
358
+
359
+    /**
360
+     * Searches principals based on their metadata keys.
361
+     * This allows to search for all principals with a specific key.
362
+     * e.g.:
363
+     * '{http://nextcloud.com/ns}room-building-address' => 'ABC Street 123, ...'
364
+     *
365
+     * @param $key
366
+     * @param $value
367
+     * @return array
368
+     */
369
+    private function searchPrincipalsByMetadataKey($key, $value):array {
370
+        $query = $this->db->getQueryBuilder();
371
+        $query->select([$this->dbForeignKeyName])
372
+            ->from($this->dbMetaDataTableName)
373
+            ->where($query->expr()->eq('key', $query->createNamedParameter($key)))
374
+            ->andWhere($query->expr()->iLike('value', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
375
+        $stmt = $query->execute();
376
+
377
+        $rows = [];
378
+        while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
379
+            $id = $row[$this->dbForeignKeyName];
380
+
381
+            $principalRow = $this->getPrincipalById($id);
382
+            if (!$principalRow) {
383
+                continue;
384
+            }
385
+
386
+            $rows[] = $principalRow;
387
+        }
388
+
389
+        return $rows;
390
+    }
391
+
392
+    /**
393
+     * @param string $uri
394
+     * @param string $principalPrefix
395
+     * @return null|string
396
+     */
397
+    function findByUri($uri, $principalPrefix) {
398
+        $user = $this->userSession->getUser();
399
+        if (!$user) {
400
+            return null;
401
+        }
402
+        $usersGroups = $this->groupManager->getUserGroupIds($user);
403
+
404
+        if (strpos($uri, 'mailto:') === 0) {
405
+            $email = substr($uri, 7);
406
+            $query = $this->db->getQueryBuilder();
407
+            $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
408
+                ->from($this->dbTableName)
409
+                ->where($query->expr()->eq('email', $query->createNamedParameter($email)));
410
+
411
+            $stmt = $query->execute();
412
+            $row = $stmt->fetch(\PDO::FETCH_ASSOC);
413
+
414
+            if(!$row) {
415
+                return null;
416
+            }
417
+            if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
418
+                return null;
419
+            }
420
+
421
+            return $this->rowToPrincipal($row)['uri'];
422
+        }
423
+
424
+        if (strpos($uri, 'principal:') === 0) {
425
+            $path = substr($uri, 10);
426
+            if (strpos($path, $this->principalPrefix) !== 0) {
427
+                return null;
428
+            }
429
+
430
+            list(, $name) = \Sabre\Uri\split($path);
431
+            list($backendId, $resourceId) = explode('-',  $name, 2);
432
+
433
+            $query = $this->db->getQueryBuilder();
434
+            $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
435
+                ->from($this->dbTableName)
436
+                ->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId)))
437
+                ->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($resourceId)));
438
+            $stmt = $query->execute();
439
+            $row = $stmt->fetch(\PDO::FETCH_ASSOC);
440
+
441
+            if(!$row) {
442
+                return null;
443
+            }
444
+            if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
445
+                return null;
446
+            }
447
+
448
+            return $this->rowToPrincipal($row)['uri'];
449
+        }
450
+
451
+        return null;
452
+    }
453
+
454
+    /**
455
+     * convert database row to principal
456
+     *
457
+     * @param String[] $row
458
+     * @param String[] $metadata
459
+     * @return Array
460
+     */
461
+    private function rowToPrincipal(array $row, array $metadata=[]):array {
462
+        return array_merge([
463
+            'uri' => $this->principalPrefix . '/' . $row['backend_id'] . '-' . $row['resource_id'],
464
+            '{DAV:}displayname' => $row['displayname'],
465
+            '{http://sabredav.org/ns}email-address' => $row['email'],
466
+            '{urn:ietf:params:xml:ns:caldav}calendar-user-type' => $this->cuType,
467
+        ], $metadata);
468
+    }
469
+
470
+    /**
471
+     * @param $row
472
+     * @param $userGroups
473
+     * @return bool
474
+     */
475
+    private function isAllowedToAccessResource(array $row, array $userGroups):bool {
476
+        if (!isset($row['group_restrictions']) ||
477
+            $row['group_restrictions'] === null ||
478
+            $row['group_restrictions'] === '') {
479
+            return true;
480
+        }
481
+
482
+        // group restrictions contains something, but not parsable, deny access and log warning
483
+        $json = json_decode($row['group_restrictions']);
484
+        if (!\is_array($json)) {
485
+            $this->logger->info('group_restrictions field could not be parsed for ' . $this->dbTableName . '::' . $row['id'] . ', denying access to resource');
486
+            return false;
487
+        }
488
+
489
+        // empty array => no group restrictions
490
+        if (empty($json)) {
491
+            return true;
492
+        }
493
+
494
+        return !empty(array_intersect($json, $userGroups));
495
+    }
496 496
 }
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -80,9 +80,9 @@  discard block
 block discarded – undo
80 80
 		$this->groupManager = $groupManager;
81 81
 		$this->logger = $logger;
82 82
 		$this->principalPrefix = $principalPrefix;
83
-		$this->dbTableName = 'calendar_' . $dbPrefix . 's';
84
-		$this->dbMetaDataTableName = $this->dbTableName . '_md';
85
-		$this->dbForeignKeyName = $dbPrefix . '_id';
83
+		$this->dbTableName = 'calendar_'.$dbPrefix.'s';
84
+		$this->dbMetaDataTableName = $this->dbTableName.'_md';
85
+		$this->dbForeignKeyName = $dbPrefix.'_id';
86 86
 		$this->cuType = $cuType;
87 87
 	}
88 88
 
@@ -115,7 +115,7 @@  discard block
 block discarded – undo
115 115
 			$metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
116 116
 
117 117
 			$metaDataById = [];
118
-			foreach($metaDataRows as $metaDataRow) {
118
+			foreach ($metaDataRows as $metaDataRow) {
119 119
 				if (!isset($metaDataById[$metaDataRow[$this->dbForeignKeyName]])) {
120 120
 					$metaDataById[$metaDataRow[$this->dbForeignKeyName]] = [];
121 121
 				}
@@ -124,7 +124,7 @@  discard block
 block discarded – undo
124 124
 					$metaDataRow['value'];
125 125
 			}
126 126
 
127
-			while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
127
+			while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
128 128
 				$id = $row['id'];
129 129
 
130 130
 				if (isset($metaDataById[$id])) {
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
 		}
156 156
 		list(, $name) = \Sabre\Uri\split($path);
157 157
 
158
-		list($backendId, $resourceId) = explode('-',  $name, 2);
158
+		list($backendId, $resourceId) = explode('-', $name, 2);
159 159
 
160 160
 		$query = $this->db->getQueryBuilder();
161 161
 		$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname'])
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
 		$stmt = $query->execute();
166 166
 		$row = $stmt->fetch(\PDO::FETCH_ASSOC);
167 167
 
168
-		if(!$row) {
168
+		if (!$row) {
169 169
 			return null;
170 170
 		}
171 171
 
@@ -177,7 +177,7 @@  discard block
 block discarded – undo
177 177
 		$metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
178 178
 		$metadata = [];
179 179
 
180
-		foreach($metaDataRows as $metaDataRow) {
180
+		foreach ($metaDataRows as $metaDataRow) {
181 181
 			$metadata[$metaDataRow['key']] = $metaDataRow['value'];
182 182
 		}
183 183
 
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
 	 * @param int $id
189 189
 	 * @return array|null
190 190
 	 */
191
-	public function getPrincipalById($id):?array {
191
+	public function getPrincipalById($id): ?array {
192 192
 		$query = $this->db->getQueryBuilder();
193 193
 		$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname'])
194 194
 			->from($this->dbTableName)
@@ -196,7 +196,7 @@  discard block
 block discarded – undo
196 196
 		$stmt = $query->execute();
197 197
 		$row = $stmt->fetch(\PDO::FETCH_ASSOC);
198 198
 
199
-		if(!$row) {
199
+		if (!$row) {
200 200
 			return null;
201 201
 		}
202 202
 
@@ -208,7 +208,7 @@  discard block
 block discarded – undo
208 208
 		$metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC);
209 209
 		$metadata = [];
210 210
 
211
-		foreach($metaDataRows as $metaDataRow) {
211
+		foreach ($metaDataRows as $metaDataRow) {
212 212
 			$metadata[$metaDataRow['key']] = $metaDataRow['value'];
213 213
 		}
214 214
 
@@ -284,11 +284,11 @@  discard block
 block discarded – undo
284 284
 					$query = $this->db->getQueryBuilder();
285 285
 					$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
286 286
 						->from($this->dbTableName)
287
-						->where($query->expr()->iLike('email', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
287
+						->where($query->expr()->iLike('email', $query->createNamedParameter('%'.$this->db->escapeLikeParameter($value).'%')));
288 288
 
289 289
 					$stmt = $query->execute();
290 290
 					$principals = [];
291
-					while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
291
+					while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
292 292
 						if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
293 293
 							continue;
294 294
 						}
@@ -303,11 +303,11 @@  discard block
 block discarded – undo
303 303
 					$query = $this->db->getQueryBuilder();
304 304
 					$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
305 305
 						->from($this->dbTableName)
306
-						->where($query->expr()->iLike('displayname', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
306
+						->where($query->expr()->iLike('displayname', $query->createNamedParameter('%'.$this->db->escapeLikeParameter($value).'%')));
307 307
 
308 308
 					$stmt = $query->execute();
309 309
 					$principals = [];
310
-					while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
310
+					while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
311 311
 						if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
312 312
 							continue;
313 313
 						}
@@ -371,11 +371,11 @@  discard block
 block discarded – undo
371 371
 		$query->select([$this->dbForeignKeyName])
372 372
 			->from($this->dbMetaDataTableName)
373 373
 			->where($query->expr()->eq('key', $query->createNamedParameter($key)))
374
-			->andWhere($query->expr()->iLike('value', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%')));
374
+			->andWhere($query->expr()->iLike('value', $query->createNamedParameter('%'.$this->db->escapeLikeParameter($value).'%')));
375 375
 		$stmt = $query->execute();
376 376
 
377 377
 		$rows = [];
378
-		while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
378
+		while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
379 379
 			$id = $row[$this->dbForeignKeyName];
380 380
 
381 381
 			$principalRow = $this->getPrincipalById($id);
@@ -411,7 +411,7 @@  discard block
 block discarded – undo
411 411
 			$stmt = $query->execute();
412 412
 			$row = $stmt->fetch(\PDO::FETCH_ASSOC);
413 413
 
414
-			if(!$row) {
414
+			if (!$row) {
415 415
 				return null;
416 416
 			}
417 417
 			if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
@@ -428,7 +428,7 @@  discard block
 block discarded – undo
428 428
 			}
429 429
 
430 430
 			list(, $name) = \Sabre\Uri\split($path);
431
-			list($backendId, $resourceId) = explode('-',  $name, 2);
431
+			list($backendId, $resourceId) = explode('-', $name, 2);
432 432
 
433 433
 			$query = $this->db->getQueryBuilder();
434 434
 			$query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname', 'group_restrictions'])
@@ -438,7 +438,7 @@  discard block
 block discarded – undo
438 438
 			$stmt = $query->execute();
439 439
 			$row = $stmt->fetch(\PDO::FETCH_ASSOC);
440 440
 
441
-			if(!$row) {
441
+			if (!$row) {
442 442
 				return null;
443 443
 			}
444 444
 			if (!$this->isAllowedToAccessResource($row, $usersGroups)) {
@@ -458,9 +458,9 @@  discard block
 block discarded – undo
458 458
 	 * @param String[] $metadata
459 459
 	 * @return Array
460 460
 	 */
461
-	private function rowToPrincipal(array $row, array $metadata=[]):array {
461
+	private function rowToPrincipal(array $row, array $metadata = []):array {
462 462
 		return array_merge([
463
-			'uri' => $this->principalPrefix . '/' . $row['backend_id'] . '-' . $row['resource_id'],
463
+			'uri' => $this->principalPrefix.'/'.$row['backend_id'].'-'.$row['resource_id'],
464 464
 			'{DAV:}displayname' => $row['displayname'],
465 465
 			'{http://sabredav.org/ns}email-address' => $row['email'],
466 466
 			'{urn:ietf:params:xml:ns:caldav}calendar-user-type' => $this->cuType,
@@ -482,7 +482,7 @@  discard block
 block discarded – undo
482 482
 		// group restrictions contains something, but not parsable, deny access and log warning
483 483
 		$json = json_decode($row['group_restrictions']);
484 484
 		if (!\is_array($json)) {
485
-			$this->logger->info('group_restrictions field could not be parsed for ' . $this->dbTableName . '::' . $row['id'] . ', denying access to resource');
485
+			$this->logger->info('group_restrictions field could not be parsed for '.$this->dbTableName.'::'.$row['id'].', denying access to resource');
486 486
 			return false;
487 487
 		}
488 488
 
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -29,17 +29,17 @@
 block discarded – undo
29 29
 
30 30
 class RoomPrincipalBackend extends AbstractPrincipalBackend {
31 31
 
32
-	/**
33
-	 * @param IDBConnection $dbConnection
34
-	 * @param IUserSession $userSession
35
-	 * @param IGroupManager $groupManager
36
-	 * @param ILogger $logger
37
-	 */
38
-	public function __construct(IDBConnection $dbConnection,
39
-								IUserSession $userSession,
40
-								IGroupManager $groupManager,
41
-								ILogger $logger) {
42
-		parent::__construct($dbConnection, $userSession, $groupManager, $logger,
43
-			'principals/calendar-rooms', 'room', 'ROOM');
44
-	}
32
+    /**
33
+     * @param IDBConnection $dbConnection
34
+     * @param IUserSession $userSession
35
+     * @param IGroupManager $groupManager
36
+     * @param ILogger $logger
37
+     */
38
+    public function __construct(IDBConnection $dbConnection,
39
+                                IUserSession $userSession,
40
+                                IGroupManager $groupManager,
41
+                                ILogger $logger) {
42
+        parent::__construct($dbConnection, $userSession, $groupManager, $logger,
43
+            'principals/calendar-rooms', 'room', 'ROOM');
44
+    }
45 45
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -29,17 +29,17 @@
 block discarded – undo
29 29
 
30 30
 class ResourcePrincipalBackend extends AbstractPrincipalBackend {
31 31
 
32
-	/**
33
-	 * @param IDBConnection $dbConnection
34
-	 * @param IUserSession $userSession
35
-	 * @param IGroupManager $groupManager
36
-	 * @param ILogger $logger
37
-	 */
38
-	public function __construct(IDBConnection $dbConnection,
39
-								IUserSession $userSession,
40
-								IGroupManager $groupManager,
41
-								ILogger $logger) {
42
-		parent::__construct($dbConnection, $userSession, $groupManager, $logger,
43
-			'principals/calendar-resources', 'resource', 'RESOURCE');
44
-	}
32
+    /**
33
+     * @param IDBConnection $dbConnection
34
+     * @param IUserSession $userSession
35
+     * @param IGroupManager $groupManager
36
+     * @param ILogger $logger
37
+     */
38
+    public function __construct(IDBConnection $dbConnection,
39
+                                IUserSession $userSession,
40
+                                IGroupManager $groupManager,
41
+                                ILogger $logger) {
42
+        parent::__construct($dbConnection, $userSession, $groupManager, $logger,
43
+            'principals/calendar-resources', 'resource', 'RESOURCE');
44
+    }
45 45
 }
Please login to merge, or discard this patch.
apps/dav/lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php 2 patches
Indentation   +400 added lines, -400 removed lines patch added patch discarded remove patch
@@ -36,404 +36,404 @@
 block discarded – undo
36 36
 
37 37
 class UpdateCalendarResourcesRoomsBackgroundJob extends TimedJob {
38 38
 
39
-	/** @var IResourceManager */
40
-	private $resourceManager;
41
-
42
-	/** @var IRoomManager */
43
-	private $roomManager;
44
-
45
-	/** @var IDBConnection */
46
-	private $dbConnection;
47
-
48
-	/** @var CalDavBackend */
49
-	private $calDavBackend;
50
-
51
-	/**
52
-	 * UpdateCalendarResourcesRoomsBackgroundJob constructor.
53
-	 *
54
-	 * @param IResourceManager $resourceManager
55
-	 * @param IRoomManager $roomManager
56
-	 * @param IDBConnection $dbConnection
57
-	 * @param CalDavBackend $calDavBackend
58
-	 */
59
-	public function __construct(IResourceManager $resourceManager,
60
-								IRoomManager $roomManager,
61
-								IDBConnection $dbConnection,
62
-								CalDavBackend $calDavBackend) {
63
-		$this->resourceManager = $resourceManager;
64
-		$this->roomManager = $roomManager;
65
-		$this->dbConnection = $dbConnection;
66
-		$this->calDavBackend = $calDavBackend;
67
-
68
-		// run once an hour
69
-		$this->setInterval(60 * 60);
70
-	}
71
-
72
-	/**
73
-	 * @param $argument
74
-	 */
75
-	public function run($argument):void {
76
-		$this->runForBackend(
77
-			$this->resourceManager,
78
-			'calendar_resources',
79
-			'calendar_resources_md',
80
-			'resource_id',
81
-			'principals/calendar-resources'
82
-		);
83
-		$this->runForBackend(
84
-			$this->roomManager,
85
-			'calendar_rooms',
86
-			'calendar_rooms_md',
87
-			'room_id',
88
-			'principals/calendar-rooms'
89
-		);
90
-	}
91
-
92
-	/**
93
-	 * Run background-job for one specific backendManager
94
-	 * either ResourceManager or RoomManager
95
-	 *
96
-	 * @param IResourceManager|IRoomManager $backendManager
97
-	 * @param string $dbTable
98
-	 * @param string $dbTableMetadata
99
-	 * @param string $foreignKey
100
-	 * @param string $principalPrefix
101
-	 */
102
-	private function runForBackend($backendManager,
103
-								   string $dbTable,
104
-								   string $dbTableMetadata,
105
-								   string $foreignKey,
106
-								   string $principalPrefix):void {
107
-		$backends = $backendManager->getBackends();
108
-
109
-		foreach($backends as $backend) {
110
-			$backendId = $backend->getBackendIdentifier();
111
-
112
-			try {
113
-				if ($backend instanceof IResourceBackend) {
114
-					$list = $backend->listAllResources();
115
-				} else {
116
-					$list = $backend->listAllRooms();
117
-				}
118
-			} catch(BackendTemporarilyUnavailableException $ex) {
119
-				continue;
120
-			}
121
-
122
-			$cachedList = $this->getAllCachedByBackend($dbTable, $backendId);
123
-			$newIds = array_diff($list, $cachedList);
124
-			$deletedIds = array_diff($cachedList, $list);
125
-			$editedIds = array_intersect($list, $cachedList);
126
-
127
-			foreach($newIds as $newId) {
128
-				try {
129
-					if ($backend instanceof IResourceBackend) {
130
-						$resource = $backend->getResource($newId);
131
-					} else {
132
-						$resource = $backend->getRoom($newId);
133
-					}
134
-
135
-					$metadata = [];
136
-					if ($resource instanceof IMetadataProvider) {
137
-						$metadata = $this->getAllMetadataOfBackend($resource);
138
-					}
139
-				} catch(BackendTemporarilyUnavailableException $ex) {
140
-					continue;
141
-				}
142
-
143
-				$id = $this->addToCache($dbTable, $backendId, $resource);
144
-				$this->addMetadataToCache($dbTableMetadata, $foreignKey, $id, $metadata);
145
-				// we don't create the calendar here, it is created lazily
146
-				// when an event is actually scheduled with this resource / room
147
-			}
148
-
149
-			foreach($deletedIds as $deletedId) {
150
-				$id = $this->getIdForBackendAndResource($dbTable, $backendId, $deletedId);
151
-				$this->deleteFromCache($dbTable, $id);
152
-				$this->deleteMetadataFromCache($dbTableMetadata, $foreignKey, $id);
153
-
154
-				$principalName = implode('-', [$backendId, $deletedId]);
155
-				$this->deleteCalendarDataForResource($principalPrefix, $principalName);
156
-			}
157
-
158
-			foreach($editedIds as $editedId) {
159
-				$id = $this->getIdForBackendAndResource($dbTable, $backendId, $editedId);
160
-
161
-				try {
162
-					if ($backend instanceof IResourceBackend) {
163
-						$resource = $backend->getResource($editedId);
164
-					} else {
165
-						$resource = $backend->getRoom($editedId);
166
-					}
167
-
168
-					$metadata = [];
169
-					if ($resource instanceof IMetadataProvider) {
170
-						$metadata = $this->getAllMetadataOfBackend($resource);
171
-					}
172
-				} catch(BackendTemporarilyUnavailableException $ex) {
173
-					continue;
174
-				}
175
-
176
-				$this->updateCache($dbTable, $id, $resource);
177
-
178
-				if ($resource instanceof IMetadataProvider) {
179
-					$cachedMetadata = $this->getAllMetadataOfCache($dbTableMetadata, $foreignKey, $id);
180
-					$this->updateMetadataCache($dbTableMetadata, $foreignKey, $id, $metadata, $cachedMetadata);
181
-				}
182
-			}
183
-		}
184
-	}
185
-
186
-	/**
187
-	 * add entry to cache that exists remotely but not yet in cache
188
-	 *
189
-	 * @param string $table
190
-	 * @param string $backendId
191
-	 * @param IResource|IRoom $remote
192
-	 * @return int Insert id
193
-	 */
194
-	private function addToCache(string $table,
195
-								string $backendId,
196
-								$remote):int {
197
-		$query = $this->dbConnection->getQueryBuilder();
198
-		$query->insert($table)
199
-			->values([
200
-				'backend_id' => $query->createNamedParameter($backendId),
201
-				'resource_id' => $query->createNamedParameter($remote->getId()),
202
-				'email' => $query->createNamedParameter($remote->getEMail()),
203
-				'displayname' => $query->createNamedParameter($remote->getDisplayName()),
204
-				'group_restrictions' => $query->createNamedParameter(
205
-					$this->serializeGroupRestrictions(
206
-						$remote->getGroupRestrictions()
207
-					))
208
-			])
209
-			->execute();
210
-		return $query->getLastInsertId();
211
-	}
212
-
213
-	/**
214
-	 * @param string $table
215
-	 * @param string $foreignKey
216
-	 * @param int $foreignId
217
-	 * @param array $metadata
218
-	 */
219
-	private function addMetadataToCache(string $table,
220
-										string $foreignKey,
221
-										int $foreignId,
222
-										array $metadata):void {
223
-		foreach($metadata as $key => $value) {
224
-			$query = $this->dbConnection->getQueryBuilder();
225
-			$query->insert($table)
226
-				->values([
227
-					$foreignKey => $query->createNamedParameter($foreignId),
228
-					'key' => $query->createNamedParameter($key),
229
-					'value' => $query->createNamedParameter($value),
230
-				])
231
-				->execute();
232
-		}
233
-	}
234
-
235
-	/**
236
-	 * delete entry from cache that does not exist anymore remotely
237
-	 *
238
-	 * @param string $table
239
-	 * @param int $id
240
-	 */
241
-	private function deleteFromCache(string $table,
242
-									 int $id):void {
243
-		$query = $this->dbConnection->getQueryBuilder();
244
-		$query->delete($table)
245
-			->where($query->expr()->eq('id', $query->createNamedParameter($id)))
246
-			->execute();
247
-	}
248
-
249
-	/**
250
-	 * @param string $table
251
-	 * @param string $foreignKey
252
-	 * @param int $id
253
-	 */
254
-	private function deleteMetadataFromCache(string $table,
255
-											 string $foreignKey,
256
-											 int $id):void {
257
-		$query = $this->dbConnection->getQueryBuilder();
258
-		$query->delete($table)
259
-			->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)))
260
-			->execute();
261
-	}
262
-
263
-	/**
264
-	 * update an existing entry in cache
265
-	 *
266
-	 * @param string $table
267
-	 * @param int $id
268
-	 * @param IResource|IRoom $remote
269
-	 */
270
-	private function updateCache(string $table,
271
-								 int $id,
272
-								 $remote):void {
273
-		$query = $this->dbConnection->getQueryBuilder();
274
-		$query->update($table)
275
-			->set('email', $query->createNamedParameter($remote->getEMail()))
276
-			->set('displayname', $query->createNamedParameter($remote->getDisplayName()))
277
-			->set('group_restrictions', $query->createNamedParameter(
278
-				$this->serializeGroupRestrictions(
279
-					$remote->getGroupRestrictions()
280
-				)))
281
-			->where($query->expr()->eq('id', $query->createNamedParameter($id)))
282
-			->execute();
283
-	}
284
-
285
-	/**
286
-	 * @param string $dbTable
287
-	 * @param string $foreignKey
288
-	 * @param int $id
289
-	 * @param array $metadata
290
-	 * @param array $cachedMetadata
291
-	 */
292
-	private function updateMetadataCache(string $dbTable,
293
-										 string $foreignKey,
294
-										 int $id,
295
-										 array $metadata,
296
-										 array $cachedMetadata):void {
297
-		$newMetadata = array_diff_key($metadata, $cachedMetadata);
298
-		$deletedMetadata = array_diff_key($cachedMetadata, $metadata);
299
-
300
-		foreach ($newMetadata as $key => $value) {
301
-			$query = $this->dbConnection->getQueryBuilder();
302
-			$query->insert($dbTable)
303
-				->values([
304
-					$foreignKey => $query->createNamedParameter($id),
305
-					'key' => $query->createNamedParameter($key),
306
-					'value' => $query->createNamedParameter($value),
307
-				])
308
-				->execute();
309
-		}
310
-
311
-		foreach($deletedMetadata as $key => $value) {
312
-			$query = $this->dbConnection->getQueryBuilder();
313
-			$query->delete($dbTable)
314
-				->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)))
315
-				->andWhere($query->expr()->eq('key', $query->createNamedParameter($key)))
316
-				->execute();
317
-		}
318
-
319
-		$existingKeys = array_keys(array_intersect_key($metadata, $cachedMetadata));
320
-		foreach($existingKeys as $existingKey) {
321
-			if ($metadata[$existingKey] !== $cachedMetadata[$existingKey]) {
322
-				$query = $this->dbConnection->getQueryBuilder();
323
-				$query->update($dbTable)
324
-					->set('value', $query->createNamedParameter($metadata[$existingKey]))
325
-					->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)))
326
-					->andWhere($query->expr()->eq('key', $query->createNamedParameter($existingKey)))
327
-					->execute();
328
-			}
329
-		}
330
-	}
331
-
332
-	/**
333
-	 * serialize array of group restrictions to store them in database
334
-	 *
335
-	 * @param array $groups
336
-	 * @return string
337
-	 */
338
-	private function serializeGroupRestrictions(array $groups):string {
339
-		return \json_encode($groups);
340
-	}
341
-
342
-	/**
343
-	 * Gets all metadata of a backend
344
-	 *
345
-	 * @param IResource|IRoom $resource
346
-	 * @return array
347
-	 */
348
-	private function getAllMetadataOfBackend($resource):array {
349
-		if (!($resource instanceof IMetadataProvider)) {
350
-			return [];
351
-		}
352
-
353
-		$keys = $resource->getAllAvailableMetadataKeys();
354
-		$metadata = [];
355
-		foreach($keys as $key) {
356
-			$metadata[$key] = $resource->getMetadataForKey($key);
357
-		}
358
-
359
-		return $metadata;
360
-	}
361
-
362
-	/**
363
-	 * @param string $table
364
-	 * @param string $foreignKey
365
-	 * @param int $id
366
-	 * @return array
367
-	 */
368
-	private function getAllMetadataOfCache(string $table,
369
-										   string $foreignKey,
370
-										   int $id):array {
371
-		$query = $this->dbConnection->getQueryBuilder();
372
-		$query->select(['key', 'value'])
373
-			->from($table)
374
-			->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)));
375
-		$stmt = $query->execute();
376
-		$rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
377
-
378
-		$metadata = [];
379
-		foreach($rows as $row) {
380
-			$metadata[$row['key']] = $row['value'];
381
-		}
382
-
383
-		return $metadata;
384
-	}
385
-
386
-	/**
387
-	 * Gets all cached rooms / resources by backend
388
-	 *
389
-	 * @param $tableName
390
-	 * @param $backendId
391
-	 * @return array
392
-	 */
393
-	private function getAllCachedByBackend(string $tableName,
394
-										   string $backendId):array {
395
-		$query = $this->dbConnection->getQueryBuilder();
396
-		$query->select('resource_id')
397
-			->from($tableName)
398
-			->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId)));
399
-		$stmt = $query->execute();
400
-
401
-		return array_map(function($row) {
402
-			return $row['resource_id'];
403
-		}, $stmt->fetchAll(\PDO::FETCH_NAMED));
404
-	}
405
-
406
-	/**
407
-	 * @param $principalPrefix
408
-	 * @param $principalUri
409
-	 */
410
-	private function deleteCalendarDataForResource(string $principalPrefix,
411
-												   string $principalUri):void {
412
-		$calendar = $this->calDavBackend->getCalendarByUri(
413
-			implode('/', [$principalPrefix, $principalUri]),
414
-			CalDavBackend::RESOURCE_BOOKING_CALENDAR_URI);
415
-
416
-		if ($calendar !== null) {
417
-			$this->calDavBackend->deleteCalendar($calendar['id']);
418
-		}
419
-	}
420
-
421
-	/**
422
-	 * @param $table
423
-	 * @param $backendId
424
-	 * @param $resourceId
425
-	 * @return int
426
-	 */
427
-	private function getIdForBackendAndResource(string $table,
428
-												string $backendId,
429
-												string $resourceId):int {
430
-		$query = $this->dbConnection->getQueryBuilder();
431
-		$query->select('id')
432
-			->from($table)
433
-			->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId)))
434
-			->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($resourceId)));
435
-		$stmt = $query->execute();
436
-
437
-		return $stmt->fetch(\PDO::FETCH_NAMED)['id'];
438
-	}
39
+    /** @var IResourceManager */
40
+    private $resourceManager;
41
+
42
+    /** @var IRoomManager */
43
+    private $roomManager;
44
+
45
+    /** @var IDBConnection */
46
+    private $dbConnection;
47
+
48
+    /** @var CalDavBackend */
49
+    private $calDavBackend;
50
+
51
+    /**
52
+     * UpdateCalendarResourcesRoomsBackgroundJob constructor.
53
+     *
54
+     * @param IResourceManager $resourceManager
55
+     * @param IRoomManager $roomManager
56
+     * @param IDBConnection $dbConnection
57
+     * @param CalDavBackend $calDavBackend
58
+     */
59
+    public function __construct(IResourceManager $resourceManager,
60
+                                IRoomManager $roomManager,
61
+                                IDBConnection $dbConnection,
62
+                                CalDavBackend $calDavBackend) {
63
+        $this->resourceManager = $resourceManager;
64
+        $this->roomManager = $roomManager;
65
+        $this->dbConnection = $dbConnection;
66
+        $this->calDavBackend = $calDavBackend;
67
+
68
+        // run once an hour
69
+        $this->setInterval(60 * 60);
70
+    }
71
+
72
+    /**
73
+     * @param $argument
74
+     */
75
+    public function run($argument):void {
76
+        $this->runForBackend(
77
+            $this->resourceManager,
78
+            'calendar_resources',
79
+            'calendar_resources_md',
80
+            'resource_id',
81
+            'principals/calendar-resources'
82
+        );
83
+        $this->runForBackend(
84
+            $this->roomManager,
85
+            'calendar_rooms',
86
+            'calendar_rooms_md',
87
+            'room_id',
88
+            'principals/calendar-rooms'
89
+        );
90
+    }
91
+
92
+    /**
93
+     * Run background-job for one specific backendManager
94
+     * either ResourceManager or RoomManager
95
+     *
96
+     * @param IResourceManager|IRoomManager $backendManager
97
+     * @param string $dbTable
98
+     * @param string $dbTableMetadata
99
+     * @param string $foreignKey
100
+     * @param string $principalPrefix
101
+     */
102
+    private function runForBackend($backendManager,
103
+                                    string $dbTable,
104
+                                    string $dbTableMetadata,
105
+                                    string $foreignKey,
106
+                                    string $principalPrefix):void {
107
+        $backends = $backendManager->getBackends();
108
+
109
+        foreach($backends as $backend) {
110
+            $backendId = $backend->getBackendIdentifier();
111
+
112
+            try {
113
+                if ($backend instanceof IResourceBackend) {
114
+                    $list = $backend->listAllResources();
115
+                } else {
116
+                    $list = $backend->listAllRooms();
117
+                }
118
+            } catch(BackendTemporarilyUnavailableException $ex) {
119
+                continue;
120
+            }
121
+
122
+            $cachedList = $this->getAllCachedByBackend($dbTable, $backendId);
123
+            $newIds = array_diff($list, $cachedList);
124
+            $deletedIds = array_diff($cachedList, $list);
125
+            $editedIds = array_intersect($list, $cachedList);
126
+
127
+            foreach($newIds as $newId) {
128
+                try {
129
+                    if ($backend instanceof IResourceBackend) {
130
+                        $resource = $backend->getResource($newId);
131
+                    } else {
132
+                        $resource = $backend->getRoom($newId);
133
+                    }
134
+
135
+                    $metadata = [];
136
+                    if ($resource instanceof IMetadataProvider) {
137
+                        $metadata = $this->getAllMetadataOfBackend($resource);
138
+                    }
139
+                } catch(BackendTemporarilyUnavailableException $ex) {
140
+                    continue;
141
+                }
142
+
143
+                $id = $this->addToCache($dbTable, $backendId, $resource);
144
+                $this->addMetadataToCache($dbTableMetadata, $foreignKey, $id, $metadata);
145
+                // we don't create the calendar here, it is created lazily
146
+                // when an event is actually scheduled with this resource / room
147
+            }
148
+
149
+            foreach($deletedIds as $deletedId) {
150
+                $id = $this->getIdForBackendAndResource($dbTable, $backendId, $deletedId);
151
+                $this->deleteFromCache($dbTable, $id);
152
+                $this->deleteMetadataFromCache($dbTableMetadata, $foreignKey, $id);
153
+
154
+                $principalName = implode('-', [$backendId, $deletedId]);
155
+                $this->deleteCalendarDataForResource($principalPrefix, $principalName);
156
+            }
157
+
158
+            foreach($editedIds as $editedId) {
159
+                $id = $this->getIdForBackendAndResource($dbTable, $backendId, $editedId);
160
+
161
+                try {
162
+                    if ($backend instanceof IResourceBackend) {
163
+                        $resource = $backend->getResource($editedId);
164
+                    } else {
165
+                        $resource = $backend->getRoom($editedId);
166
+                    }
167
+
168
+                    $metadata = [];
169
+                    if ($resource instanceof IMetadataProvider) {
170
+                        $metadata = $this->getAllMetadataOfBackend($resource);
171
+                    }
172
+                } catch(BackendTemporarilyUnavailableException $ex) {
173
+                    continue;
174
+                }
175
+
176
+                $this->updateCache($dbTable, $id, $resource);
177
+
178
+                if ($resource instanceof IMetadataProvider) {
179
+                    $cachedMetadata = $this->getAllMetadataOfCache($dbTableMetadata, $foreignKey, $id);
180
+                    $this->updateMetadataCache($dbTableMetadata, $foreignKey, $id, $metadata, $cachedMetadata);
181
+                }
182
+            }
183
+        }
184
+    }
185
+
186
+    /**
187
+     * add entry to cache that exists remotely but not yet in cache
188
+     *
189
+     * @param string $table
190
+     * @param string $backendId
191
+     * @param IResource|IRoom $remote
192
+     * @return int Insert id
193
+     */
194
+    private function addToCache(string $table,
195
+                                string $backendId,
196
+                                $remote):int {
197
+        $query = $this->dbConnection->getQueryBuilder();
198
+        $query->insert($table)
199
+            ->values([
200
+                'backend_id' => $query->createNamedParameter($backendId),
201
+                'resource_id' => $query->createNamedParameter($remote->getId()),
202
+                'email' => $query->createNamedParameter($remote->getEMail()),
203
+                'displayname' => $query->createNamedParameter($remote->getDisplayName()),
204
+                'group_restrictions' => $query->createNamedParameter(
205
+                    $this->serializeGroupRestrictions(
206
+                        $remote->getGroupRestrictions()
207
+                    ))
208
+            ])
209
+            ->execute();
210
+        return $query->getLastInsertId();
211
+    }
212
+
213
+    /**
214
+     * @param string $table
215
+     * @param string $foreignKey
216
+     * @param int $foreignId
217
+     * @param array $metadata
218
+     */
219
+    private function addMetadataToCache(string $table,
220
+                                        string $foreignKey,
221
+                                        int $foreignId,
222
+                                        array $metadata):void {
223
+        foreach($metadata as $key => $value) {
224
+            $query = $this->dbConnection->getQueryBuilder();
225
+            $query->insert($table)
226
+                ->values([
227
+                    $foreignKey => $query->createNamedParameter($foreignId),
228
+                    'key' => $query->createNamedParameter($key),
229
+                    'value' => $query->createNamedParameter($value),
230
+                ])
231
+                ->execute();
232
+        }
233
+    }
234
+
235
+    /**
236
+     * delete entry from cache that does not exist anymore remotely
237
+     *
238
+     * @param string $table
239
+     * @param int $id
240
+     */
241
+    private function deleteFromCache(string $table,
242
+                                        int $id):void {
243
+        $query = $this->dbConnection->getQueryBuilder();
244
+        $query->delete($table)
245
+            ->where($query->expr()->eq('id', $query->createNamedParameter($id)))
246
+            ->execute();
247
+    }
248
+
249
+    /**
250
+     * @param string $table
251
+     * @param string $foreignKey
252
+     * @param int $id
253
+     */
254
+    private function deleteMetadataFromCache(string $table,
255
+                                                string $foreignKey,
256
+                                                int $id):void {
257
+        $query = $this->dbConnection->getQueryBuilder();
258
+        $query->delete($table)
259
+            ->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)))
260
+            ->execute();
261
+    }
262
+
263
+    /**
264
+     * update an existing entry in cache
265
+     *
266
+     * @param string $table
267
+     * @param int $id
268
+     * @param IResource|IRoom $remote
269
+     */
270
+    private function updateCache(string $table,
271
+                                    int $id,
272
+                                    $remote):void {
273
+        $query = $this->dbConnection->getQueryBuilder();
274
+        $query->update($table)
275
+            ->set('email', $query->createNamedParameter($remote->getEMail()))
276
+            ->set('displayname', $query->createNamedParameter($remote->getDisplayName()))
277
+            ->set('group_restrictions', $query->createNamedParameter(
278
+                $this->serializeGroupRestrictions(
279
+                    $remote->getGroupRestrictions()
280
+                )))
281
+            ->where($query->expr()->eq('id', $query->createNamedParameter($id)))
282
+            ->execute();
283
+    }
284
+
285
+    /**
286
+     * @param string $dbTable
287
+     * @param string $foreignKey
288
+     * @param int $id
289
+     * @param array $metadata
290
+     * @param array $cachedMetadata
291
+     */
292
+    private function updateMetadataCache(string $dbTable,
293
+                                            string $foreignKey,
294
+                                            int $id,
295
+                                            array $metadata,
296
+                                            array $cachedMetadata):void {
297
+        $newMetadata = array_diff_key($metadata, $cachedMetadata);
298
+        $deletedMetadata = array_diff_key($cachedMetadata, $metadata);
299
+
300
+        foreach ($newMetadata as $key => $value) {
301
+            $query = $this->dbConnection->getQueryBuilder();
302
+            $query->insert($dbTable)
303
+                ->values([
304
+                    $foreignKey => $query->createNamedParameter($id),
305
+                    'key' => $query->createNamedParameter($key),
306
+                    'value' => $query->createNamedParameter($value),
307
+                ])
308
+                ->execute();
309
+        }
310
+
311
+        foreach($deletedMetadata as $key => $value) {
312
+            $query = $this->dbConnection->getQueryBuilder();
313
+            $query->delete($dbTable)
314
+                ->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)))
315
+                ->andWhere($query->expr()->eq('key', $query->createNamedParameter($key)))
316
+                ->execute();
317
+        }
318
+
319
+        $existingKeys = array_keys(array_intersect_key($metadata, $cachedMetadata));
320
+        foreach($existingKeys as $existingKey) {
321
+            if ($metadata[$existingKey] !== $cachedMetadata[$existingKey]) {
322
+                $query = $this->dbConnection->getQueryBuilder();
323
+                $query->update($dbTable)
324
+                    ->set('value', $query->createNamedParameter($metadata[$existingKey]))
325
+                    ->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)))
326
+                    ->andWhere($query->expr()->eq('key', $query->createNamedParameter($existingKey)))
327
+                    ->execute();
328
+            }
329
+        }
330
+    }
331
+
332
+    /**
333
+     * serialize array of group restrictions to store them in database
334
+     *
335
+     * @param array $groups
336
+     * @return string
337
+     */
338
+    private function serializeGroupRestrictions(array $groups):string {
339
+        return \json_encode($groups);
340
+    }
341
+
342
+    /**
343
+     * Gets all metadata of a backend
344
+     *
345
+     * @param IResource|IRoom $resource
346
+     * @return array
347
+     */
348
+    private function getAllMetadataOfBackend($resource):array {
349
+        if (!($resource instanceof IMetadataProvider)) {
350
+            return [];
351
+        }
352
+
353
+        $keys = $resource->getAllAvailableMetadataKeys();
354
+        $metadata = [];
355
+        foreach($keys as $key) {
356
+            $metadata[$key] = $resource->getMetadataForKey($key);
357
+        }
358
+
359
+        return $metadata;
360
+    }
361
+
362
+    /**
363
+     * @param string $table
364
+     * @param string $foreignKey
365
+     * @param int $id
366
+     * @return array
367
+     */
368
+    private function getAllMetadataOfCache(string $table,
369
+                                            string $foreignKey,
370
+                                            int $id):array {
371
+        $query = $this->dbConnection->getQueryBuilder();
372
+        $query->select(['key', 'value'])
373
+            ->from($table)
374
+            ->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)));
375
+        $stmt = $query->execute();
376
+        $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
377
+
378
+        $metadata = [];
379
+        foreach($rows as $row) {
380
+            $metadata[$row['key']] = $row['value'];
381
+        }
382
+
383
+        return $metadata;
384
+    }
385
+
386
+    /**
387
+     * Gets all cached rooms / resources by backend
388
+     *
389
+     * @param $tableName
390
+     * @param $backendId
391
+     * @return array
392
+     */
393
+    private function getAllCachedByBackend(string $tableName,
394
+                                            string $backendId):array {
395
+        $query = $this->dbConnection->getQueryBuilder();
396
+        $query->select('resource_id')
397
+            ->from($tableName)
398
+            ->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId)));
399
+        $stmt = $query->execute();
400
+
401
+        return array_map(function($row) {
402
+            return $row['resource_id'];
403
+        }, $stmt->fetchAll(\PDO::FETCH_NAMED));
404
+    }
405
+
406
+    /**
407
+     * @param $principalPrefix
408
+     * @param $principalUri
409
+     */
410
+    private function deleteCalendarDataForResource(string $principalPrefix,
411
+                                                    string $principalUri):void {
412
+        $calendar = $this->calDavBackend->getCalendarByUri(
413
+            implode('/', [$principalPrefix, $principalUri]),
414
+            CalDavBackend::RESOURCE_BOOKING_CALENDAR_URI);
415
+
416
+        if ($calendar !== null) {
417
+            $this->calDavBackend->deleteCalendar($calendar['id']);
418
+        }
419
+    }
420
+
421
+    /**
422
+     * @param $table
423
+     * @param $backendId
424
+     * @param $resourceId
425
+     * @return int
426
+     */
427
+    private function getIdForBackendAndResource(string $table,
428
+                                                string $backendId,
429
+                                                string $resourceId):int {
430
+        $query = $this->dbConnection->getQueryBuilder();
431
+        $query->select('id')
432
+            ->from($table)
433
+            ->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId)))
434
+            ->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($resourceId)));
435
+        $stmt = $query->execute();
436
+
437
+        return $stmt->fetch(\PDO::FETCH_NAMED)['id'];
438
+    }
439 439
 }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
 								   string $principalPrefix):void {
107 107
 		$backends = $backendManager->getBackends();
108 108
 
109
-		foreach($backends as $backend) {
109
+		foreach ($backends as $backend) {
110 110
 			$backendId = $backend->getBackendIdentifier();
111 111
 
112 112
 			try {
@@ -115,7 +115,7 @@  discard block
 block discarded – undo
115 115
 				} else {
116 116
 					$list = $backend->listAllRooms();
117 117
 				}
118
-			} catch(BackendTemporarilyUnavailableException $ex) {
118
+			} catch (BackendTemporarilyUnavailableException $ex) {
119 119
 				continue;
120 120
 			}
121 121
 
@@ -124,7 +124,7 @@  discard block
 block discarded – undo
124 124
 			$deletedIds = array_diff($cachedList, $list);
125 125
 			$editedIds = array_intersect($list, $cachedList);
126 126
 
127
-			foreach($newIds as $newId) {
127
+			foreach ($newIds as $newId) {
128 128
 				try {
129 129
 					if ($backend instanceof IResourceBackend) {
130 130
 						$resource = $backend->getResource($newId);
@@ -136,7 +136,7 @@  discard block
 block discarded – undo
136 136
 					if ($resource instanceof IMetadataProvider) {
137 137
 						$metadata = $this->getAllMetadataOfBackend($resource);
138 138
 					}
139
-				} catch(BackendTemporarilyUnavailableException $ex) {
139
+				} catch (BackendTemporarilyUnavailableException $ex) {
140 140
 					continue;
141 141
 				}
142 142
 
@@ -146,7 +146,7 @@  discard block
 block discarded – undo
146 146
 				// when an event is actually scheduled with this resource / room
147 147
 			}
148 148
 
149
-			foreach($deletedIds as $deletedId) {
149
+			foreach ($deletedIds as $deletedId) {
150 150
 				$id = $this->getIdForBackendAndResource($dbTable, $backendId, $deletedId);
151 151
 				$this->deleteFromCache($dbTable, $id);
152 152
 				$this->deleteMetadataFromCache($dbTableMetadata, $foreignKey, $id);
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
 				$this->deleteCalendarDataForResource($principalPrefix, $principalName);
156 156
 			}
157 157
 
158
-			foreach($editedIds as $editedId) {
158
+			foreach ($editedIds as $editedId) {
159 159
 				$id = $this->getIdForBackendAndResource($dbTable, $backendId, $editedId);
160 160
 
161 161
 				try {
@@ -169,7 +169,7 @@  discard block
 block discarded – undo
169 169
 					if ($resource instanceof IMetadataProvider) {
170 170
 						$metadata = $this->getAllMetadataOfBackend($resource);
171 171
 					}
172
-				} catch(BackendTemporarilyUnavailableException $ex) {
172
+				} catch (BackendTemporarilyUnavailableException $ex) {
173 173
 					continue;
174 174
 				}
175 175
 
@@ -220,7 +220,7 @@  discard block
 block discarded – undo
220 220
 										string $foreignKey,
221 221
 										int $foreignId,
222 222
 										array $metadata):void {
223
-		foreach($metadata as $key => $value) {
223
+		foreach ($metadata as $key => $value) {
224 224
 			$query = $this->dbConnection->getQueryBuilder();
225 225
 			$query->insert($table)
226 226
 				->values([
@@ -308,7 +308,7 @@  discard block
 block discarded – undo
308 308
 				->execute();
309 309
 		}
310 310
 
311
-		foreach($deletedMetadata as $key => $value) {
311
+		foreach ($deletedMetadata as $key => $value) {
312 312
 			$query = $this->dbConnection->getQueryBuilder();
313 313
 			$query->delete($dbTable)
314 314
 				->where($query->expr()->eq($foreignKey, $query->createNamedParameter($id)))
@@ -317,7 +317,7 @@  discard block
 block discarded – undo
317 317
 		}
318 318
 
319 319
 		$existingKeys = array_keys(array_intersect_key($metadata, $cachedMetadata));
320
-		foreach($existingKeys as $existingKey) {
320
+		foreach ($existingKeys as $existingKey) {
321 321
 			if ($metadata[$existingKey] !== $cachedMetadata[$existingKey]) {
322 322
 				$query = $this->dbConnection->getQueryBuilder();
323 323
 				$query->update($dbTable)
@@ -352,7 +352,7 @@  discard block
 block discarded – undo
352 352
 
353 353
 		$keys = $resource->getAllAvailableMetadataKeys();
354 354
 		$metadata = [];
355
-		foreach($keys as $key) {
355
+		foreach ($keys as $key) {
356 356
 			$metadata[$key] = $resource->getMetadataForKey($key);
357 357
 		}
358 358
 
@@ -376,7 +376,7 @@  discard block
 block discarded – undo
376 376
 		$rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
377 377
 
378 378
 		$metadata = [];
379
-		foreach($rows as $row) {
379
+		foreach ($rows as $row) {
380 380
 			$metadata[$row['key']] = $row['value'];
381 381
 		}
382 382
 
Please login to merge, or discard this patch.
apps/dav/lib/Migration/Version1011Date20190725113607.php 2 patches
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -15,55 +15,55 @@
 block discarded – undo
15 15
  */
16 16
 class Version1011Date20190725113607 extends SimpleMigrationStep {
17 17
 
18
-	/**
19
-	 * @param IOutput $output
20
-	 * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
21
-	 * @param array $options
22
-	 * @return null|ISchemaWrapper
23
-	 * @since 13.0.0
24
-	 */
25
-	public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
26
-		/** @var ISchemaWrapper $schema */
27
-		$schema = $schemaClosure();
18
+    /**
19
+     * @param IOutput $output
20
+     * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
21
+     * @param array $options
22
+     * @return null|ISchemaWrapper
23
+     * @since 13.0.0
24
+     */
25
+    public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
26
+        /** @var ISchemaWrapper $schema */
27
+        $schema = $schemaClosure();
28 28
 
29
-		$types = ['resource', 'room'];
30
-		foreach($types as $type) {
31
-			if (!$schema->hasTable($this->getMetadataTableName($type))) {
32
-				$table = $schema->createTable($this->getMetadataTableName($type));
29
+        $types = ['resource', 'room'];
30
+        foreach($types as $type) {
31
+            if (!$schema->hasTable($this->getMetadataTableName($type))) {
32
+                $table = $schema->createTable($this->getMetadataTableName($type));
33 33
 
34
-				$table->addColumn('id', Type::BIGINT, [
35
-					'autoincrement' => true,
36
-					'notnull' => true,
37
-					'length' => 11,
38
-					'unsigned' => true,
39
-				]);
40
-				$table->addColumn($type . '_id', Type::BIGINT, [
41
-					'notnull' => true,
42
-					'length' => 11,
43
-					'unsigned' => true,
44
-				]);
45
-				$table->addColumn('key', Type::STRING, [
46
-					'notnull' => true,
47
-					'length' => 255,
48
-				]);
49
-				$table->addColumn('value', Type::STRING, [
50
-					'notnull' => false,
51
-					'length' => 4000,
52
-				]);
34
+                $table->addColumn('id', Type::BIGINT, [
35
+                    'autoincrement' => true,
36
+                    'notnull' => true,
37
+                    'length' => 11,
38
+                    'unsigned' => true,
39
+                ]);
40
+                $table->addColumn($type . '_id', Type::BIGINT, [
41
+                    'notnull' => true,
42
+                    'length' => 11,
43
+                    'unsigned' => true,
44
+                ]);
45
+                $table->addColumn('key', Type::STRING, [
46
+                    'notnull' => true,
47
+                    'length' => 255,
48
+                ]);
49
+                $table->addColumn('value', Type::STRING, [
50
+                    'notnull' => false,
51
+                    'length' => 4000,
52
+                ]);
53 53
 
54
-				$table->setPrimaryKey(['id']);
55
-				$table->addIndex([$type . '_id', 'key'], $this->getMetadataTableName($type) . '_idk');
56
-			}
57
-		}
54
+                $table->setPrimaryKey(['id']);
55
+                $table->addIndex([$type . '_id', 'key'], $this->getMetadataTableName($type) . '_idk');
56
+            }
57
+        }
58 58
 
59
-		return $schema;
60
-	}
59
+        return $schema;
60
+    }
61 61
 
62
-	/**
63
-	 * @param string $type
64
-	 * @return string
65
-	 */
66
-	private function getMetadataTableName(string $type):string {
67
-		return 'calendar_' . $type . 's_md';
68
-	}
62
+    /**
63
+     * @param string $type
64
+     * @return string
65
+     */
66
+    private function getMetadataTableName(string $type):string {
67
+        return 'calendar_' . $type . 's_md';
68
+    }
69 69
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@  discard block
 block discarded – undo
27 27
 		$schema = $schemaClosure();
28 28
 
29 29
 		$types = ['resource', 'room'];
30
-		foreach($types as $type) {
30
+		foreach ($types as $type) {
31 31
 			if (!$schema->hasTable($this->getMetadataTableName($type))) {
32 32
 				$table = $schema->createTable($this->getMetadataTableName($type));
33 33
 
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 					'length' => 11,
38 38
 					'unsigned' => true,
39 39
 				]);
40
-				$table->addColumn($type . '_id', Type::BIGINT, [
40
+				$table->addColumn($type.'_id', Type::BIGINT, [
41 41
 					'notnull' => true,
42 42
 					'length' => 11,
43 43
 					'unsigned' => true,
@@ -52,7 +52,7 @@  discard block
 block discarded – undo
52 52
 				]);
53 53
 
54 54
 				$table->setPrimaryKey(['id']);
55
-				$table->addIndex([$type . '_id', 'key'], $this->getMetadataTableName($type) . '_idk');
55
+				$table->addIndex([$type.'_id', 'key'], $this->getMetadataTableName($type).'_idk');
56 56
 			}
57 57
 		}
58 58
 
@@ -64,6 +64,6 @@  discard block
 block discarded – undo
64 64
 	 * @return string
65 65
 	 */
66 66
 	private function getMetadataTableName(string $type):string {
67
-		return 'calendar_' . $type . 's_md';
67
+		return 'calendar_'.$type.'s_md';
68 68
 	}
69 69
 }
Please login to merge, or discard this patch.
apps/dav/composer/composer/autoload_static.php 1 patch
Spacing   +200 added lines, -200 removed lines patch added patch discarded remove patch
@@ -6,219 +6,219 @@
 block discarded – undo
6 6
 
7 7
 class ComposerStaticInitDAV
8 8
 {
9
-    public static $prefixLengthsPsr4 = array (
9
+    public static $prefixLengthsPsr4 = array(
10 10
         'O' => 
11
-        array (
11
+        array(
12 12
             'OCA\\DAV\\' => 8,
13 13
         ),
14 14
     );
15 15
 
16
-    public static $prefixDirsPsr4 = array (
16
+    public static $prefixDirsPsr4 = array(
17 17
         'OCA\\DAV\\' => 
18
-        array (
19
-            0 => __DIR__ . '/..' . '/../lib',
18
+        array(
19
+            0 => __DIR__.'/..'.'/../lib',
20 20
         ),
21 21
     );
22 22
 
23
-    public static $classMap = array (
24
-        'OCA\\DAV\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
25
-        'OCA\\DAV\\AppInfo\\PluginManager' => __DIR__ . '/..' . '/../lib/AppInfo/PluginManager.php',
26
-        'OCA\\DAV\\Avatars\\AvatarHome' => __DIR__ . '/..' . '/../lib/Avatars/AvatarHome.php',
27
-        'OCA\\DAV\\Avatars\\AvatarNode' => __DIR__ . '/..' . '/../lib/Avatars/AvatarNode.php',
28
-        'OCA\\DAV\\Avatars\\RootCollection' => __DIR__ . '/..' . '/../lib/Avatars/RootCollection.php',
29
-        'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupDirectLinksJob.php',
30
-        'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
31
-        'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
32
-        'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/RefreshWebcalJob.php',
33
-        'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => __DIR__ . '/..' . '/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
34
-        'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
35
-        'OCA\\DAV\\BackgroundJob\\UploadCleanup' => __DIR__ . '/..' . '/../lib/BackgroundJob/UploadCleanup.php',
36
-        'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Backend.php',
37
-        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Calendar.php',
38
-        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Todo.php',
39
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Base.php',
40
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Calendar.php',
41
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Event.php',
42
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Todo.php',
43
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Calendar.php',
44
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Event.php',
45
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Todo.php',
46
-        'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
47
-        'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayService.php',
48
-        'OCA\\DAV\\CalDAV\\CachedSubscription' => __DIR__ . '/..' . '/../lib/CalDAV/CachedSubscription.php',
49
-        'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => __DIR__ . '/..' . '/../lib/CalDAV/CachedSubscriptionObject.php',
50
-        'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__ . '/..' . '/../lib/CalDAV/CalDavBackend.php',
51
-        'OCA\\DAV\\CalDAV\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Calendar.php',
52
-        'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarHome.php',
53
-        'OCA\\DAV\\CalDAV\\CalendarImpl' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarImpl.php',
54
-        'OCA\\DAV\\CalDAV\\CalendarManager' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarManager.php',
55
-        'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarObject.php',
56
-        'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarRoot.php',
57
-        'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => __DIR__ . '/..' . '/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
58
-        'OCA\\DAV\\CalDAV\\Outbox' => __DIR__ . '/..' . '/../lib/CalDAV/Outbox.php',
59
-        'OCA\\DAV\\CalDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Plugin.php',
60
-        'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/Collection.php',
61
-        'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/User.php',
62
-        'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendar.php',
63
-        'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarObject.php',
64
-        'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarRoot.php',
65
-        'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/PublishPlugin.php',
66
-        'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/Xml/Publisher.php',
67
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
68
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
69
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
70
-        'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/IMipPlugin.php',
71
-        'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/Plugin.php',
72
-        'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Search/SearchPlugin.php',
73
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
74
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
75
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
76
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
77
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
78
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
79
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
80
-        'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/WebcalCaching/Plugin.php',
81
-        'OCA\\DAV\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
82
-        'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBook.php',
83
-        'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookImpl.php',
84
-        'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookRoot.php',
85
-        'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__ . '/..' . '/../lib/CardDAV/CardDavBackend.php',
86
-        'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__ . '/..' . '/../lib/CardDAV/ContactsManager.php',
87
-        'OCA\\DAV\\CardDAV\\Converter' => __DIR__ . '/..' . '/../lib/CardDAV/Converter.php',
88
-        'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/HasPhotoPlugin.php',
89
-        'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/ImageExportPlugin.php',
90
-        'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/MultiGetExportPlugin.php',
91
-        'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__ . '/..' . '/../lib/CardDAV/PhotoCache.php',
92
-        'OCA\\DAV\\CardDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CardDAV/Plugin.php',
93
-        'OCA\\DAV\\CardDAV\\SyncService' => __DIR__ . '/..' . '/../lib/CardDAV/SyncService.php',
94
-        'OCA\\DAV\\CardDAV\\SystemAddressbook' => __DIR__ . '/..' . '/../lib/CardDAV/SystemAddressbook.php',
95
-        'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__ . '/..' . '/../lib/CardDAV/UserAddressBooks.php',
96
-        'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__ . '/..' . '/../lib/CardDAV/Xml/Groups.php',
97
-        'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__ . '/..' . '/../lib/Command/CreateAddressBook.php',
98
-        'OCA\\DAV\\Command\\CreateCalendar' => __DIR__ . '/..' . '/../lib/Command/CreateCalendar.php',
99
-        'OCA\\DAV\\Command\\ListCalendars' => __DIR__ . '/..' . '/../lib/Command/ListCalendars.php',
100
-        'OCA\\DAV\\Command\\MoveCalendar' => __DIR__ . '/..' . '/../lib/Command/MoveCalendar.php',
101
-        'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__ . '/..' . '/../lib/Command/RemoveInvalidShares.php',
102
-        'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__ . '/..' . '/../lib/Command/SyncBirthdayCalendar.php',
103
-        'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__ . '/..' . '/../lib/Command/SyncSystemAddressBook.php',
104
-        'OCA\\DAV\\Comments\\CommentNode' => __DIR__ . '/..' . '/../lib/Comments/CommentNode.php',
105
-        'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__ . '/..' . '/../lib/Comments/CommentsPlugin.php',
106
-        'OCA\\DAV\\Comments\\EntityCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityCollection.php',
107
-        'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityTypeCollection.php',
108
-        'OCA\\DAV\\Comments\\RootCollection' => __DIR__ . '/..' . '/../lib/Comments/RootCollection.php',
109
-        'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__ . '/..' . '/../lib/Connector/LegacyDAVACL.php',
110
-        'OCA\\DAV\\Connector\\PublicAuth' => __DIR__ . '/..' . '/../lib/Connector/PublicAuth.php',
111
-        'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
112
-        'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AppEnabledPlugin.php',
113
-        'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Auth.php',
114
-        'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BearerAuth.php',
115
-        'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
116
-        'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CachingTree.php',
117
-        'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ChecksumList.php',
118
-        'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
119
-        'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
120
-        'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CustomPropertiesBackend.php',
121
-        'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DavAclPlugin.php',
122
-        'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Directory.php',
123
-        'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
124
-        'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
125
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
126
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/FileLocked.php',
127
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/Forbidden.php',
128
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
129
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
130
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
131
-        'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
132
-        'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__ . '/..' . '/../lib/Connector/Sabre/File.php',
133
-        'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesPlugin.php',
134
-        'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesReportPlugin.php',
135
-        'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/LockPlugin.php',
136
-        'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/MaintenancePlugin.php',
137
-        'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Node.php',
138
-        'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ObjectTree.php',
139
-        'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Principal.php',
140
-        'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/QuotaPlugin.php',
141
-        'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Server.php',
142
-        'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ServerFactory.php',
143
-        'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ShareTypeList.php',
144
-        'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/SharesPlugin.php',
145
-        'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagList.php',
146
-        'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagsPlugin.php',
147
-        'OCA\\DAV\\Controller\\BirthdayCalendarController' => __DIR__ . '/..' . '/../lib/Controller/BirthdayCalendarController.php',
148
-        'OCA\\DAV\\Controller\\DirectController' => __DIR__ . '/..' . '/../lib/Controller/DirectController.php',
149
-        'OCA\\DAV\\Controller\\InvitationResponseController' => __DIR__ . '/..' . '/../lib/Controller/InvitationResponseController.php',
150
-        'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__ . '/..' . '/../lib/DAV/CustomPropertiesBackend.php',
151
-        'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/GroupPrincipalBackend.php',
152
-        'OCA\\DAV\\DAV\\PublicAuth' => __DIR__ . '/..' . '/../lib/DAV/PublicAuth.php',
153
-        'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Backend.php',
154
-        'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__ . '/..' . '/../lib/DAV/Sharing/IShareable.php',
155
-        'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Plugin.php',
156
-        'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/Invite.php',
157
-        'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/ShareRequest.php',
158
-        'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/SystemPrincipalBackend.php',
159
-        'OCA\\DAV\\Db\\Direct' => __DIR__ . '/..' . '/../lib/Db/Direct.php',
160
-        'OCA\\DAV\\Db\\DirectMapper' => __DIR__ . '/..' . '/../lib/Db/DirectMapper.php',
161
-        'OCA\\DAV\\Direct\\DirectFile' => __DIR__ . '/..' . '/../lib/Direct/DirectFile.php',
162
-        'OCA\\DAV\\Direct\\DirectHome' => __DIR__ . '/..' . '/../lib/Direct/DirectHome.php',
163
-        'OCA\\DAV\\Direct\\Server' => __DIR__ . '/..' . '/../lib/Direct/Server.php',
164
-        'OCA\\DAV\\Direct\\ServerFactory' => __DIR__ . '/..' . '/../lib/Direct/ServerFactory.php',
165
-        'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => __DIR__ . '/..' . '/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
166
-        'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__ . '/..' . '/../lib/Files/BrowserErrorPagePlugin.php',
167
-        'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__ . '/..' . '/../lib/Files/FileSearchBackend.php',
168
-        'OCA\\DAV\\Files\\FilesHome' => __DIR__ . '/..' . '/../lib/Files/FilesHome.php',
169
-        'OCA\\DAV\\Files\\LazySearchBackend' => __DIR__ . '/..' . '/../lib/Files/LazySearchBackend.php',
170
-        'OCA\\DAV\\Files\\RootCollection' => __DIR__ . '/..' . '/../lib/Files/RootCollection.php',
171
-        'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/FilesDropPlugin.php',
172
-        'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
173
-        'OCA\\DAV\\HookManager' => __DIR__ . '/..' . '/../lib/HookManager.php',
174
-        'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndex.php',
175
-        'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
176
-        'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__ . '/..' . '/../lib/Migration/CalDAVRemoveEmptyValue.php',
177
-        'OCA\\DAV\\Migration\\ChunkCleanup' => __DIR__ . '/..' . '/../lib/Migration/ChunkCleanup.php',
178
-        'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__ . '/..' . '/../lib/Migration/FixBirthdayCalendarComponent.php',
179
-        'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => __DIR__ . '/..' . '/../lib/Migration/RefreshWebcalJobRegistrar.php',
180
-        'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => __DIR__ . '/..' . '/../lib/Migration/RegenerateBirthdayCalendars.php',
181
-        'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => __DIR__ . '/..' . '/../lib/Migration/RemoveClassifiedEventActivity.php',
182
-        'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => __DIR__ . '/..' . '/../lib/Migration/RemoveOrphanEventsAndContacts.php',
183
-        'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170825134824.php',
184
-        'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170919104507.php',
185
-        'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170924124212.php',
186
-        'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170926103422.php',
187
-        'OCA\\DAV\\Migration\\Version1005Date20180413093149' => __DIR__ . '/..' . '/../lib/Migration/Version1005Date20180413093149.php',
188
-        'OCA\\DAV\\Migration\\Version1005Date20180530124431' => __DIR__ . '/..' . '/../lib/Migration/Version1005Date20180530124431.php',
189
-        'OCA\\DAV\\Migration\\Version1006Date20180619154313' => __DIR__ . '/..' . '/../lib/Migration/Version1006Date20180619154313.php',
190
-        'OCA\\DAV\\Migration\\Version1006Date20180628111625' => __DIR__ . '/..' . '/../lib/Migration/Version1006Date20180628111625.php',
191
-        'OCA\\DAV\\Migration\\Version1008Date20181030113700' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181030113700.php',
192
-        'OCA\\DAV\\Migration\\Version1008Date20181105104826' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105104826.php',
193
-        'OCA\\DAV\\Migration\\Version1008Date20181105104833' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105104833.php',
194
-        'OCA\\DAV\\Migration\\Version1008Date20181105110300' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105110300.php',
195
-        'OCA\\DAV\\Migration\\Version1008Date20181105112049' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105112049.php',
196
-        'OCA\\DAV\\Migration\\Version1008Date20181114084440' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181114084440.php',
197
-        'OCA\\DAV\\Migration\\Version1011Date20190725113607' => __DIR__ . '/..' . '/../lib/Migration/Version1011Date20190725113607.php',
198
-        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningNode.php',
199
-        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
200
-        'OCA\\DAV\\RootCollection' => __DIR__ . '/..' . '/../lib/RootCollection.php',
201
-        'OCA\\DAV\\Server' => __DIR__ . '/..' . '/../lib/Server.php',
202
-        'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__ . '/..' . '/../lib/Settings/CalDAVSettings.php',
203
-        'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagMappingNode.php',
204
-        'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagNode.php',
205
-        'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagPlugin.php',
206
-        'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsByIdCollection.php',
207
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
208
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
209
-        'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
210
-        'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__ . '/..' . '/../lib/Upload/AssemblyStream.php',
211
-        'OCA\\DAV\\Upload\\ChunkingPlugin' => __DIR__ . '/..' . '/../lib/Upload/ChunkingPlugin.php',
212
-        'OCA\\DAV\\Upload\\CleanupService' => __DIR__ . '/..' . '/../lib/Upload/CleanupService.php',
213
-        'OCA\\DAV\\Upload\\FutureFile' => __DIR__ . '/..' . '/../lib/Upload/FutureFile.php',
214
-        'OCA\\DAV\\Upload\\RootCollection' => __DIR__ . '/..' . '/../lib/Upload/RootCollection.php',
215
-        'OCA\\DAV\\Upload\\UploadFolder' => __DIR__ . '/..' . '/../lib/Upload/UploadFolder.php',
216
-        'OCA\\DAV\\Upload\\UploadHome' => __DIR__ . '/..' . '/../lib/Upload/UploadHome.php',
23
+    public static $classMap = array(
24
+        'OCA\\DAV\\AppInfo\\Application' => __DIR__.'/..'.'/../lib/AppInfo/Application.php',
25
+        'OCA\\DAV\\AppInfo\\PluginManager' => __DIR__.'/..'.'/../lib/AppInfo/PluginManager.php',
26
+        'OCA\\DAV\\Avatars\\AvatarHome' => __DIR__.'/..'.'/../lib/Avatars/AvatarHome.php',
27
+        'OCA\\DAV\\Avatars\\AvatarNode' => __DIR__.'/..'.'/../lib/Avatars/AvatarNode.php',
28
+        'OCA\\DAV\\Avatars\\RootCollection' => __DIR__.'/..'.'/../lib/Avatars/RootCollection.php',
29
+        'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CleanupDirectLinksJob.php',
30
+        'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
31
+        'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
32
+        'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => __DIR__.'/..'.'/../lib/BackgroundJob/RefreshWebcalJob.php',
33
+        'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => __DIR__.'/..'.'/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
34
+        'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
35
+        'OCA\\DAV\\BackgroundJob\\UploadCleanup' => __DIR__.'/..'.'/../lib/BackgroundJob/UploadCleanup.php',
36
+        'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Backend.php',
37
+        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Filter/Calendar.php',
38
+        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Filter/Todo.php',
39
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Base.php',
40
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Calendar.php',
41
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Event.php',
42
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Todo.php',
43
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Calendar.php',
44
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Event.php',
45
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Todo.php',
46
+        'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => __DIR__.'/..'.'/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
47
+        'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__.'/..'.'/../lib/CalDAV/BirthdayService.php',
48
+        'OCA\\DAV\\CalDAV\\CachedSubscription' => __DIR__.'/..'.'/../lib/CalDAV/CachedSubscription.php',
49
+        'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => __DIR__.'/..'.'/../lib/CalDAV/CachedSubscriptionObject.php',
50
+        'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__.'/..'.'/../lib/CalDAV/CalDavBackend.php',
51
+        'OCA\\DAV\\CalDAV\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Calendar.php',
52
+        'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__.'/..'.'/../lib/CalDAV/CalendarHome.php',
53
+        'OCA\\DAV\\CalDAV\\CalendarImpl' => __DIR__.'/..'.'/../lib/CalDAV/CalendarImpl.php',
54
+        'OCA\\DAV\\CalDAV\\CalendarManager' => __DIR__.'/..'.'/../lib/CalDAV/CalendarManager.php',
55
+        'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/CalendarObject.php',
56
+        'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__.'/..'.'/../lib/CalDAV/CalendarRoot.php',
57
+        'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => __DIR__.'/..'.'/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
58
+        'OCA\\DAV\\CalDAV\\Outbox' => __DIR__.'/..'.'/../lib/CalDAV/Outbox.php',
59
+        'OCA\\DAV\\CalDAV\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Plugin.php',
60
+        'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__.'/..'.'/../lib/CalDAV/Principal/Collection.php',
61
+        'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__.'/..'.'/../lib/CalDAV/Principal/User.php',
62
+        'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendar.php',
63
+        'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendarObject.php',
64
+        'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendarRoot.php',
65
+        'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Publishing/PublishPlugin.php',
66
+        'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__.'/..'.'/../lib/CalDAV/Publishing/Xml/Publisher.php',
67
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
68
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
69
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
70
+        'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/IMipPlugin.php',
71
+        'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/Plugin.php',
72
+        'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Search/SearchPlugin.php',
73
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
74
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
75
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
76
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
77
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
78
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
79
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
80
+        'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/WebcalCaching/Plugin.php',
81
+        'OCA\\DAV\\Capabilities' => __DIR__.'/..'.'/../lib/Capabilities.php',
82
+        'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__.'/..'.'/../lib/CardDAV/AddressBook.php',
83
+        'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__.'/..'.'/../lib/CardDAV/AddressBookImpl.php',
84
+        'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__.'/..'.'/../lib/CardDAV/AddressBookRoot.php',
85
+        'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__.'/..'.'/../lib/CardDAV/CardDavBackend.php',
86
+        'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__.'/..'.'/../lib/CardDAV/ContactsManager.php',
87
+        'OCA\\DAV\\CardDAV\\Converter' => __DIR__.'/..'.'/../lib/CardDAV/Converter.php',
88
+        'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => __DIR__.'/..'.'/../lib/CardDAV/HasPhotoPlugin.php',
89
+        'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__.'/..'.'/../lib/CardDAV/ImageExportPlugin.php',
90
+        'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => __DIR__.'/..'.'/../lib/CardDAV/MultiGetExportPlugin.php',
91
+        'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__.'/..'.'/../lib/CardDAV/PhotoCache.php',
92
+        'OCA\\DAV\\CardDAV\\Plugin' => __DIR__.'/..'.'/../lib/CardDAV/Plugin.php',
93
+        'OCA\\DAV\\CardDAV\\SyncService' => __DIR__.'/..'.'/../lib/CardDAV/SyncService.php',
94
+        'OCA\\DAV\\CardDAV\\SystemAddressbook' => __DIR__.'/..'.'/../lib/CardDAV/SystemAddressbook.php',
95
+        'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__.'/..'.'/../lib/CardDAV/UserAddressBooks.php',
96
+        'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__.'/..'.'/../lib/CardDAV/Xml/Groups.php',
97
+        'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__.'/..'.'/../lib/Command/CreateAddressBook.php',
98
+        'OCA\\DAV\\Command\\CreateCalendar' => __DIR__.'/..'.'/../lib/Command/CreateCalendar.php',
99
+        'OCA\\DAV\\Command\\ListCalendars' => __DIR__.'/..'.'/../lib/Command/ListCalendars.php',
100
+        'OCA\\DAV\\Command\\MoveCalendar' => __DIR__.'/..'.'/../lib/Command/MoveCalendar.php',
101
+        'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__.'/..'.'/../lib/Command/RemoveInvalidShares.php',
102
+        'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__.'/..'.'/../lib/Command/SyncBirthdayCalendar.php',
103
+        'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__.'/..'.'/../lib/Command/SyncSystemAddressBook.php',
104
+        'OCA\\DAV\\Comments\\CommentNode' => __DIR__.'/..'.'/../lib/Comments/CommentNode.php',
105
+        'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__.'/..'.'/../lib/Comments/CommentsPlugin.php',
106
+        'OCA\\DAV\\Comments\\EntityCollection' => __DIR__.'/..'.'/../lib/Comments/EntityCollection.php',
107
+        'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__.'/..'.'/../lib/Comments/EntityTypeCollection.php',
108
+        'OCA\\DAV\\Comments\\RootCollection' => __DIR__.'/..'.'/../lib/Comments/RootCollection.php',
109
+        'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__.'/..'.'/../lib/Connector/LegacyDAVACL.php',
110
+        'OCA\\DAV\\Connector\\PublicAuth' => __DIR__.'/..'.'/../lib/Connector/PublicAuth.php',
111
+        'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
112
+        'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/AppEnabledPlugin.php',
113
+        'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__.'/..'.'/../lib/Connector/Sabre/Auth.php',
114
+        'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__.'/..'.'/../lib/Connector/Sabre/BearerAuth.php',
115
+        'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
116
+        'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__.'/..'.'/../lib/Connector/Sabre/CachingTree.php',
117
+        'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ChecksumList.php',
118
+        'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
119
+        'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
120
+        'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => __DIR__.'/..'.'/../lib/Connector/Sabre/CustomPropertiesBackend.php',
121
+        'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/DavAclPlugin.php',
122
+        'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__.'/..'.'/../lib/Connector/Sabre/Directory.php',
123
+        'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
124
+        'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
125
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
126
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/FileLocked.php',
127
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/Forbidden.php',
128
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/InvalidPath.php',
129
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
130
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
131
+        'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FakeLockerPlugin.php',
132
+        'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__.'/..'.'/../lib/Connector/Sabre/File.php',
133
+        'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FilesPlugin.php',
134
+        'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FilesReportPlugin.php',
135
+        'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/LockPlugin.php',
136
+        'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/MaintenancePlugin.php',
137
+        'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__.'/..'.'/../lib/Connector/Sabre/Node.php',
138
+        'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__.'/..'.'/../lib/Connector/Sabre/ObjectTree.php',
139
+        'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__.'/..'.'/../lib/Connector/Sabre/Principal.php',
140
+        'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/QuotaPlugin.php',
141
+        'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__.'/..'.'/../lib/Connector/Sabre/Server.php',
142
+        'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__.'/..'.'/../lib/Connector/Sabre/ServerFactory.php',
143
+        'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ShareTypeList.php',
144
+        'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/SharesPlugin.php',
145
+        'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__.'/..'.'/../lib/Connector/Sabre/TagList.php',
146
+        'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/TagsPlugin.php',
147
+        'OCA\\DAV\\Controller\\BirthdayCalendarController' => __DIR__.'/..'.'/../lib/Controller/BirthdayCalendarController.php',
148
+        'OCA\\DAV\\Controller\\DirectController' => __DIR__.'/..'.'/../lib/Controller/DirectController.php',
149
+        'OCA\\DAV\\Controller\\InvitationResponseController' => __DIR__.'/..'.'/../lib/Controller/InvitationResponseController.php',
150
+        'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__.'/..'.'/../lib/DAV/CustomPropertiesBackend.php',
151
+        'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/GroupPrincipalBackend.php',
152
+        'OCA\\DAV\\DAV\\PublicAuth' => __DIR__.'/..'.'/../lib/DAV/PublicAuth.php',
153
+        'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__.'/..'.'/../lib/DAV/Sharing/Backend.php',
154
+        'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__.'/..'.'/../lib/DAV/Sharing/IShareable.php',
155
+        'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__.'/..'.'/../lib/DAV/Sharing/Plugin.php',
156
+        'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__.'/..'.'/../lib/DAV/Sharing/Xml/Invite.php',
157
+        'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__.'/..'.'/../lib/DAV/Sharing/Xml/ShareRequest.php',
158
+        'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/SystemPrincipalBackend.php',
159
+        'OCA\\DAV\\Db\\Direct' => __DIR__.'/..'.'/../lib/Db/Direct.php',
160
+        'OCA\\DAV\\Db\\DirectMapper' => __DIR__.'/..'.'/../lib/Db/DirectMapper.php',
161
+        'OCA\\DAV\\Direct\\DirectFile' => __DIR__.'/..'.'/../lib/Direct/DirectFile.php',
162
+        'OCA\\DAV\\Direct\\DirectHome' => __DIR__.'/..'.'/../lib/Direct/DirectHome.php',
163
+        'OCA\\DAV\\Direct\\Server' => __DIR__.'/..'.'/../lib/Direct/Server.php',
164
+        'OCA\\DAV\\Direct\\ServerFactory' => __DIR__.'/..'.'/../lib/Direct/ServerFactory.php',
165
+        'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => __DIR__.'/..'.'/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
166
+        'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__.'/..'.'/../lib/Files/BrowserErrorPagePlugin.php',
167
+        'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__.'/..'.'/../lib/Files/FileSearchBackend.php',
168
+        'OCA\\DAV\\Files\\FilesHome' => __DIR__.'/..'.'/../lib/Files/FilesHome.php',
169
+        'OCA\\DAV\\Files\\LazySearchBackend' => __DIR__.'/..'.'/../lib/Files/LazySearchBackend.php',
170
+        'OCA\\DAV\\Files\\RootCollection' => __DIR__.'/..'.'/../lib/Files/RootCollection.php',
171
+        'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__.'/..'.'/../lib/Files/Sharing/FilesDropPlugin.php',
172
+        'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__.'/..'.'/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
173
+        'OCA\\DAV\\HookManager' => __DIR__.'/..'.'/../lib/HookManager.php',
174
+        'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__.'/..'.'/../lib/Migration/BuildCalendarSearchIndex.php',
175
+        'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__.'/..'.'/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
176
+        'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__.'/..'.'/../lib/Migration/CalDAVRemoveEmptyValue.php',
177
+        'OCA\\DAV\\Migration\\ChunkCleanup' => __DIR__.'/..'.'/../lib/Migration/ChunkCleanup.php',
178
+        'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__.'/..'.'/../lib/Migration/FixBirthdayCalendarComponent.php',
179
+        'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => __DIR__.'/..'.'/../lib/Migration/RefreshWebcalJobRegistrar.php',
180
+        'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => __DIR__.'/..'.'/../lib/Migration/RegenerateBirthdayCalendars.php',
181
+        'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => __DIR__.'/..'.'/../lib/Migration/RemoveClassifiedEventActivity.php',
182
+        'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => __DIR__.'/..'.'/../lib/Migration/RemoveOrphanEventsAndContacts.php',
183
+        'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170825134824.php',
184
+        'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170919104507.php',
185
+        'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170924124212.php',
186
+        'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170926103422.php',
187
+        'OCA\\DAV\\Migration\\Version1005Date20180413093149' => __DIR__.'/..'.'/../lib/Migration/Version1005Date20180413093149.php',
188
+        'OCA\\DAV\\Migration\\Version1005Date20180530124431' => __DIR__.'/..'.'/../lib/Migration/Version1005Date20180530124431.php',
189
+        'OCA\\DAV\\Migration\\Version1006Date20180619154313' => __DIR__.'/..'.'/../lib/Migration/Version1006Date20180619154313.php',
190
+        'OCA\\DAV\\Migration\\Version1006Date20180628111625' => __DIR__.'/..'.'/../lib/Migration/Version1006Date20180628111625.php',
191
+        'OCA\\DAV\\Migration\\Version1008Date20181030113700' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181030113700.php',
192
+        'OCA\\DAV\\Migration\\Version1008Date20181105104826' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105104826.php',
193
+        'OCA\\DAV\\Migration\\Version1008Date20181105104833' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105104833.php',
194
+        'OCA\\DAV\\Migration\\Version1008Date20181105110300' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105110300.php',
195
+        'OCA\\DAV\\Migration\\Version1008Date20181105112049' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105112049.php',
196
+        'OCA\\DAV\\Migration\\Version1008Date20181114084440' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181114084440.php',
197
+        'OCA\\DAV\\Migration\\Version1011Date20190725113607' => __DIR__.'/..'.'/../lib/Migration/Version1011Date20190725113607.php',
198
+        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => __DIR__.'/..'.'/../lib/Provisioning/Apple/AppleProvisioningNode.php',
199
+        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => __DIR__.'/..'.'/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
200
+        'OCA\\DAV\\RootCollection' => __DIR__.'/..'.'/../lib/RootCollection.php',
201
+        'OCA\\DAV\\Server' => __DIR__.'/..'.'/../lib/Server.php',
202
+        'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__.'/..'.'/../lib/Settings/CalDAVSettings.php',
203
+        'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagMappingNode.php',
204
+        'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagNode.php',
205
+        'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagPlugin.php',
206
+        'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsByIdCollection.php',
207
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
208
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
209
+        'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsRelationsCollection.php',
210
+        'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__.'/..'.'/../lib/Upload/AssemblyStream.php',
211
+        'OCA\\DAV\\Upload\\ChunkingPlugin' => __DIR__.'/..'.'/../lib/Upload/ChunkingPlugin.php',
212
+        'OCA\\DAV\\Upload\\CleanupService' => __DIR__.'/..'.'/../lib/Upload/CleanupService.php',
213
+        'OCA\\DAV\\Upload\\FutureFile' => __DIR__.'/..'.'/../lib/Upload/FutureFile.php',
214
+        'OCA\\DAV\\Upload\\RootCollection' => __DIR__.'/..'.'/../lib/Upload/RootCollection.php',
215
+        'OCA\\DAV\\Upload\\UploadFolder' => __DIR__.'/..'.'/../lib/Upload/UploadFolder.php',
216
+        'OCA\\DAV\\Upload\\UploadHome' => __DIR__.'/..'.'/../lib/Upload/UploadHome.php',
217 217
     );
218 218
 
219 219
     public static function getInitializer(ClassLoader $loader)
220 220
     {
221
-        return \Closure::bind(function () use ($loader) {
221
+        return \Closure::bind(function() use ($loader) {
222 222
             $loader->prefixLengthsPsr4 = ComposerStaticInitDAV::$prefixLengthsPsr4;
223 223
             $loader->prefixDirsPsr4 = ComposerStaticInitDAV::$prefixDirsPsr4;
224 224
             $loader->classMap = ComposerStaticInitDAV::$classMap;
Please login to merge, or discard this patch.
apps/dav/composer/composer/autoload_classmap.php 1 patch
Spacing   +193 added lines, -193 removed lines patch added patch discarded remove patch
@@ -6,197 +6,197 @@
 block discarded – undo
6 6
 $baseDir = $vendorDir;
7 7
 
8 8
 return array(
9
-    'OCA\\DAV\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
10
-    'OCA\\DAV\\AppInfo\\PluginManager' => $baseDir . '/../lib/AppInfo/PluginManager.php',
11
-    'OCA\\DAV\\Avatars\\AvatarHome' => $baseDir . '/../lib/Avatars/AvatarHome.php',
12
-    'OCA\\DAV\\Avatars\\AvatarNode' => $baseDir . '/../lib/Avatars/AvatarNode.php',
13
-    'OCA\\DAV\\Avatars\\RootCollection' => $baseDir . '/../lib/Avatars/RootCollection.php',
14
-    'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => $baseDir . '/../lib/BackgroundJob/CleanupDirectLinksJob.php',
15
-    'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => $baseDir . '/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
16
-    'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => $baseDir . '/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
17
-    'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => $baseDir . '/../lib/BackgroundJob/RefreshWebcalJob.php',
18
-    'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => $baseDir . '/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
19
-    'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => $baseDir . '/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
20
-    'OCA\\DAV\\BackgroundJob\\UploadCleanup' => $baseDir . '/../lib/BackgroundJob/UploadCleanup.php',
21
-    'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir . '/../lib/CalDAV/Activity/Backend.php',
22
-    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Filter/Calendar.php',
23
-    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Filter/Todo.php',
24
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir . '/../lib/CalDAV/Activity/Provider/Base.php',
25
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Provider/Calendar.php',
26
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir . '/../lib/CalDAV/Activity/Provider/Event.php',
27
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Provider/Todo.php',
28
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Setting/Calendar.php',
29
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir . '/../lib/CalDAV/Activity/Setting/Event.php',
30
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Setting/Todo.php',
31
-    'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => $baseDir . '/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
32
-    'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir . '/../lib/CalDAV/BirthdayService.php',
33
-    'OCA\\DAV\\CalDAV\\CachedSubscription' => $baseDir . '/../lib/CalDAV/CachedSubscription.php',
34
-    'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => $baseDir . '/../lib/CalDAV/CachedSubscriptionObject.php',
35
-    'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir . '/../lib/CalDAV/CalDavBackend.php',
36
-    'OCA\\DAV\\CalDAV\\Calendar' => $baseDir . '/../lib/CalDAV/Calendar.php',
37
-    'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir . '/../lib/CalDAV/CalendarHome.php',
38
-    'OCA\\DAV\\CalDAV\\CalendarImpl' => $baseDir . '/../lib/CalDAV/CalendarImpl.php',
39
-    'OCA\\DAV\\CalDAV\\CalendarManager' => $baseDir . '/../lib/CalDAV/CalendarManager.php',
40
-    'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir . '/../lib/CalDAV/CalendarObject.php',
41
-    'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir . '/../lib/CalDAV/CalendarRoot.php',
42
-    'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => $baseDir . '/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
43
-    'OCA\\DAV\\CalDAV\\Outbox' => $baseDir . '/../lib/CalDAV/Outbox.php',
44
-    'OCA\\DAV\\CalDAV\\Plugin' => $baseDir . '/../lib/CalDAV/Plugin.php',
45
-    'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir . '/../lib/CalDAV/Principal/Collection.php',
46
-    'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir . '/../lib/CalDAV/Principal/User.php',
47
-    'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir . '/../lib/CalDAV/PublicCalendar.php',
48
-    'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir . '/../lib/CalDAV/PublicCalendarObject.php',
49
-    'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir . '/../lib/CalDAV/PublicCalendarRoot.php',
50
-    'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir . '/../lib/CalDAV/Publishing/PublishPlugin.php',
51
-    'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir . '/../lib/CalDAV/Publishing/Xml/Publisher.php',
52
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
53
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
54
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
55
-    'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir . '/../lib/CalDAV/Schedule/IMipPlugin.php',
56
-    'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir . '/../lib/CalDAV/Schedule/Plugin.php',
57
-    'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir . '/../lib/CalDAV/Search/SearchPlugin.php',
58
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
59
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
60
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
61
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
62
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
63
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
64
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
65
-    'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => $baseDir . '/../lib/CalDAV/WebcalCaching/Plugin.php',
66
-    'OCA\\DAV\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
67
-    'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir . '/../lib/CardDAV/AddressBook.php',
68
-    'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir . '/../lib/CardDAV/AddressBookImpl.php',
69
-    'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir . '/../lib/CardDAV/AddressBookRoot.php',
70
-    'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir . '/../lib/CardDAV/CardDavBackend.php',
71
-    'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir . '/../lib/CardDAV/ContactsManager.php',
72
-    'OCA\\DAV\\CardDAV\\Converter' => $baseDir . '/../lib/CardDAV/Converter.php',
73
-    'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => $baseDir . '/../lib/CardDAV/HasPhotoPlugin.php',
74
-    'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir . '/../lib/CardDAV/ImageExportPlugin.php',
75
-    'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => $baseDir . '/../lib/CardDAV/MultiGetExportPlugin.php',
76
-    'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir . '/../lib/CardDAV/PhotoCache.php',
77
-    'OCA\\DAV\\CardDAV\\Plugin' => $baseDir . '/../lib/CardDAV/Plugin.php',
78
-    'OCA\\DAV\\CardDAV\\SyncService' => $baseDir . '/../lib/CardDAV/SyncService.php',
79
-    'OCA\\DAV\\CardDAV\\SystemAddressbook' => $baseDir . '/../lib/CardDAV/SystemAddressbook.php',
80
-    'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir . '/../lib/CardDAV/UserAddressBooks.php',
81
-    'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir . '/../lib/CardDAV/Xml/Groups.php',
82
-    'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir . '/../lib/Command/CreateAddressBook.php',
83
-    'OCA\\DAV\\Command\\CreateCalendar' => $baseDir . '/../lib/Command/CreateCalendar.php',
84
-    'OCA\\DAV\\Command\\ListCalendars' => $baseDir . '/../lib/Command/ListCalendars.php',
85
-    'OCA\\DAV\\Command\\MoveCalendar' => $baseDir . '/../lib/Command/MoveCalendar.php',
86
-    'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir . '/../lib/Command/RemoveInvalidShares.php',
87
-    'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir . '/../lib/Command/SyncBirthdayCalendar.php',
88
-    'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir . '/../lib/Command/SyncSystemAddressBook.php',
89
-    'OCA\\DAV\\Comments\\CommentNode' => $baseDir . '/../lib/Comments/CommentNode.php',
90
-    'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir . '/../lib/Comments/CommentsPlugin.php',
91
-    'OCA\\DAV\\Comments\\EntityCollection' => $baseDir . '/../lib/Comments/EntityCollection.php',
92
-    'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir . '/../lib/Comments/EntityTypeCollection.php',
93
-    'OCA\\DAV\\Comments\\RootCollection' => $baseDir . '/../lib/Comments/RootCollection.php',
94
-    'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir . '/../lib/Connector/LegacyDAVACL.php',
95
-    'OCA\\DAV\\Connector\\PublicAuth' => $baseDir . '/../lib/Connector/PublicAuth.php',
96
-    'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
97
-    'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => $baseDir . '/../lib/Connector/Sabre/AppEnabledPlugin.php',
98
-    'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir . '/../lib/Connector/Sabre/Auth.php',
99
-    'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir . '/../lib/Connector/Sabre/BearerAuth.php',
100
-    'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
101
-    'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir . '/../lib/Connector/Sabre/CachingTree.php',
102
-    'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir . '/../lib/Connector/Sabre/ChecksumList.php',
103
-    'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
104
-    'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
105
-    'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => $baseDir . '/../lib/Connector/Sabre/CustomPropertiesBackend.php',
106
-    'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir . '/../lib/Connector/Sabre/DavAclPlugin.php',
107
-    'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir . '/../lib/Connector/Sabre/Directory.php',
108
-    'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
109
-    'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
110
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
111
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir . '/../lib/Connector/Sabre/Exception/FileLocked.php',
112
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/Forbidden.php',
113
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
114
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
115
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
116
-    'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
117
-    'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir . '/../lib/Connector/Sabre/File.php',
118
-    'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesPlugin.php',
119
-    'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesReportPlugin.php',
120
-    'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir . '/../lib/Connector/Sabre/LockPlugin.php',
121
-    'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir . '/../lib/Connector/Sabre/MaintenancePlugin.php',
122
-    'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir . '/../lib/Connector/Sabre/Node.php',
123
-    'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir . '/../lib/Connector/Sabre/ObjectTree.php',
124
-    'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir . '/../lib/Connector/Sabre/Principal.php',
125
-    'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir . '/../lib/Connector/Sabre/QuotaPlugin.php',
126
-    'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir . '/../lib/Connector/Sabre/Server.php',
127
-    'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir . '/../lib/Connector/Sabre/ServerFactory.php',
128
-    'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir . '/../lib/Connector/Sabre/ShareTypeList.php',
129
-    'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir . '/../lib/Connector/Sabre/SharesPlugin.php',
130
-    'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir . '/../lib/Connector/Sabre/TagList.php',
131
-    'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir . '/../lib/Connector/Sabre/TagsPlugin.php',
132
-    'OCA\\DAV\\Controller\\BirthdayCalendarController' => $baseDir . '/../lib/Controller/BirthdayCalendarController.php',
133
-    'OCA\\DAV\\Controller\\DirectController' => $baseDir . '/../lib/Controller/DirectController.php',
134
-    'OCA\\DAV\\Controller\\InvitationResponseController' => $baseDir . '/../lib/Controller/InvitationResponseController.php',
135
-    'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir . '/../lib/DAV/CustomPropertiesBackend.php',
136
-    'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir . '/../lib/DAV/GroupPrincipalBackend.php',
137
-    'OCA\\DAV\\DAV\\PublicAuth' => $baseDir . '/../lib/DAV/PublicAuth.php',
138
-    'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir . '/../lib/DAV/Sharing/Backend.php',
139
-    'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir . '/../lib/DAV/Sharing/IShareable.php',
140
-    'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir . '/../lib/DAV/Sharing/Plugin.php',
141
-    'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir . '/../lib/DAV/Sharing/Xml/Invite.php',
142
-    'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir . '/../lib/DAV/Sharing/Xml/ShareRequest.php',
143
-    'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir . '/../lib/DAV/SystemPrincipalBackend.php',
144
-    'OCA\\DAV\\Db\\Direct' => $baseDir . '/../lib/Db/Direct.php',
145
-    'OCA\\DAV\\Db\\DirectMapper' => $baseDir . '/../lib/Db/DirectMapper.php',
146
-    'OCA\\DAV\\Direct\\DirectFile' => $baseDir . '/../lib/Direct/DirectFile.php',
147
-    'OCA\\DAV\\Direct\\DirectHome' => $baseDir . '/../lib/Direct/DirectHome.php',
148
-    'OCA\\DAV\\Direct\\Server' => $baseDir . '/../lib/Direct/Server.php',
149
-    'OCA\\DAV\\Direct\\ServerFactory' => $baseDir . '/../lib/Direct/ServerFactory.php',
150
-    'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => $baseDir . '/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
151
-    'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir . '/../lib/Files/BrowserErrorPagePlugin.php',
152
-    'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir . '/../lib/Files/FileSearchBackend.php',
153
-    'OCA\\DAV\\Files\\FilesHome' => $baseDir . '/../lib/Files/FilesHome.php',
154
-    'OCA\\DAV\\Files\\LazySearchBackend' => $baseDir . '/../lib/Files/LazySearchBackend.php',
155
-    'OCA\\DAV\\Files\\RootCollection' => $baseDir . '/../lib/Files/RootCollection.php',
156
-    'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir . '/../lib/Files/Sharing/FilesDropPlugin.php',
157
-    'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
158
-    'OCA\\DAV\\HookManager' => $baseDir . '/../lib/HookManager.php',
159
-    'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndex.php',
160
-    'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
161
-    'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir . '/../lib/Migration/CalDAVRemoveEmptyValue.php',
162
-    'OCA\\DAV\\Migration\\ChunkCleanup' => $baseDir . '/../lib/Migration/ChunkCleanup.php',
163
-    'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir . '/../lib/Migration/FixBirthdayCalendarComponent.php',
164
-    'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => $baseDir . '/../lib/Migration/RefreshWebcalJobRegistrar.php',
165
-    'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => $baseDir . '/../lib/Migration/RegenerateBirthdayCalendars.php',
166
-    'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => $baseDir . '/../lib/Migration/RemoveClassifiedEventActivity.php',
167
-    'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => $baseDir . '/../lib/Migration/RemoveOrphanEventsAndContacts.php',
168
-    'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir . '/../lib/Migration/Version1004Date20170825134824.php',
169
-    'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir . '/../lib/Migration/Version1004Date20170919104507.php',
170
-    'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir . '/../lib/Migration/Version1004Date20170924124212.php',
171
-    'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir . '/../lib/Migration/Version1004Date20170926103422.php',
172
-    'OCA\\DAV\\Migration\\Version1005Date20180413093149' => $baseDir . '/../lib/Migration/Version1005Date20180413093149.php',
173
-    'OCA\\DAV\\Migration\\Version1005Date20180530124431' => $baseDir . '/../lib/Migration/Version1005Date20180530124431.php',
174
-    'OCA\\DAV\\Migration\\Version1006Date20180619154313' => $baseDir . '/../lib/Migration/Version1006Date20180619154313.php',
175
-    'OCA\\DAV\\Migration\\Version1006Date20180628111625' => $baseDir . '/../lib/Migration/Version1006Date20180628111625.php',
176
-    'OCA\\DAV\\Migration\\Version1008Date20181030113700' => $baseDir . '/../lib/Migration/Version1008Date20181030113700.php',
177
-    'OCA\\DAV\\Migration\\Version1008Date20181105104826' => $baseDir . '/../lib/Migration/Version1008Date20181105104826.php',
178
-    'OCA\\DAV\\Migration\\Version1008Date20181105104833' => $baseDir . '/../lib/Migration/Version1008Date20181105104833.php',
179
-    'OCA\\DAV\\Migration\\Version1008Date20181105110300' => $baseDir . '/../lib/Migration/Version1008Date20181105110300.php',
180
-    'OCA\\DAV\\Migration\\Version1008Date20181105112049' => $baseDir . '/../lib/Migration/Version1008Date20181105112049.php',
181
-    'OCA\\DAV\\Migration\\Version1008Date20181114084440' => $baseDir . '/../lib/Migration/Version1008Date20181114084440.php',
182
-    'OCA\\DAV\\Migration\\Version1011Date20190725113607' => $baseDir . '/../lib/Migration/Version1011Date20190725113607.php',
183
-    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningNode.php',
184
-    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
185
-    'OCA\\DAV\\RootCollection' => $baseDir . '/../lib/RootCollection.php',
186
-    'OCA\\DAV\\Server' => $baseDir . '/../lib/Server.php',
187
-    'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir . '/../lib/Settings/CalDAVSettings.php',
188
-    'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir . '/../lib/SystemTag/SystemTagMappingNode.php',
189
-    'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir . '/../lib/SystemTag/SystemTagNode.php',
190
-    'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir . '/../lib/SystemTag/SystemTagPlugin.php',
191
-    'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir . '/../lib/SystemTag/SystemTagsByIdCollection.php',
192
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
193
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
194
-    'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
195
-    'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir . '/../lib/Upload/AssemblyStream.php',
196
-    'OCA\\DAV\\Upload\\ChunkingPlugin' => $baseDir . '/../lib/Upload/ChunkingPlugin.php',
197
-    'OCA\\DAV\\Upload\\CleanupService' => $baseDir . '/../lib/Upload/CleanupService.php',
198
-    'OCA\\DAV\\Upload\\FutureFile' => $baseDir . '/../lib/Upload/FutureFile.php',
199
-    'OCA\\DAV\\Upload\\RootCollection' => $baseDir . '/../lib/Upload/RootCollection.php',
200
-    'OCA\\DAV\\Upload\\UploadFolder' => $baseDir . '/../lib/Upload/UploadFolder.php',
201
-    'OCA\\DAV\\Upload\\UploadHome' => $baseDir . '/../lib/Upload/UploadHome.php',
9
+    'OCA\\DAV\\AppInfo\\Application' => $baseDir.'/../lib/AppInfo/Application.php',
10
+    'OCA\\DAV\\AppInfo\\PluginManager' => $baseDir.'/../lib/AppInfo/PluginManager.php',
11
+    'OCA\\DAV\\Avatars\\AvatarHome' => $baseDir.'/../lib/Avatars/AvatarHome.php',
12
+    'OCA\\DAV\\Avatars\\AvatarNode' => $baseDir.'/../lib/Avatars/AvatarNode.php',
13
+    'OCA\\DAV\\Avatars\\RootCollection' => $baseDir.'/../lib/Avatars/RootCollection.php',
14
+    'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => $baseDir.'/../lib/BackgroundJob/CleanupDirectLinksJob.php',
15
+    'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => $baseDir.'/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
16
+    'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => $baseDir.'/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
17
+    'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => $baseDir.'/../lib/BackgroundJob/RefreshWebcalJob.php',
18
+    'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => $baseDir.'/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
19
+    'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => $baseDir.'/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
20
+    'OCA\\DAV\\BackgroundJob\\UploadCleanup' => $baseDir.'/../lib/BackgroundJob/UploadCleanup.php',
21
+    'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir.'/../lib/CalDAV/Activity/Backend.php',
22
+    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Filter/Calendar.php',
23
+    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Filter/Todo.php',
24
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir.'/../lib/CalDAV/Activity/Provider/Base.php',
25
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Provider/Calendar.php',
26
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir.'/../lib/CalDAV/Activity/Provider/Event.php',
27
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Provider/Todo.php',
28
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Setting/Calendar.php',
29
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir.'/../lib/CalDAV/Activity/Setting/Event.php',
30
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Setting/Todo.php',
31
+    'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => $baseDir.'/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
32
+    'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir.'/../lib/CalDAV/BirthdayService.php',
33
+    'OCA\\DAV\\CalDAV\\CachedSubscription' => $baseDir.'/../lib/CalDAV/CachedSubscription.php',
34
+    'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => $baseDir.'/../lib/CalDAV/CachedSubscriptionObject.php',
35
+    'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir.'/../lib/CalDAV/CalDavBackend.php',
36
+    'OCA\\DAV\\CalDAV\\Calendar' => $baseDir.'/../lib/CalDAV/Calendar.php',
37
+    'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir.'/../lib/CalDAV/CalendarHome.php',
38
+    'OCA\\DAV\\CalDAV\\CalendarImpl' => $baseDir.'/../lib/CalDAV/CalendarImpl.php',
39
+    'OCA\\DAV\\CalDAV\\CalendarManager' => $baseDir.'/../lib/CalDAV/CalendarManager.php',
40
+    'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir.'/../lib/CalDAV/CalendarObject.php',
41
+    'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir.'/../lib/CalDAV/CalendarRoot.php',
42
+    'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => $baseDir.'/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
43
+    'OCA\\DAV\\CalDAV\\Outbox' => $baseDir.'/../lib/CalDAV/Outbox.php',
44
+    'OCA\\DAV\\CalDAV\\Plugin' => $baseDir.'/../lib/CalDAV/Plugin.php',
45
+    'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir.'/../lib/CalDAV/Principal/Collection.php',
46
+    'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir.'/../lib/CalDAV/Principal/User.php',
47
+    'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir.'/../lib/CalDAV/PublicCalendar.php',
48
+    'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir.'/../lib/CalDAV/PublicCalendarObject.php',
49
+    'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir.'/../lib/CalDAV/PublicCalendarRoot.php',
50
+    'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir.'/../lib/CalDAV/Publishing/PublishPlugin.php',
51
+    'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir.'/../lib/CalDAV/Publishing/Xml/Publisher.php',
52
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
53
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
54
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
55
+    'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir.'/../lib/CalDAV/Schedule/IMipPlugin.php',
56
+    'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir.'/../lib/CalDAV/Schedule/Plugin.php',
57
+    'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir.'/../lib/CalDAV/Search/SearchPlugin.php',
58
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
59
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
60
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
61
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
62
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
63
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
64
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir.'/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
65
+    'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => $baseDir.'/../lib/CalDAV/WebcalCaching/Plugin.php',
66
+    'OCA\\DAV\\Capabilities' => $baseDir.'/../lib/Capabilities.php',
67
+    'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir.'/../lib/CardDAV/AddressBook.php',
68
+    'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir.'/../lib/CardDAV/AddressBookImpl.php',
69
+    'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir.'/../lib/CardDAV/AddressBookRoot.php',
70
+    'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir.'/../lib/CardDAV/CardDavBackend.php',
71
+    'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir.'/../lib/CardDAV/ContactsManager.php',
72
+    'OCA\\DAV\\CardDAV\\Converter' => $baseDir.'/../lib/CardDAV/Converter.php',
73
+    'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => $baseDir.'/../lib/CardDAV/HasPhotoPlugin.php',
74
+    'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir.'/../lib/CardDAV/ImageExportPlugin.php',
75
+    'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => $baseDir.'/../lib/CardDAV/MultiGetExportPlugin.php',
76
+    'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir.'/../lib/CardDAV/PhotoCache.php',
77
+    'OCA\\DAV\\CardDAV\\Plugin' => $baseDir.'/../lib/CardDAV/Plugin.php',
78
+    'OCA\\DAV\\CardDAV\\SyncService' => $baseDir.'/../lib/CardDAV/SyncService.php',
79
+    'OCA\\DAV\\CardDAV\\SystemAddressbook' => $baseDir.'/../lib/CardDAV/SystemAddressbook.php',
80
+    'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir.'/../lib/CardDAV/UserAddressBooks.php',
81
+    'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir.'/../lib/CardDAV/Xml/Groups.php',
82
+    'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir.'/../lib/Command/CreateAddressBook.php',
83
+    'OCA\\DAV\\Command\\CreateCalendar' => $baseDir.'/../lib/Command/CreateCalendar.php',
84
+    'OCA\\DAV\\Command\\ListCalendars' => $baseDir.'/../lib/Command/ListCalendars.php',
85
+    'OCA\\DAV\\Command\\MoveCalendar' => $baseDir.'/../lib/Command/MoveCalendar.php',
86
+    'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir.'/../lib/Command/RemoveInvalidShares.php',
87
+    'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir.'/../lib/Command/SyncBirthdayCalendar.php',
88
+    'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir.'/../lib/Command/SyncSystemAddressBook.php',
89
+    'OCA\\DAV\\Comments\\CommentNode' => $baseDir.'/../lib/Comments/CommentNode.php',
90
+    'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir.'/../lib/Comments/CommentsPlugin.php',
91
+    'OCA\\DAV\\Comments\\EntityCollection' => $baseDir.'/../lib/Comments/EntityCollection.php',
92
+    'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir.'/../lib/Comments/EntityTypeCollection.php',
93
+    'OCA\\DAV\\Comments\\RootCollection' => $baseDir.'/../lib/Comments/RootCollection.php',
94
+    'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir.'/../lib/Connector/LegacyDAVACL.php',
95
+    'OCA\\DAV\\Connector\\PublicAuth' => $baseDir.'/../lib/Connector/PublicAuth.php',
96
+    'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir.'/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
97
+    'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => $baseDir.'/../lib/Connector/Sabre/AppEnabledPlugin.php',
98
+    'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir.'/../lib/Connector/Sabre/Auth.php',
99
+    'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir.'/../lib/Connector/Sabre/BearerAuth.php',
100
+    'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir.'/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
101
+    'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir.'/../lib/Connector/Sabre/CachingTree.php',
102
+    'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir.'/../lib/Connector/Sabre/ChecksumList.php',
103
+    'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir.'/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
104
+    'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir.'/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
105
+    'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => $baseDir.'/../lib/Connector/Sabre/CustomPropertiesBackend.php',
106
+    'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir.'/../lib/Connector/Sabre/DavAclPlugin.php',
107
+    'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir.'/../lib/Connector/Sabre/Directory.php',
108
+    'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir.'/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
109
+    'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir.'/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
110
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir.'/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
111
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir.'/../lib/Connector/Sabre/Exception/FileLocked.php',
112
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir.'/../lib/Connector/Sabre/Exception/Forbidden.php',
113
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir.'/../lib/Connector/Sabre/Exception/InvalidPath.php',
114
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir.'/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
115
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir.'/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
116
+    'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir.'/../lib/Connector/Sabre/FakeLockerPlugin.php',
117
+    'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir.'/../lib/Connector/Sabre/File.php',
118
+    'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir.'/../lib/Connector/Sabre/FilesPlugin.php',
119
+    'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir.'/../lib/Connector/Sabre/FilesReportPlugin.php',
120
+    'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir.'/../lib/Connector/Sabre/LockPlugin.php',
121
+    'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir.'/../lib/Connector/Sabre/MaintenancePlugin.php',
122
+    'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir.'/../lib/Connector/Sabre/Node.php',
123
+    'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir.'/../lib/Connector/Sabre/ObjectTree.php',
124
+    'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir.'/../lib/Connector/Sabre/Principal.php',
125
+    'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir.'/../lib/Connector/Sabre/QuotaPlugin.php',
126
+    'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir.'/../lib/Connector/Sabre/Server.php',
127
+    'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir.'/../lib/Connector/Sabre/ServerFactory.php',
128
+    'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir.'/../lib/Connector/Sabre/ShareTypeList.php',
129
+    'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir.'/../lib/Connector/Sabre/SharesPlugin.php',
130
+    'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir.'/../lib/Connector/Sabre/TagList.php',
131
+    'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir.'/../lib/Connector/Sabre/TagsPlugin.php',
132
+    'OCA\\DAV\\Controller\\BirthdayCalendarController' => $baseDir.'/../lib/Controller/BirthdayCalendarController.php',
133
+    'OCA\\DAV\\Controller\\DirectController' => $baseDir.'/../lib/Controller/DirectController.php',
134
+    'OCA\\DAV\\Controller\\InvitationResponseController' => $baseDir.'/../lib/Controller/InvitationResponseController.php',
135
+    'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir.'/../lib/DAV/CustomPropertiesBackend.php',
136
+    'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir.'/../lib/DAV/GroupPrincipalBackend.php',
137
+    'OCA\\DAV\\DAV\\PublicAuth' => $baseDir.'/../lib/DAV/PublicAuth.php',
138
+    'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir.'/../lib/DAV/Sharing/Backend.php',
139
+    'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir.'/../lib/DAV/Sharing/IShareable.php',
140
+    'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir.'/../lib/DAV/Sharing/Plugin.php',
141
+    'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir.'/../lib/DAV/Sharing/Xml/Invite.php',
142
+    'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir.'/../lib/DAV/Sharing/Xml/ShareRequest.php',
143
+    'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir.'/../lib/DAV/SystemPrincipalBackend.php',
144
+    'OCA\\DAV\\Db\\Direct' => $baseDir.'/../lib/Db/Direct.php',
145
+    'OCA\\DAV\\Db\\DirectMapper' => $baseDir.'/../lib/Db/DirectMapper.php',
146
+    'OCA\\DAV\\Direct\\DirectFile' => $baseDir.'/../lib/Direct/DirectFile.php',
147
+    'OCA\\DAV\\Direct\\DirectHome' => $baseDir.'/../lib/Direct/DirectHome.php',
148
+    'OCA\\DAV\\Direct\\Server' => $baseDir.'/../lib/Direct/Server.php',
149
+    'OCA\\DAV\\Direct\\ServerFactory' => $baseDir.'/../lib/Direct/ServerFactory.php',
150
+    'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => $baseDir.'/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
151
+    'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir.'/../lib/Files/BrowserErrorPagePlugin.php',
152
+    'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir.'/../lib/Files/FileSearchBackend.php',
153
+    'OCA\\DAV\\Files\\FilesHome' => $baseDir.'/../lib/Files/FilesHome.php',
154
+    'OCA\\DAV\\Files\\LazySearchBackend' => $baseDir.'/../lib/Files/LazySearchBackend.php',
155
+    'OCA\\DAV\\Files\\RootCollection' => $baseDir.'/../lib/Files/RootCollection.php',
156
+    'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir.'/../lib/Files/Sharing/FilesDropPlugin.php',
157
+    'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir.'/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
158
+    'OCA\\DAV\\HookManager' => $baseDir.'/../lib/HookManager.php',
159
+    'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir.'/../lib/Migration/BuildCalendarSearchIndex.php',
160
+    'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir.'/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
161
+    'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir.'/../lib/Migration/CalDAVRemoveEmptyValue.php',
162
+    'OCA\\DAV\\Migration\\ChunkCleanup' => $baseDir.'/../lib/Migration/ChunkCleanup.php',
163
+    'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir.'/../lib/Migration/FixBirthdayCalendarComponent.php',
164
+    'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => $baseDir.'/../lib/Migration/RefreshWebcalJobRegistrar.php',
165
+    'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => $baseDir.'/../lib/Migration/RegenerateBirthdayCalendars.php',
166
+    'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => $baseDir.'/../lib/Migration/RemoveClassifiedEventActivity.php',
167
+    'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => $baseDir.'/../lib/Migration/RemoveOrphanEventsAndContacts.php',
168
+    'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir.'/../lib/Migration/Version1004Date20170825134824.php',
169
+    'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir.'/../lib/Migration/Version1004Date20170919104507.php',
170
+    'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir.'/../lib/Migration/Version1004Date20170924124212.php',
171
+    'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir.'/../lib/Migration/Version1004Date20170926103422.php',
172
+    'OCA\\DAV\\Migration\\Version1005Date20180413093149' => $baseDir.'/../lib/Migration/Version1005Date20180413093149.php',
173
+    'OCA\\DAV\\Migration\\Version1005Date20180530124431' => $baseDir.'/../lib/Migration/Version1005Date20180530124431.php',
174
+    'OCA\\DAV\\Migration\\Version1006Date20180619154313' => $baseDir.'/../lib/Migration/Version1006Date20180619154313.php',
175
+    'OCA\\DAV\\Migration\\Version1006Date20180628111625' => $baseDir.'/../lib/Migration/Version1006Date20180628111625.php',
176
+    'OCA\\DAV\\Migration\\Version1008Date20181030113700' => $baseDir.'/../lib/Migration/Version1008Date20181030113700.php',
177
+    'OCA\\DAV\\Migration\\Version1008Date20181105104826' => $baseDir.'/../lib/Migration/Version1008Date20181105104826.php',
178
+    'OCA\\DAV\\Migration\\Version1008Date20181105104833' => $baseDir.'/../lib/Migration/Version1008Date20181105104833.php',
179
+    'OCA\\DAV\\Migration\\Version1008Date20181105110300' => $baseDir.'/../lib/Migration/Version1008Date20181105110300.php',
180
+    'OCA\\DAV\\Migration\\Version1008Date20181105112049' => $baseDir.'/../lib/Migration/Version1008Date20181105112049.php',
181
+    'OCA\\DAV\\Migration\\Version1008Date20181114084440' => $baseDir.'/../lib/Migration/Version1008Date20181114084440.php',
182
+    'OCA\\DAV\\Migration\\Version1011Date20190725113607' => $baseDir.'/../lib/Migration/Version1011Date20190725113607.php',
183
+    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => $baseDir.'/../lib/Provisioning/Apple/AppleProvisioningNode.php',
184
+    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => $baseDir.'/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
185
+    'OCA\\DAV\\RootCollection' => $baseDir.'/../lib/RootCollection.php',
186
+    'OCA\\DAV\\Server' => $baseDir.'/../lib/Server.php',
187
+    'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir.'/../lib/Settings/CalDAVSettings.php',
188
+    'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir.'/../lib/SystemTag/SystemTagMappingNode.php',
189
+    'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir.'/../lib/SystemTag/SystemTagNode.php',
190
+    'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir.'/../lib/SystemTag/SystemTagPlugin.php',
191
+    'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir.'/../lib/SystemTag/SystemTagsByIdCollection.php',
192
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir.'/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
193
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir.'/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
194
+    'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir.'/../lib/SystemTag/SystemTagsRelationsCollection.php',
195
+    'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir.'/../lib/Upload/AssemblyStream.php',
196
+    'OCA\\DAV\\Upload\\ChunkingPlugin' => $baseDir.'/../lib/Upload/ChunkingPlugin.php',
197
+    'OCA\\DAV\\Upload\\CleanupService' => $baseDir.'/../lib/Upload/CleanupService.php',
198
+    'OCA\\DAV\\Upload\\FutureFile' => $baseDir.'/../lib/Upload/FutureFile.php',
199
+    'OCA\\DAV\\Upload\\RootCollection' => $baseDir.'/../lib/Upload/RootCollection.php',
200
+    'OCA\\DAV\\Upload\\UploadFolder' => $baseDir.'/../lib/Upload/UploadFolder.php',
201
+    'OCA\\DAV\\Upload\\UploadHome' => $baseDir.'/../lib/Upload/UploadHome.php',
202 202
 );
Please login to merge, or discard this patch.
lib/public/Calendar/Room/IRoomMetadata.php 1 patch
Indentation   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -35,61 +35,61 @@
 block discarded – undo
35 35
  */
36 36
 interface IRoomMetadata {
37 37
 
38
-	/**
39
-	 * Type of room
40
-	 *
41
-	 * Allowed values for this key include:
42
-	 * - meeting-room
43
-	 * - lecture-hall
44
-	 * - seminar-room
45
-	 * - other
46
-	 *
47
-	 * @since 17.0.0
48
-	 */
49
-	public const ROOM_TYPE = '{http://nextcloud.com/ns}room-type';
38
+    /**
39
+     * Type of room
40
+     *
41
+     * Allowed values for this key include:
42
+     * - meeting-room
43
+     * - lecture-hall
44
+     * - seminar-room
45
+     * - other
46
+     *
47
+     * @since 17.0.0
48
+     */
49
+    public const ROOM_TYPE = '{http://nextcloud.com/ns}room-type';
50 50
 
51
-	/**
52
-	 * Seating capacity of the room
53
-	 *
54
-	 * @since 17.0.0
55
-	 */
56
-	public const CAPACITY = '{http://nextcloud.com/ns}room-seating-capacity';
51
+    /**
52
+     * Seating capacity of the room
53
+     *
54
+     * @since 17.0.0
55
+     */
56
+    public const CAPACITY = '{http://nextcloud.com/ns}room-seating-capacity';
57 57
 
58
-	/**
59
-	 * The physical address of the building this room is located in
60
-	 *
61
-	 * @since 17.0.0
62
-	 */
63
-	public const BUILDING_ADDRESS = '{http://nextcloud.com/ns}room-building-address';
58
+    /**
59
+     * The physical address of the building this room is located in
60
+     *
61
+     * @since 17.0.0
62
+     */
63
+    public const BUILDING_ADDRESS = '{http://nextcloud.com/ns}room-building-address';
64 64
 
65
-	/**
66
-	 * The story of the building this rooms is located in
67
-	 *
68
-	 * @since 17.0.0
69
-	 */
70
-	public const BUILDING_STORY = '{http://nextcloud.com/ns}room-building-story';
65
+    /**
66
+     * The story of the building this rooms is located in
67
+     *
68
+     * @since 17.0.0
69
+     */
70
+    public const BUILDING_STORY = '{http://nextcloud.com/ns}room-building-story';
71 71
 
72
-	/**
73
-	 * The room-number
74
-	 *
75
-	 * @since 17.0.0
76
-	 */
77
-	public const BUILDING_ROOM_NUMBER = '{http://nextcloud.com/ns}room-building-room-number';
72
+    /**
73
+     * The room-number
74
+     *
75
+     * @since 17.0.0
76
+     */
77
+    public const BUILDING_ROOM_NUMBER = '{http://nextcloud.com/ns}room-building-room-number';
78 78
 
79
-	/**
80
-	 * Features provided by the room.
81
-	 * This is a stringified list of features.
82
-	 * Example: "PHONE,VIDEO-CONFERENCING"
83
-	 *
84
-	 * Standard features include:
85
-	 * - PHONE: This room is fitted with a phone
86
-	 * - VIDEO-CONFERENCING: This room is fitted with a video-conferencing system
87
-	 * - TV: This room is fitted with a TV
88
-	 * - PROJECTOR: This room is fitted with a projector
89
-	 * - WHITEBOARD: This room is fitted with a whiteboard
90
-	 * - WHEELCHAIR-ACCESSIBLE: This room is wheelchair-accessible
91
-	 *
92
-	 * @since 17.0.0
93
-	 */
94
-	public const FEATURES = '{http://nextcloud.com/ns}room-features';
79
+    /**
80
+     * Features provided by the room.
81
+     * This is a stringified list of features.
82
+     * Example: "PHONE,VIDEO-CONFERENCING"
83
+     *
84
+     * Standard features include:
85
+     * - PHONE: This room is fitted with a phone
86
+     * - VIDEO-CONFERENCING: This room is fitted with a video-conferencing system
87
+     * - TV: This room is fitted with a TV
88
+     * - PROJECTOR: This room is fitted with a projector
89
+     * - WHITEBOARD: This room is fitted with a whiteboard
90
+     * - WHEELCHAIR-ACCESSIBLE: This room is wheelchair-accessible
91
+     *
92
+     * @since 17.0.0
93
+     */
94
+    public const FEATURES = '{http://nextcloud.com/ns}room-features';
95 95
 }
Please login to merge, or discard this patch.
lib/public/Calendar/Room/IRoom.php 1 patch
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -31,50 +31,50 @@
 block discarded – undo
31 31
  */
32 32
 interface IRoom {
33 33
 
34
-	/**
35
-	 * Get a unique ID for the room
36
-	 *
37
-	 * This id has to be unique within the backend
38
-	 *
39
-	 * @return string
40
-	 * @since 14.0.0
41
-	 */
42
-	public function getId():string;
34
+    /**
35
+     * Get a unique ID for the room
36
+     *
37
+     * This id has to be unique within the backend
38
+     *
39
+     * @return string
40
+     * @since 14.0.0
41
+     */
42
+    public function getId():string;
43 43
 
44
-	/**
45
-	 * Get the display name for the room
46
-	 *
47
-	 * @return string
48
-	 * @since 14.0.0
49
-	 */
50
-	public function getDisplayName():string;
44
+    /**
45
+     * Get the display name for the room
46
+     *
47
+     * @return string
48
+     * @since 14.0.0
49
+     */
50
+    public function getDisplayName():string;
51 51
 
52
-	/**
53
-	 * Get a list of groupIds that are allowed to access this room
54
-	 *
55
-	 * If an empty array is returned, no group restrictions are
56
-	 * applied.
57
-	 *
58
-	 * @return string[]
59
-	 * @since 14.0.0
60
-	 */
61
-	public function getGroupRestrictions():array;
52
+    /**
53
+     * Get a list of groupIds that are allowed to access this room
54
+     *
55
+     * If an empty array is returned, no group restrictions are
56
+     * applied.
57
+     *
58
+     * @return string[]
59
+     * @since 14.0.0
60
+     */
61
+    public function getGroupRestrictions():array;
62 62
 
63
-	/**
64
-	 * Get the email-address for the room
65
-	 *
66
-	 * The email-address has to be globally unique
67
-	 *
68
-	 * @return string
69
-	 * @since 14.0.0
70
-	 */
71
-	public function getEMail():string;
63
+    /**
64
+     * Get the email-address for the room
65
+     *
66
+     * The email-address has to be globally unique
67
+     *
68
+     * @return string
69
+     * @since 14.0.0
70
+     */
71
+    public function getEMail():string;
72 72
 
73
-	/**
74
-	 * Get corresponding backend object
75
-	 *
76
-	 * @return IBackend
77
-	 * @since 14.0.0
78
-	 */
79
-	public function getBackend():IBackend;
73
+    /**
74
+     * Get corresponding backend object
75
+     *
76
+     * @return IBackend
77
+     * @since 14.0.0
78
+     */
79
+    public function getBackend():IBackend;
80 80
 }
Please login to merge, or discard this patch.