Passed
Push — master ( d23e96...1bc100 )
by Roeland
11:25 queued 10s
created
apps/files_external/lib/Lib/StorageModifierTrait.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -43,28 +43,28 @@
 block discarded – undo
43 43
  */
44 44
 trait StorageModifierTrait {
45 45
 
46
-	/**
47
-	 * Modify a StorageConfig parameters
48
-	 *
49
-	 * @param StorageConfig $storage
50
-	 * @param IUser $user User the storage is being used as
51
-	 * @throws InsufficientDataForMeaningfulAnswerException
52
-	 * @throws StorageNotAvailableException
53
-	 */
54
-	public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) {
55
-	}
46
+    /**
47
+     * Modify a StorageConfig parameters
48
+     *
49
+     * @param StorageConfig $storage
50
+     * @param IUser $user User the storage is being used as
51
+     * @throws InsufficientDataForMeaningfulAnswerException
52
+     * @throws StorageNotAvailableException
53
+     */
54
+    public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) {
55
+    }
56 56
 
57
-	/**
58
-	 * Wrap a Storage if necessary
59
-	 *
60
-	 * @param Storage $storage
61
-	 * @return Storage
62
-	 * @throws InsufficientDataForMeaningfulAnswerException
63
-	 * @throws StorageNotAvailableException
64
-	 */
65
-	public function wrapStorage(Storage $storage) {
66
-		return $storage;
67
-	}
57
+    /**
58
+     * Wrap a Storage if necessary
59
+     *
60
+     * @param Storage $storage
61
+     * @return Storage
62
+     * @throws InsufficientDataForMeaningfulAnswerException
63
+     * @throws StorageNotAvailableException
64
+     */
65
+    public function wrapStorage(Storage $storage) {
66
+        return $storage;
67
+    }
68 68
 
69 69
 }
70 70
 
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/Notify/SMBNotifyHandler.php 2 patches
Indentation   +109 added lines, -109 removed lines patch added patch discarded remove patch
@@ -29,122 +29,122 @@
 block discarded – undo
29 29
 use OCP\Files\Notify\INotifyHandler;
30 30
 
31 31
 class SMBNotifyHandler implements INotifyHandler {
32
-	/**
33
-	 * @var \Icewind\SMB\INotifyHandler
34
-	 */
35
-	private $shareNotifyHandler;
32
+    /**
33
+     * @var \Icewind\SMB\INotifyHandler
34
+     */
35
+    private $shareNotifyHandler;
36 36
 
37
-	/**
38
-	 * @var string
39
-	 */
40
-	private $root;
37
+    /**
38
+     * @var string
39
+     */
40
+    private $root;
41 41
 
42
-	private $oldRenamePath = null;
42
+    private $oldRenamePath = null;
43 43
 
44
-	/**
45
-	 * SMBNotifyHandler constructor.
46
-	 *
47
-	 * @param \Icewind\SMB\INotifyHandler $shareNotifyHandler
48
-	 * @param string $root
49
-	 */
50
-	public function __construct(\Icewind\SMB\INotifyHandler $shareNotifyHandler, $root) {
51
-		$this->shareNotifyHandler = $shareNotifyHandler;
52
-		$this->root = $root;
53
-	}
44
+    /**
45
+     * SMBNotifyHandler constructor.
46
+     *
47
+     * @param \Icewind\SMB\INotifyHandler $shareNotifyHandler
48
+     * @param string $root
49
+     */
50
+    public function __construct(\Icewind\SMB\INotifyHandler $shareNotifyHandler, $root) {
51
+        $this->shareNotifyHandler = $shareNotifyHandler;
52
+        $this->root = $root;
53
+    }
54 54
 
55
-	private function relativePath($fullPath) {
56
-		if ($fullPath === $this->root) {
57
-			return '';
58
-		} else if (substr($fullPath, 0, strlen($this->root)) === $this->root) {
59
-			return substr($fullPath, strlen($this->root));
60
-		} else {
61
-			return null;
62
-		}
63
-	}
55
+    private function relativePath($fullPath) {
56
+        if ($fullPath === $this->root) {
57
+            return '';
58
+        } else if (substr($fullPath, 0, strlen($this->root)) === $this->root) {
59
+            return substr($fullPath, strlen($this->root));
60
+        } else {
61
+            return null;
62
+        }
63
+    }
64 64
 
65
-	public function listen(callable $callback) {
66
-		$oldRenamePath = null;
67
-		$this->shareNotifyHandler->listen(function (\Icewind\SMB\Change $shareChange) use ($callback) {
68
-			$change = $this->mapChange($shareChange);
69
-			if (!is_null($change)) {
70
-				return $callback($change);
71
-			} else {
72
-				return true;
73
-			}
74
-		});
75
-	}
65
+    public function listen(callable $callback) {
66
+        $oldRenamePath = null;
67
+        $this->shareNotifyHandler->listen(function (\Icewind\SMB\Change $shareChange) use ($callback) {
68
+            $change = $this->mapChange($shareChange);
69
+            if (!is_null($change)) {
70
+                return $callback($change);
71
+            } else {
72
+                return true;
73
+            }
74
+        });
75
+    }
76 76
 
77
-	/**
78
-	 * Get all changes detected since the start of the notify process or the last call to getChanges
79
-	 *
80
-	 * @return IChange[]
81
-	 */
82
-	public function getChanges() {
83
-		$shareChanges = $this->shareNotifyHandler->getChanges();
84
-		$changes = [];
85
-		foreach ($shareChanges as $shareChange) {
86
-			$change = $this->mapChange($shareChange);
87
-			if ($change) {
88
-				$changes[] = $change;
89
-			}
90
-		}
91
-		return $changes;
92
-	}
77
+    /**
78
+     * Get all changes detected since the start of the notify process or the last call to getChanges
79
+     *
80
+     * @return IChange[]
81
+     */
82
+    public function getChanges() {
83
+        $shareChanges = $this->shareNotifyHandler->getChanges();
84
+        $changes = [];
85
+        foreach ($shareChanges as $shareChange) {
86
+            $change = $this->mapChange($shareChange);
87
+            if ($change) {
88
+                $changes[] = $change;
89
+            }
90
+        }
91
+        return $changes;
92
+    }
93 93
 
94
-	/**
95
-	 * Stop listening for changes
96
-	 *
97
-	 * Note that any pending changes will be discarded
98
-	 */
99
-	public function stop() {
100
-		$this->shareNotifyHandler->stop();
101
-	}
94
+    /**
95
+     * Stop listening for changes
96
+     *
97
+     * Note that any pending changes will be discarded
98
+     */
99
+    public function stop() {
100
+        $this->shareNotifyHandler->stop();
101
+    }
102 102
 
103
-	/**
104
-	 * @param \Icewind\SMB\Change $change
105
-	 * @return IChange|null
106
-	 */
107
-	private function mapChange(\Icewind\SMB\Change $change) {
108
-		$path = $this->relativePath($change->getPath());
109
-		if (is_null($path)) {
110
-			return null;
111
-		}
112
-		if ($change->getCode() === \Icewind\SMB\INotifyHandler::NOTIFY_RENAMED_OLD) {
113
-			$this->oldRenamePath = $path;
114
-			return null;
115
-		}
116
-		$type = $this->mapNotifyType($change->getCode());
117
-		if (is_null($type)) {
118
-			return null;
119
-		}
120
-		if ($type === IChange::RENAMED) {
121
-			if (!is_null($this->oldRenamePath)) {
122
-				$result = new RenameChange($type, $this->oldRenamePath, $path);
123
-				$this->oldRenamePath = null;
124
-			} else {
125
-				$result = null;
126
-			}
127
-		} else {
128
-			$result = new Change($type, $path);
129
-		}
130
-		return $result;
131
-	}
103
+    /**
104
+     * @param \Icewind\SMB\Change $change
105
+     * @return IChange|null
106
+     */
107
+    private function mapChange(\Icewind\SMB\Change $change) {
108
+        $path = $this->relativePath($change->getPath());
109
+        if (is_null($path)) {
110
+            return null;
111
+        }
112
+        if ($change->getCode() === \Icewind\SMB\INotifyHandler::NOTIFY_RENAMED_OLD) {
113
+            $this->oldRenamePath = $path;
114
+            return null;
115
+        }
116
+        $type = $this->mapNotifyType($change->getCode());
117
+        if (is_null($type)) {
118
+            return null;
119
+        }
120
+        if ($type === IChange::RENAMED) {
121
+            if (!is_null($this->oldRenamePath)) {
122
+                $result = new RenameChange($type, $this->oldRenamePath, $path);
123
+                $this->oldRenamePath = null;
124
+            } else {
125
+                $result = null;
126
+            }
127
+        } else {
128
+            $result = new Change($type, $path);
129
+        }
130
+        return $result;
131
+    }
132 132
 
133
-	private function mapNotifyType($smbType) {
134
-		switch ($smbType) {
135
-			case \Icewind\SMB\INotifyHandler::NOTIFY_ADDED:
136
-				return IChange::ADDED;
137
-			case \Icewind\SMB\INotifyHandler::NOTIFY_REMOVED:
138
-				return IChange::REMOVED;
139
-			case \Icewind\SMB\INotifyHandler::NOTIFY_MODIFIED:
140
-			case \Icewind\SMB\INotifyHandler::NOTIFY_ADDED_STREAM:
141
-			case \Icewind\SMB\INotifyHandler::NOTIFY_MODIFIED_STREAM:
142
-			case \Icewind\SMB\INotifyHandler::NOTIFY_REMOVED_STREAM:
143
-				return IChange::MODIFIED;
144
-			case \Icewind\SMB\INotifyHandler::NOTIFY_RENAMED_NEW:
145
-				return IChange::RENAMED;
146
-			default:
147
-				return null;
148
-		}
149
-	}
133
+    private function mapNotifyType($smbType) {
134
+        switch ($smbType) {
135
+            case \Icewind\SMB\INotifyHandler::NOTIFY_ADDED:
136
+                return IChange::ADDED;
137
+            case \Icewind\SMB\INotifyHandler::NOTIFY_REMOVED:
138
+                return IChange::REMOVED;
139
+            case \Icewind\SMB\INotifyHandler::NOTIFY_MODIFIED:
140
+            case \Icewind\SMB\INotifyHandler::NOTIFY_ADDED_STREAM:
141
+            case \Icewind\SMB\INotifyHandler::NOTIFY_MODIFIED_STREAM:
142
+            case \Icewind\SMB\INotifyHandler::NOTIFY_REMOVED_STREAM:
143
+                return IChange::MODIFIED;
144
+            case \Icewind\SMB\INotifyHandler::NOTIFY_RENAMED_NEW:
145
+                return IChange::RENAMED;
146
+            default:
147
+                return null;
148
+        }
149
+    }
150 150
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@
 block discarded – undo
64 64
 
65 65
 	public function listen(callable $callback) {
66 66
 		$oldRenamePath = null;
67
-		$this->shareNotifyHandler->listen(function (\Icewind\SMB\Change $shareChange) use ($callback) {
67
+		$this->shareNotifyHandler->listen(function(\Icewind\SMB\Change $shareChange) use ($callback) {
68 68
 			$change = $this->mapChange($shareChange);
69 69
 			if (!is_null($change)) {
70 70
 				return $callback($change);
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/StorageConfig.php 2 patches
Indentation   +394 added lines, -394 removed lines patch added patch discarded remove patch
@@ -35,398 +35,398 @@
 block discarded – undo
35 35
  * External storage configuration
36 36
  */
37 37
 class StorageConfig implements \JsonSerializable {
38
-	const MOUNT_TYPE_ADMIN = 1;
39
-	const MOUNT_TYPE_PERSONAl = 2;
40
-
41
-	/**
42
-	 * Storage config id
43
-	 *
44
-	 * @var int
45
-	 */
46
-	private $id;
47
-
48
-	/**
49
-	 * Backend
50
-	 *
51
-	 * @var Backend
52
-	 */
53
-	private $backend;
54
-
55
-	/**
56
-	 * Authentication mechanism
57
-	 *
58
-	 * @var AuthMechanism
59
-	 */
60
-	private $authMechanism;
61
-
62
-	/**
63
-	 * Backend options
64
-	 *
65
-	 * @var array
66
-	 */
67
-	private $backendOptions = [];
68
-
69
-	/**
70
-	 * Mount point path, relative to the user's "files" folder
71
-	 *
72
-	 * @var string
73
-	 */
74
-	private $mountPoint;
75
-
76
-	/**
77
-	 * Storage status
78
-	 *
79
-	 * @var int
80
-	 */
81
-	private $status;
82
-
83
-	/**
84
-	 * Status message
85
-	 *
86
-	 * @var string
87
-	 */
88
-	private $statusMessage;
89
-
90
-	/**
91
-	 * Priority
92
-	 *
93
-	 * @var int
94
-	 */
95
-	private $priority;
96
-
97
-	/**
98
-	 * List of users who have access to this storage
99
-	 *
100
-	 * @var array
101
-	 */
102
-	private $applicableUsers = [];
103
-
104
-	/**
105
-	 * List of groups that have access to this storage
106
-	 *
107
-	 * @var array
108
-	 */
109
-	private $applicableGroups = [];
110
-
111
-	/**
112
-	 * Mount-specific options
113
-	 *
114
-	 * @var array
115
-	 */
116
-	private $mountOptions = [];
117
-
118
-	/**
119
-	 * Whether it's a personal or admin mount
120
-	 *
121
-	 * @var int
122
-	 */
123
-	private $type;
124
-
125
-	/**
126
-	 * Creates a storage config
127
-	 *
128
-	 * @param int|null $id config id or null for a new config
129
-	 */
130
-	public function __construct($id = null) {
131
-		$this->id = $id;
132
-		$this->mountOptions['enable_sharing'] = false;
133
-	}
134
-
135
-	/**
136
-	 * Returns the configuration id
137
-	 *
138
-	 * @return int
139
-	 */
140
-	public function getId() {
141
-		return $this->id;
142
-	}
143
-
144
-	/**
145
-	 * Sets the configuration id
146
-	 *
147
-	 * @param int $id configuration id
148
-	 */
149
-	public function setId($id) {
150
-		$this->id = $id;
151
-	}
152
-
153
-	/**
154
-	 * Returns mount point path relative to the user's
155
-	 * "files" folder.
156
-	 *
157
-	 * @return string path
158
-	 */
159
-	public function getMountPoint() {
160
-		return $this->mountPoint;
161
-	}
162
-
163
-	/**
164
-	 * Sets mount point path relative to the user's
165
-	 * "files" folder.
166
-	 * The path will be normalized.
167
-	 *
168
-	 * @param string $mountPoint path
169
-	 */
170
-	public function setMountPoint($mountPoint) {
171
-		$this->mountPoint = \OC\Files\Filesystem::normalizePath($mountPoint);
172
-	}
173
-
174
-	/**
175
-	 * @return Backend
176
-	 */
177
-	public function getBackend() {
178
-		return $this->backend;
179
-	}
180
-
181
-	/**
182
-	 * @param Backend $backend
183
-	 */
184
-	public function setBackend(Backend $backend) {
185
-		$this->backend= $backend;
186
-	}
187
-
188
-	/**
189
-	 * @return AuthMechanism
190
-	 */
191
-	public function getAuthMechanism() {
192
-		return $this->authMechanism;
193
-	}
194
-
195
-	/**
196
-	 * @param AuthMechanism $authMechanism
197
-	 */
198
-	public function setAuthMechanism(AuthMechanism $authMechanism) {
199
-		$this->authMechanism = $authMechanism;
200
-	}
201
-
202
-	/**
203
-	 * Returns the external storage backend-specific options
204
-	 *
205
-	 * @return array backend options
206
-	 */
207
-	public function getBackendOptions() {
208
-		return $this->backendOptions;
209
-	}
210
-
211
-	/**
212
-	 * Sets the external storage backend-specific options
213
-	 *
214
-	 * @param array $backendOptions backend options
215
-	 */
216
-	public function setBackendOptions($backendOptions) {
217
-		if($this->getBackend() instanceof  Backend) {
218
-			$parameters = $this->getBackend()->getParameters();
219
-			foreach($backendOptions as $key => $value) {
220
-				if(isset($parameters[$key])) {
221
-					switch ($parameters[$key]->getType()) {
222
-						case \OCA\Files_External\Lib\DefinitionParameter::VALUE_BOOLEAN:
223
-							$value = (bool)$value;
224
-							break;
225
-					}
226
-					$backendOptions[$key] = $value;
227
-				}
228
-			}
229
-		}
230
-
231
-		$this->backendOptions = $backendOptions;
232
-	}
233
-
234
-	/**
235
-	 * @param string $key
236
-	 * @return mixed
237
-	 */
238
-	public function getBackendOption($key) {
239
-		if (isset($this->backendOptions[$key])) {
240
-			return $this->backendOptions[$key];
241
-		}
242
-		return null;
243
-	}
244
-
245
-	/**
246
-	 * @param string $key
247
-	 * @param mixed $value
248
-	 */
249
-	public function setBackendOption($key, $value) {
250
-		$this->backendOptions[$key] = $value;
251
-	}
252
-
253
-	/**
254
-	 * Returns the mount priority
255
-	 *
256
-	 * @return int priority
257
-	 */
258
-	public function getPriority() {
259
-		return $this->priority;
260
-	}
261
-
262
-	/**
263
-	 * Sets the mount priotity
264
-	 *
265
-	 * @param int $priority priority
266
-	 */
267
-	public function setPriority($priority) {
268
-		$this->priority = $priority;
269
-	}
270
-
271
-	/**
272
-	 * Returns the users for which to mount this storage
273
-	 *
274
-	 * @return array applicable users
275
-	 */
276
-	public function getApplicableUsers() {
277
-		return $this->applicableUsers;
278
-	}
279
-
280
-	/**
281
-	 * Sets the users for which to mount this storage
282
-	 *
283
-	 * @param array|null $applicableUsers applicable users
284
-	 */
285
-	public function setApplicableUsers($applicableUsers) {
286
-		if (is_null($applicableUsers)) {
287
-			$applicableUsers = [];
288
-		}
289
-		$this->applicableUsers = $applicableUsers;
290
-	}
291
-
292
-	/**
293
-	 * Returns the groups for which to mount this storage
294
-	 *
295
-	 * @return array applicable groups
296
-	 */
297
-	public function getApplicableGroups() {
298
-		return $this->applicableGroups;
299
-	}
300
-
301
-	/**
302
-	 * Sets the groups for which to mount this storage
303
-	 *
304
-	 * @param array|null $applicableGroups applicable groups
305
-	 */
306
-	public function setApplicableGroups($applicableGroups) {
307
-		if (is_null($applicableGroups)) {
308
-			$applicableGroups = [];
309
-		}
310
-		$this->applicableGroups = $applicableGroups;
311
-	}
312
-
313
-	/**
314
-	 * Returns the mount-specific options
315
-	 *
316
-	 * @return array mount specific options
317
-	 */
318
-	public function getMountOptions() {
319
-		return $this->mountOptions;
320
-	}
321
-
322
-	/**
323
-	 * Sets the mount-specific options
324
-	 *
325
-	 * @param array $mountOptions applicable groups
326
-	 */
327
-	public function setMountOptions($mountOptions) {
328
-		if (is_null($mountOptions)) {
329
-			$mountOptions = [];
330
-		}
331
-		$this->mountOptions = $mountOptions;
332
-	}
333
-
334
-	/**
335
-	 * @param string $key
336
-	 * @return mixed
337
-	 */
338
-	public function getMountOption($key) {
339
-		if (isset($this->mountOptions[$key])) {
340
-			return $this->mountOptions[$key];
341
-		}
342
-		return null;
343
-	}
344
-
345
-	/**
346
-	 * @param string $key
347
-	 * @param mixed $value
348
-	 */
349
-	public function setMountOption($key, $value) {
350
-		$this->mountOptions[$key] = $value;
351
-	}
352
-
353
-	/**
354
-	 * Gets the storage status, whether the config worked last time
355
-	 *
356
-	 * @return int $status status
357
-	 */
358
-	public function getStatus() {
359
-		return $this->status;
360
-	}
361
-
362
-	/**
363
-	 * Gets the message describing the storage status
364
-	 *
365
-	 * @return string|null
366
-	 */
367
-	public function getStatusMessage() {
368
-		return $this->statusMessage;
369
-	}
370
-
371
-	/**
372
-	 * Sets the storage status, whether the config worked last time
373
-	 *
374
-	 * @param int $status status
375
-	 * @param string|null $message optional message
376
-	 */
377
-	public function setStatus($status, $message = null) {
378
-		$this->status = $status;
379
-		$this->statusMessage = $message;
380
-	}
381
-
382
-	/**
383
-	 * @return int self::MOUNT_TYPE_ADMIN or self::MOUNT_TYPE_PERSONAl
384
-	 */
385
-	public function getType() {
386
-		return $this->type;
387
-	}
388
-
389
-	/**
390
-	 * @param int $type self::MOUNT_TYPE_ADMIN or self::MOUNT_TYPE_PERSONAl
391
-	 */
392
-	public function setType($type) {
393
-		$this->type = $type;
394
-	}
395
-
396
-	/**
397
-	 * Serialize config to JSON
398
-	 *
399
-	 * @return array
400
-	 */
401
-	public function jsonSerialize() {
402
-		$result = [];
403
-		if (!is_null($this->id)) {
404
-			$result['id'] = $this->id;
405
-		}
406
-		$result['mountPoint'] = $this->mountPoint;
407
-		$result['backend'] = $this->backend->getIdentifier();
408
-		$result['authMechanism'] = $this->authMechanism->getIdentifier();
409
-		$result['backendOptions'] = $this->backendOptions;
410
-		if (!is_null($this->priority)) {
411
-			$result['priority'] = $this->priority;
412
-		}
413
-		if (!empty($this->applicableUsers)) {
414
-			$result['applicableUsers'] = $this->applicableUsers;
415
-		}
416
-		if (!empty($this->applicableGroups)) {
417
-			$result['applicableGroups'] = $this->applicableGroups;
418
-		}
419
-		if (!empty($this->mountOptions)) {
420
-			$result['mountOptions'] = $this->mountOptions;
421
-		}
422
-		if (!is_null($this->status)) {
423
-			$result['status'] = $this->status;
424
-		}
425
-		if (!is_null($this->statusMessage)) {
426
-			$result['statusMessage'] = $this->statusMessage;
427
-		}
428
-		$result['userProvided'] = $this->authMechanism instanceof IUserProvided;
429
-		$result['type'] = ($this->getType() === self::MOUNT_TYPE_PERSONAl) ? 'personal': 'system';
430
-		return $result;
431
-	}
38
+    const MOUNT_TYPE_ADMIN = 1;
39
+    const MOUNT_TYPE_PERSONAl = 2;
40
+
41
+    /**
42
+     * Storage config id
43
+     *
44
+     * @var int
45
+     */
46
+    private $id;
47
+
48
+    /**
49
+     * Backend
50
+     *
51
+     * @var Backend
52
+     */
53
+    private $backend;
54
+
55
+    /**
56
+     * Authentication mechanism
57
+     *
58
+     * @var AuthMechanism
59
+     */
60
+    private $authMechanism;
61
+
62
+    /**
63
+     * Backend options
64
+     *
65
+     * @var array
66
+     */
67
+    private $backendOptions = [];
68
+
69
+    /**
70
+     * Mount point path, relative to the user's "files" folder
71
+     *
72
+     * @var string
73
+     */
74
+    private $mountPoint;
75
+
76
+    /**
77
+     * Storage status
78
+     *
79
+     * @var int
80
+     */
81
+    private $status;
82
+
83
+    /**
84
+     * Status message
85
+     *
86
+     * @var string
87
+     */
88
+    private $statusMessage;
89
+
90
+    /**
91
+     * Priority
92
+     *
93
+     * @var int
94
+     */
95
+    private $priority;
96
+
97
+    /**
98
+     * List of users who have access to this storage
99
+     *
100
+     * @var array
101
+     */
102
+    private $applicableUsers = [];
103
+
104
+    /**
105
+     * List of groups that have access to this storage
106
+     *
107
+     * @var array
108
+     */
109
+    private $applicableGroups = [];
110
+
111
+    /**
112
+     * Mount-specific options
113
+     *
114
+     * @var array
115
+     */
116
+    private $mountOptions = [];
117
+
118
+    /**
119
+     * Whether it's a personal or admin mount
120
+     *
121
+     * @var int
122
+     */
123
+    private $type;
124
+
125
+    /**
126
+     * Creates a storage config
127
+     *
128
+     * @param int|null $id config id or null for a new config
129
+     */
130
+    public function __construct($id = null) {
131
+        $this->id = $id;
132
+        $this->mountOptions['enable_sharing'] = false;
133
+    }
134
+
135
+    /**
136
+     * Returns the configuration id
137
+     *
138
+     * @return int
139
+     */
140
+    public function getId() {
141
+        return $this->id;
142
+    }
143
+
144
+    /**
145
+     * Sets the configuration id
146
+     *
147
+     * @param int $id configuration id
148
+     */
149
+    public function setId($id) {
150
+        $this->id = $id;
151
+    }
152
+
153
+    /**
154
+     * Returns mount point path relative to the user's
155
+     * "files" folder.
156
+     *
157
+     * @return string path
158
+     */
159
+    public function getMountPoint() {
160
+        return $this->mountPoint;
161
+    }
162
+
163
+    /**
164
+     * Sets mount point path relative to the user's
165
+     * "files" folder.
166
+     * The path will be normalized.
167
+     *
168
+     * @param string $mountPoint path
169
+     */
170
+    public function setMountPoint($mountPoint) {
171
+        $this->mountPoint = \OC\Files\Filesystem::normalizePath($mountPoint);
172
+    }
173
+
174
+    /**
175
+     * @return Backend
176
+     */
177
+    public function getBackend() {
178
+        return $this->backend;
179
+    }
180
+
181
+    /**
182
+     * @param Backend $backend
183
+     */
184
+    public function setBackend(Backend $backend) {
185
+        $this->backend= $backend;
186
+    }
187
+
188
+    /**
189
+     * @return AuthMechanism
190
+     */
191
+    public function getAuthMechanism() {
192
+        return $this->authMechanism;
193
+    }
194
+
195
+    /**
196
+     * @param AuthMechanism $authMechanism
197
+     */
198
+    public function setAuthMechanism(AuthMechanism $authMechanism) {
199
+        $this->authMechanism = $authMechanism;
200
+    }
201
+
202
+    /**
203
+     * Returns the external storage backend-specific options
204
+     *
205
+     * @return array backend options
206
+     */
207
+    public function getBackendOptions() {
208
+        return $this->backendOptions;
209
+    }
210
+
211
+    /**
212
+     * Sets the external storage backend-specific options
213
+     *
214
+     * @param array $backendOptions backend options
215
+     */
216
+    public function setBackendOptions($backendOptions) {
217
+        if($this->getBackend() instanceof  Backend) {
218
+            $parameters = $this->getBackend()->getParameters();
219
+            foreach($backendOptions as $key => $value) {
220
+                if(isset($parameters[$key])) {
221
+                    switch ($parameters[$key]->getType()) {
222
+                        case \OCA\Files_External\Lib\DefinitionParameter::VALUE_BOOLEAN:
223
+                            $value = (bool)$value;
224
+                            break;
225
+                    }
226
+                    $backendOptions[$key] = $value;
227
+                }
228
+            }
229
+        }
230
+
231
+        $this->backendOptions = $backendOptions;
232
+    }
233
+
234
+    /**
235
+     * @param string $key
236
+     * @return mixed
237
+     */
238
+    public function getBackendOption($key) {
239
+        if (isset($this->backendOptions[$key])) {
240
+            return $this->backendOptions[$key];
241
+        }
242
+        return null;
243
+    }
244
+
245
+    /**
246
+     * @param string $key
247
+     * @param mixed $value
248
+     */
249
+    public function setBackendOption($key, $value) {
250
+        $this->backendOptions[$key] = $value;
251
+    }
252
+
253
+    /**
254
+     * Returns the mount priority
255
+     *
256
+     * @return int priority
257
+     */
258
+    public function getPriority() {
259
+        return $this->priority;
260
+    }
261
+
262
+    /**
263
+     * Sets the mount priotity
264
+     *
265
+     * @param int $priority priority
266
+     */
267
+    public function setPriority($priority) {
268
+        $this->priority = $priority;
269
+    }
270
+
271
+    /**
272
+     * Returns the users for which to mount this storage
273
+     *
274
+     * @return array applicable users
275
+     */
276
+    public function getApplicableUsers() {
277
+        return $this->applicableUsers;
278
+    }
279
+
280
+    /**
281
+     * Sets the users for which to mount this storage
282
+     *
283
+     * @param array|null $applicableUsers applicable users
284
+     */
285
+    public function setApplicableUsers($applicableUsers) {
286
+        if (is_null($applicableUsers)) {
287
+            $applicableUsers = [];
288
+        }
289
+        $this->applicableUsers = $applicableUsers;
290
+    }
291
+
292
+    /**
293
+     * Returns the groups for which to mount this storage
294
+     *
295
+     * @return array applicable groups
296
+     */
297
+    public function getApplicableGroups() {
298
+        return $this->applicableGroups;
299
+    }
300
+
301
+    /**
302
+     * Sets the groups for which to mount this storage
303
+     *
304
+     * @param array|null $applicableGroups applicable groups
305
+     */
306
+    public function setApplicableGroups($applicableGroups) {
307
+        if (is_null($applicableGroups)) {
308
+            $applicableGroups = [];
309
+        }
310
+        $this->applicableGroups = $applicableGroups;
311
+    }
312
+
313
+    /**
314
+     * Returns the mount-specific options
315
+     *
316
+     * @return array mount specific options
317
+     */
318
+    public function getMountOptions() {
319
+        return $this->mountOptions;
320
+    }
321
+
322
+    /**
323
+     * Sets the mount-specific options
324
+     *
325
+     * @param array $mountOptions applicable groups
326
+     */
327
+    public function setMountOptions($mountOptions) {
328
+        if (is_null($mountOptions)) {
329
+            $mountOptions = [];
330
+        }
331
+        $this->mountOptions = $mountOptions;
332
+    }
333
+
334
+    /**
335
+     * @param string $key
336
+     * @return mixed
337
+     */
338
+    public function getMountOption($key) {
339
+        if (isset($this->mountOptions[$key])) {
340
+            return $this->mountOptions[$key];
341
+        }
342
+        return null;
343
+    }
344
+
345
+    /**
346
+     * @param string $key
347
+     * @param mixed $value
348
+     */
349
+    public function setMountOption($key, $value) {
350
+        $this->mountOptions[$key] = $value;
351
+    }
352
+
353
+    /**
354
+     * Gets the storage status, whether the config worked last time
355
+     *
356
+     * @return int $status status
357
+     */
358
+    public function getStatus() {
359
+        return $this->status;
360
+    }
361
+
362
+    /**
363
+     * Gets the message describing the storage status
364
+     *
365
+     * @return string|null
366
+     */
367
+    public function getStatusMessage() {
368
+        return $this->statusMessage;
369
+    }
370
+
371
+    /**
372
+     * Sets the storage status, whether the config worked last time
373
+     *
374
+     * @param int $status status
375
+     * @param string|null $message optional message
376
+     */
377
+    public function setStatus($status, $message = null) {
378
+        $this->status = $status;
379
+        $this->statusMessage = $message;
380
+    }
381
+
382
+    /**
383
+     * @return int self::MOUNT_TYPE_ADMIN or self::MOUNT_TYPE_PERSONAl
384
+     */
385
+    public function getType() {
386
+        return $this->type;
387
+    }
388
+
389
+    /**
390
+     * @param int $type self::MOUNT_TYPE_ADMIN or self::MOUNT_TYPE_PERSONAl
391
+     */
392
+    public function setType($type) {
393
+        $this->type = $type;
394
+    }
395
+
396
+    /**
397
+     * Serialize config to JSON
398
+     *
399
+     * @return array
400
+     */
401
+    public function jsonSerialize() {
402
+        $result = [];
403
+        if (!is_null($this->id)) {
404
+            $result['id'] = $this->id;
405
+        }
406
+        $result['mountPoint'] = $this->mountPoint;
407
+        $result['backend'] = $this->backend->getIdentifier();
408
+        $result['authMechanism'] = $this->authMechanism->getIdentifier();
409
+        $result['backendOptions'] = $this->backendOptions;
410
+        if (!is_null($this->priority)) {
411
+            $result['priority'] = $this->priority;
412
+        }
413
+        if (!empty($this->applicableUsers)) {
414
+            $result['applicableUsers'] = $this->applicableUsers;
415
+        }
416
+        if (!empty($this->applicableGroups)) {
417
+            $result['applicableGroups'] = $this->applicableGroups;
418
+        }
419
+        if (!empty($this->mountOptions)) {
420
+            $result['mountOptions'] = $this->mountOptions;
421
+        }
422
+        if (!is_null($this->status)) {
423
+            $result['status'] = $this->status;
424
+        }
425
+        if (!is_null($this->statusMessage)) {
426
+            $result['statusMessage'] = $this->statusMessage;
427
+        }
428
+        $result['userProvided'] = $this->authMechanism instanceof IUserProvided;
429
+        $result['type'] = ($this->getType() === self::MOUNT_TYPE_PERSONAl) ? 'personal': 'system';
430
+        return $result;
431
+    }
432 432
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
 	 * @param Backend $backend
183 183
 	 */
184 184
 	public function setBackend(Backend $backend) {
185
-		$this->backend= $backend;
185
+		$this->backend = $backend;
186 186
 	}
187 187
 
188 188
 	/**
@@ -214,13 +214,13 @@  discard block
 block discarded – undo
214 214
 	 * @param array $backendOptions backend options
215 215
 	 */
216 216
 	public function setBackendOptions($backendOptions) {
217
-		if($this->getBackend() instanceof  Backend) {
217
+		if ($this->getBackend() instanceof  Backend) {
218 218
 			$parameters = $this->getBackend()->getParameters();
219
-			foreach($backendOptions as $key => $value) {
220
-				if(isset($parameters[$key])) {
219
+			foreach ($backendOptions as $key => $value) {
220
+				if (isset($parameters[$key])) {
221 221
 					switch ($parameters[$key]->getType()) {
222 222
 						case \OCA\Files_External\Lib\DefinitionParameter::VALUE_BOOLEAN:
223
-							$value = (bool)$value;
223
+							$value = (bool) $value;
224 224
 							break;
225 225
 					}
226 226
 					$backendOptions[$key] = $value;
@@ -426,7 +426,7 @@  discard block
 block discarded – undo
426 426
 			$result['statusMessage'] = $this->statusMessage;
427 427
 		}
428 428
 		$result['userProvided'] = $this->authMechanism instanceof IUserProvided;
429
-		$result['type'] = ($this->getType() === self::MOUNT_TYPE_PERSONAl) ? 'personal': 'system';
429
+		$result['type'] = ($this->getType() === self::MOUNT_TYPE_PERSONAl) ? 'personal' : 'system';
430 430
 		return $result;
431 431
 	}
432 432
 }
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/Backend/LegacyBackend.php 2 patches
Indentation   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -33,73 +33,73 @@
 block discarded – undo
33 33
  */
34 34
 class LegacyBackend extends Backend {
35 35
 
36
-	use LegacyDependencyCheckPolyfill {
37
-		LegacyDependencyCheckPolyfill::checkDependencies as doCheckDependencies;
38
-	}
36
+    use LegacyDependencyCheckPolyfill {
37
+        LegacyDependencyCheckPolyfill::checkDependencies as doCheckDependencies;
38
+    }
39 39
 
40
-	/** @var bool */
41
-	protected $hasDependencies = false;
40
+    /** @var bool */
41
+    protected $hasDependencies = false;
42 42
 
43
-	/**
44
-	 * @param string $class
45
-	 * @param array $definition
46
-	 * @param Builtin $authMechanism
47
-	 */
48
-	public function __construct($class, array $definition, Builtin $authMechanism) {
49
-		$this
50
-			->setIdentifier($class)
51
-			->setStorageClass($class)
52
-			->setText($definition['backend'])
53
-			->addAuthScheme(Builtin::SCHEME_BUILTIN)
54
-			->setLegacyAuthMechanism($authMechanism)
55
-		;
43
+    /**
44
+     * @param string $class
45
+     * @param array $definition
46
+     * @param Builtin $authMechanism
47
+     */
48
+    public function __construct($class, array $definition, Builtin $authMechanism) {
49
+        $this
50
+            ->setIdentifier($class)
51
+            ->setStorageClass($class)
52
+            ->setText($definition['backend'])
53
+            ->addAuthScheme(Builtin::SCHEME_BUILTIN)
54
+            ->setLegacyAuthMechanism($authMechanism)
55
+        ;
56 56
 
57
-		foreach ($definition['configuration'] as $name => $placeholder) {
58
-			$flags = DefinitionParameter::FLAG_NONE;
59
-			$type = DefinitionParameter::VALUE_TEXT;
60
-			if ($placeholder[0] === '&') {
61
-				$flags = DefinitionParameter::FLAG_OPTIONAL;
62
-				$placeholder = substr($placeholder, 1);
63
-			}
64
-			switch ($placeholder[0]) {
65
-			case '!':
66
-				$type = DefinitionParameter::VALUE_BOOLEAN;
67
-				$placeholder = substr($placeholder, 1);
68
-				break;
69
-			case '*':
70
-				$type = DefinitionParameter::VALUE_PASSWORD;
71
-				$placeholder = substr($placeholder, 1);
72
-				break;
73
-			case '#':
74
-				$type = DefinitionParameter::VALUE_HIDDEN;
75
-				$placeholder = substr($placeholder, 1);
76
-				break;
77
-			}
78
-			$this->addParameter((new DefinitionParameter($name, $placeholder))
79
-				->setType($type)
80
-				->setFlags($flags)
81
-			);
82
-		}
57
+        foreach ($definition['configuration'] as $name => $placeholder) {
58
+            $flags = DefinitionParameter::FLAG_NONE;
59
+            $type = DefinitionParameter::VALUE_TEXT;
60
+            if ($placeholder[0] === '&') {
61
+                $flags = DefinitionParameter::FLAG_OPTIONAL;
62
+                $placeholder = substr($placeholder, 1);
63
+            }
64
+            switch ($placeholder[0]) {
65
+            case '!':
66
+                $type = DefinitionParameter::VALUE_BOOLEAN;
67
+                $placeholder = substr($placeholder, 1);
68
+                break;
69
+            case '*':
70
+                $type = DefinitionParameter::VALUE_PASSWORD;
71
+                $placeholder = substr($placeholder, 1);
72
+                break;
73
+            case '#':
74
+                $type = DefinitionParameter::VALUE_HIDDEN;
75
+                $placeholder = substr($placeholder, 1);
76
+                break;
77
+            }
78
+            $this->addParameter((new DefinitionParameter($name, $placeholder))
79
+                ->setType($type)
80
+                ->setFlags($flags)
81
+            );
82
+        }
83 83
 
84
-		if (isset($definition['priority'])) {
85
-			$this->setPriority($definition['priority']);
86
-		}
87
-		if (isset($definition['custom'])) {
88
-			$this->addCustomJs($definition['custom']);
89
-		}
90
-		if (isset($definition['has_dependencies']) && $definition['has_dependencies']) {
91
-			$this->hasDependencies = true;
92
-		}
93
-	}
84
+        if (isset($definition['priority'])) {
85
+            $this->setPriority($definition['priority']);
86
+        }
87
+        if (isset($definition['custom'])) {
88
+            $this->addCustomJs($definition['custom']);
89
+        }
90
+        if (isset($definition['has_dependencies']) && $definition['has_dependencies']) {
91
+            $this->hasDependencies = true;
92
+        }
93
+    }
94 94
 
95
-	/**
96
-	 * @return MissingDependency[]
97
-	 */
98
-	public function checkDependencies() {
99
-		if ($this->hasDependencies) {
100
-			return $this->doCheckDependencies();
101
-		}
102
-		return [];
103
-	}
95
+    /**
96
+     * @return MissingDependency[]
97
+     */
98
+    public function checkDependencies() {
99
+        if ($this->hasDependencies) {
100
+            return $this->doCheckDependencies();
101
+        }
102
+        return [];
103
+    }
104 104
 
105 105
 }
Please login to merge, or discard this patch.
Switch Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -62,18 +62,18 @@
 block discarded – undo
62 62
 				$placeholder = substr($placeholder, 1);
63 63
 			}
64 64
 			switch ($placeholder[0]) {
65
-			case '!':
66
-				$type = DefinitionParameter::VALUE_BOOLEAN;
67
-				$placeholder = substr($placeholder, 1);
68
-				break;
69
-			case '*':
70
-				$type = DefinitionParameter::VALUE_PASSWORD;
71
-				$placeholder = substr($placeholder, 1);
72
-				break;
73
-			case '#':
74
-				$type = DefinitionParameter::VALUE_HIDDEN;
75
-				$placeholder = substr($placeholder, 1);
76
-				break;
65
+			    case '!':
66
+				    $type = DefinitionParameter::VALUE_BOOLEAN;
67
+				    $placeholder = substr($placeholder, 1);
68
+				    break;
69
+			    case '*':
70
+				    $type = DefinitionParameter::VALUE_PASSWORD;
71
+				    $placeholder = substr($placeholder, 1);
72
+				    break;
73
+			    case '#':
74
+				    $type = DefinitionParameter::VALUE_HIDDEN;
75
+				    $placeholder = substr($placeholder, 1);
76
+				    break;
77 77
 			}
78 78
 			$this->addParameter((new DefinitionParameter($name, $placeholder))
79 79
 				->setType($type)
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/MissingDependency.php 1 patch
Indentation   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -27,39 +27,39 @@
 block discarded – undo
27 27
  */
28 28
 class MissingDependency {
29 29
 
30
-	/** @var string */
31
-	private $dependency;
30
+    /** @var string */
31
+    private $dependency;
32 32
 
33
-	/** @var string|null Custom message */
34
-	private $message = null;
33
+    /** @var string|null Custom message */
34
+    private $message = null;
35 35
 
36
-	/**
37
-	 * @param string $dependency
38
-	 */
39
-	public function __construct($dependency) {
40
-		$this->dependency = $dependency;
41
-	}
36
+    /**
37
+     * @param string $dependency
38
+     */
39
+    public function __construct($dependency) {
40
+        $this->dependency = $dependency;
41
+    }
42 42
 
43
-	/**
44
-	 * @return string
45
-	 */
46
-	public function getDependency() {
47
-		return $this->dependency;
48
-	}
43
+    /**
44
+     * @return string
45
+     */
46
+    public function getDependency() {
47
+        return $this->dependency;
48
+    }
49 49
 
50
-	/**
51
-	 * @return string|null
52
-	 */
53
-	public function getMessage() {
54
-		return $this->message;
55
-	}
50
+    /**
51
+     * @return string|null
52
+     */
53
+    public function getMessage() {
54
+        return $this->message;
55
+    }
56 56
 
57
-	/**
58
-	 * @param string $message
59
-	 * @return self
60
-	 */
61
-	public function setMessage($message) {
62
-		$this->message = $message;
63
-		return $this;
64
-	}
57
+    /**
58
+     * @param string $message
59
+     * @return self
60
+     */
61
+    public function setMessage($message) {
62
+        $this->message = $message;
63
+        return $this;
64
+    }
65 65
 }
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/DependencyTrait.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -29,14 +29,14 @@
 block discarded – undo
29 29
  */
30 30
 trait DependencyTrait {
31 31
 
32
-	/**
33
-	 * Check if object is valid for use
34
-	 *
35
-	 * @return MissingDependency[] Unsatisfied dependencies
36
-	 */
37
-	public function checkDependencies() {
38
-		return []; // no dependencies by default
39
-	}
32
+    /**
33
+     * Check if object is valid for use
34
+     *
35
+     * @return MissingDependency[] Unsatisfied dependencies
36
+     */
37
+    public function checkDependencies() {
38
+        return []; // no dependencies by default
39
+    }
40 40
 
41 41
 }
42 42
 
Please login to merge, or discard this patch.
apps/systemtags/templates/list.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -18,14 +18,14 @@
 block discarded – undo
18 18
 		<tr>
19 19
 			<th id='headerName' class="hidden column-name">
20 20
 				<div id="headerName-container">
21
-					<a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a>
21
+					<a class="name sort columntitle" data-sort="name"><span><?php p($l->t('Name')); ?></span><span class="sort-indicator"></span></a>
22 22
 				</div>
23 23
 			</th>
24 24
 			<th id="headerSize" class="hidden column-size">
25 25
 				<a class="size sort columntitle" data-sort="size"><span><?php p($l->t('Size')); ?></span><span class="sort-indicator"></span></a>
26 26
 			</th>
27 27
 			<th id="headerDate" class="hidden column-mtime">
28
-				<a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t( 'Modified' )); ?></span><span class="sort-indicator"></span></a>
28
+				<a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t('Modified')); ?></span><span class="sort-indicator"></span></a>
29 29
 			</th>
30 30
 		</tr>
31 31
 	</thead>
Please login to merge, or discard this patch.
apps/systemtags/lib/Activity/Provider.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -279,7 +279,7 @@
 block discarded – undo
279 279
 		if ($tagData === null) {
280 280
 			list($name, $status) = explode('|||', substr($parameter, 3, -3));
281 281
 			$tagData = [
282
-				'id' => 0,// No way to recover the ID
282
+				'id' => 0, // No way to recover the ID
283 283
 				'name' => $name,
284 284
 				'assignable' => $status === 'assignable',
285 285
 				'visible' => $status !== 'invisible',
Please login to merge, or discard this patch.
Indentation   +335 added lines, -335 removed lines patch added patch discarded remove patch
@@ -34,339 +34,339 @@
 block discarded – undo
34 34
 
35 35
 class Provider implements IProvider {
36 36
 
37
-	const CREATE_TAG = 'create_tag';
38
-	const UPDATE_TAG = 'update_tag';
39
-	const DELETE_TAG = 'delete_tag';
40
-
41
-	const ASSIGN_TAG = 'assign_tag';
42
-	const UNASSIGN_TAG = 'unassign_tag';
43
-
44
-	/** @var IFactory */
45
-	protected $languageFactory;
46
-
47
-	/** @var IL10N */
48
-	protected $l;
49
-
50
-	/** @var IURLGenerator */
51
-	protected $url;
52
-
53
-	/** @var IManager */
54
-	protected $activityManager;
55
-
56
-	/** @var IUserManager */
57
-	protected $userManager;
58
-
59
-	/** @var string[] */
60
-	protected $displayNames = [];
61
-
62
-	/**
63
-	 * @param IFactory $languageFactory
64
-	 * @param IURLGenerator $url
65
-	 * @param IManager $activityManager
66
-	 * @param IUserManager $userManager
67
-	 */
68
-	public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) {
69
-		$this->languageFactory = $languageFactory;
70
-		$this->url = $url;
71
-		$this->activityManager = $activityManager;
72
-		$this->userManager = $userManager;
73
-	}
74
-
75
-	/**
76
-	 * @param string $language
77
-	 * @param IEvent $event
78
-	 * @param IEvent|null $previousEvent
79
-	 * @return IEvent
80
-	 * @throws \InvalidArgumentException
81
-	 * @since 11.0.0
82
-	 */
83
-	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
84
-		if ($event->getApp() !== 'systemtags') {
85
-			throw new \InvalidArgumentException();
86
-		}
87
-
88
-		$this->l = $this->languageFactory->get('systemtags', $language);
89
-
90
-		if ($this->activityManager->isFormattingFilteredObject()) {
91
-			try {
92
-				return $this->parseShortVersion($event);
93
-			} catch (\InvalidArgumentException $e) {
94
-				// Ignore and simply use the long version...
95
-			}
96
-		}
97
-
98
-		return $this->parseLongVersion($event);
99
-	}
100
-
101
-	/**
102
-	 * @param IEvent $event
103
-	 * @return IEvent
104
-	 * @throws \InvalidArgumentException
105
-	 * @since 11.0.0
106
-	 */
107
-	public function parseShortVersion(IEvent $event) {
108
-		$parsedParameters = $this->getParameters($event);
109
-
110
-		if ($this->activityManager->getRequirePNG()) {
111
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
112
-		} else {
113
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
114
-		}
115
-
116
-		if ($event->getSubject() === self::ASSIGN_TAG) {
117
-			if ($parsedParameters['actor']['id'] === '') {
118
-				$event->setParsedSubject($this->l->t('System tag %1$s added by the system', [
119
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
120
-					]))
121
-					->setRichSubject($this->l->t('Added system tag {systemtag}'), [
122
-						'systemtag' => $parsedParameters['systemtag'],
123
-					]);
124
-			} else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
125
-				$event->setParsedSubject($this->l->t('Added system tag %1$s', [
126
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
127
-					]))
128
-					->setRichSubject($this->l->t('Added system tag {systemtag}'), [
129
-						'systemtag' => $parsedParameters['systemtag'],
130
-					]);
131
-			} else {
132
-				$event->setParsedSubject($this->l->t('%1$s added system tag %2$s', [
133
-						$parsedParameters['actor']['name'],
134
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
135
-					]))
136
-					->setRichSubject($this->l->t('{actor} added system tag {systemtag}'), [
137
-						'actor' => $parsedParameters['actor'],
138
-						'systemtag' => $parsedParameters['systemtag'],
139
-					]);
140
-			}
141
-		} else if ($event->getSubject() === self::UNASSIGN_TAG) {
142
-			if ($parsedParameters['actor']['id'] === '') {
143
-				$event->setParsedSubject($this->l->t('System tag %1$s removed by the system', [
144
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
145
-					]))
146
-					->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
147
-						'systemtag' => $parsedParameters['systemtag'],
148
-					]);
149
-			} else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
150
-				$event->setParsedSubject($this->l->t('Removed system tag %1$s', [
151
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
152
-					]))
153
-					->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
154
-						'systemtag' => $parsedParameters['systemtag'],
155
-					]);
156
-			} else {
157
-				$event->setParsedSubject($this->l->t('%1$s removed system tag %2$s', [
158
-						$parsedParameters['actor']['name'],
159
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
160
-					]))
161
-					->setRichSubject($this->l->t('{actor} removed system tag {systemtag}'), [
162
-						'actor' => $parsedParameters['actor'],
163
-						'systemtag' => $parsedParameters['systemtag'],
164
-					]);
165
-			}
166
-		} else {
167
-			throw new \InvalidArgumentException();
168
-		}
169
-
170
-		return $event;
171
-	}
172
-
173
-	/**
174
-	 * @param IEvent $event
175
-	 * @return IEvent
176
-	 * @throws \InvalidArgumentException
177
-	 * @since 11.0.0
178
-	 */
179
-	public function parseLongVersion(IEvent $event) {
180
-		$parsedParameters = $this->getParameters($event);
181
-
182
-		if ($this->activityManager->getRequirePNG()) {
183
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
184
-		} else {
185
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
186
-		}
187
-
188
-		if ($event->getSubject() === self::CREATE_TAG) {
189
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
190
-				$event->setParsedSubject($this->l->t('You created system tag %1$s', [
191
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
192
-					]))
193
-					->setRichSubject($this->l->t('You created system tag {systemtag}'), $parsedParameters);
194
-			} else {
195
-				$event->setParsedSubject($this->l->t('%1$s created system tag %2$s', [
196
-						$parsedParameters['actor']['name'],
197
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
198
-					]))
199
-					->setRichSubject($this->l->t('{actor} created system tag {systemtag}'), $parsedParameters);
200
-			}
201
-		} else if ($event->getSubject() === self::DELETE_TAG) {
202
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
203
-				$event->setParsedSubject($this->l->t('You deleted system tag %1$s', [
204
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
205
-					]))
206
-					->setRichSubject($this->l->t('You deleted system tag {systemtag}'), $parsedParameters);
207
-			} else {
208
-				$event->setParsedSubject($this->l->t('%1$s deleted system tag %2$s', [
209
-						$parsedParameters['actor']['name'],
210
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
211
-					]))
212
-					->setRichSubject($this->l->t('{actor} deleted system tag {systemtag}'), $parsedParameters);
213
-			}
214
-		} else if ($event->getSubject() === self::UPDATE_TAG) {
215
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
216
-				$event->setParsedSubject($this->l->t('You updated system tag %2$s to %1$s', [
217
-						$this->generatePlainSystemTag($parsedParameters['newsystemtag']),
218
-						$this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
219
-					]))
220
-					->setRichSubject($this->l->t('You updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
221
-			} else {
222
-				$event->setParsedSubject($this->l->t('%1$s updated system tag %3$s to %2$s', [
223
-						$parsedParameters['actor']['name'],
224
-						$this->generatePlainSystemTag($parsedParameters['newsystemtag']),
225
-						$this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
226
-					]))
227
-					->setRichSubject($this->l->t('{actor} updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
228
-			}
229
-		} else if ($event->getSubject() === self::ASSIGN_TAG) {
230
-			if ($parsedParameters['actor']['id'] === '') {
231
-				unset($parsedParameters['actor']);
232
-				$event->setParsedSubject($this->l->t('System tag %2$s was added to %1$s by the system', [
233
-						$parsedParameters['file']['path'],
234
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
235
-					]))
236
-					->setRichSubject($this->l->t('System tag {systemtag} was added to {file} by the system'), $parsedParameters);
237
-			} else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
238
-				$event->setParsedSubject($this->l->t('You added system tag %2$s to %1$s', [
239
-						$parsedParameters['file']['path'],
240
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
241
-					]))
242
-					->setRichSubject($this->l->t('You added system tag {systemtag} to {file}'), $parsedParameters);
243
-			} else {
244
-				$event->setParsedSubject($this->l->t('%1$s added system tag %3$s to %2$s', [
245
-						$parsedParameters['actor']['name'],
246
-						$parsedParameters['file']['path'],
247
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
248
-					]))
249
-					->setRichSubject($this->l->t('{actor} added system tag {systemtag} to {file}'), $parsedParameters);
250
-			}
251
-		} else if ($event->getSubject() === self::UNASSIGN_TAG) {
252
-			if ($parsedParameters['actor']['id'] === '') {
253
-				unset($parsedParameters['actor']);
254
-				$event->setParsedSubject($this->l->t('System tag %2$s was removed from %1$s by the system', [
255
-						$parsedParameters['file']['path'],
256
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
257
-					]))
258
-					->setRichSubject($this->l->t('System tag {systemtag} was removed from {file} by the system'), $parsedParameters);
259
-			} else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
260
-				$event->setParsedSubject($this->l->t('You removed system tag %2$s from %1$s', [
261
-						$parsedParameters['file']['path'],
262
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
263
-					]))
264
-					->setRichSubject($this->l->t('You removed system tag {systemtag} from {file}'), $parsedParameters);
265
-			} else {
266
-				$event->setParsedSubject($this->l->t('%1$s removed system tag %3$s from %2$s', [
267
-						$parsedParameters['actor']['name'],
268
-						$parsedParameters['file']['path'],
269
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
270
-					]))
271
-					->setRichSubject($this->l->t('{actor} removed system tag {systemtag} from {file}'), $parsedParameters);
272
-			}
273
-		} else {
274
-			throw new \InvalidArgumentException();
275
-		}
276
-
277
-		return $event;
278
-	}
279
-
280
-	protected function getParameters(IEvent $event) {
281
-		$subject = $event->getSubject();
282
-		$parameters = $event->getSubjectParameters();
283
-
284
-		switch ($subject) {
285
-			case self::CREATE_TAG:
286
-			case self::DELETE_TAG:
287
-				return [
288
-					'actor' => $this->getUserParameter((string) $parameters[0]),
289
-					'systemtag' => $this->getSystemTagParameter($parameters[1]),
290
-				];
291
-			case self::UPDATE_TAG:
292
-				return [
293
-					'actor' => $this->getUserParameter((string) $parameters[0]),
294
-					'newsystemtag' => $this->getSystemTagParameter($parameters[1]),
295
-					'oldsystemtag' => $this->getSystemTagParameter($parameters[2]),
296
-				];
297
-			case self::ASSIGN_TAG:
298
-			case self::UNASSIGN_TAG:
299
-				return [
300
-					'actor' => $this->getUserParameter((string) $parameters[0]),
301
-					'file' => $this->getFileParameter($event->getObjectId(), $parameters[1]),
302
-					'systemtag' => $this->getSystemTagParameter($parameters[2]),
303
-				];
304
-		}
305
-		return [];
306
-	}
307
-
308
-	protected function getFileParameter($id, $path) {
309
-		return [
310
-			'type' => 'file',
311
-			'id' => $id,
312
-			'name' => basename($path),
313
-			'path' => trim($path, '/'),
314
-		];
315
-	}
316
-
317
-	protected function getSystemTagParameter($parameter) {
318
-		$tagData = json_decode($parameter, true);
319
-		if ($tagData === null) {
320
-			list($name, $status) = explode('|||', substr($parameter, 3, -3));
321
-			$tagData = [
322
-				'id' => 0,// No way to recover the ID
323
-				'name' => $name,
324
-				'assignable' => $status === 'assignable',
325
-				'visible' => $status !== 'invisible',
326
-			];
327
-		}
328
-
329
-		return [
330
-			'type' => 'systemtag',
331
-			'id' => (int) $tagData['id'],
332
-			'name' => $tagData['name'],
333
-			'assignable' => $tagData['assignable'] ? '1' : '0',
334
-			'visibility' => $tagData['visible'] ? '1' : '0',
335
-		];
336
-	}
337
-
338
-	protected function getUserParameter($uid) {
339
-		if (!isset($this->displayNames[$uid])) {
340
-			$this->displayNames[$uid] = $this->getDisplayName($uid);
341
-		}
342
-
343
-		return [
344
-			'type' => 'user',
345
-			'id' => $uid,
346
-			'name' => $this->displayNames[$uid],
347
-		];
348
-	}
349
-
350
-	protected function generatePlainSystemTag(array $parameter) {
351
-		if ($parameter['assignable'] === '1') {
352
-			return $parameter['name'];
353
-		} else if ($parameter['visibility'] === '1') {
354
-			return $this->l->t('%s (restricted)', $parameter['name']);
355
-		} else {
356
-			return $this->l->t('%s (invisible)', $parameter['name']);
357
-		}
358
-	}
359
-
360
-	/**
361
-	 * @param string $uid
362
-	 * @return string
363
-	 */
364
-	protected function getDisplayName($uid) {
365
-		$user = $this->userManager->get($uid);
366
-		if ($user instanceof IUser) {
367
-			return $user->getDisplayName();
368
-		} else {
369
-			return $uid;
370
-		}
371
-	}
37
+    const CREATE_TAG = 'create_tag';
38
+    const UPDATE_TAG = 'update_tag';
39
+    const DELETE_TAG = 'delete_tag';
40
+
41
+    const ASSIGN_TAG = 'assign_tag';
42
+    const UNASSIGN_TAG = 'unassign_tag';
43
+
44
+    /** @var IFactory */
45
+    protected $languageFactory;
46
+
47
+    /** @var IL10N */
48
+    protected $l;
49
+
50
+    /** @var IURLGenerator */
51
+    protected $url;
52
+
53
+    /** @var IManager */
54
+    protected $activityManager;
55
+
56
+    /** @var IUserManager */
57
+    protected $userManager;
58
+
59
+    /** @var string[] */
60
+    protected $displayNames = [];
61
+
62
+    /**
63
+     * @param IFactory $languageFactory
64
+     * @param IURLGenerator $url
65
+     * @param IManager $activityManager
66
+     * @param IUserManager $userManager
67
+     */
68
+    public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) {
69
+        $this->languageFactory = $languageFactory;
70
+        $this->url = $url;
71
+        $this->activityManager = $activityManager;
72
+        $this->userManager = $userManager;
73
+    }
74
+
75
+    /**
76
+     * @param string $language
77
+     * @param IEvent $event
78
+     * @param IEvent|null $previousEvent
79
+     * @return IEvent
80
+     * @throws \InvalidArgumentException
81
+     * @since 11.0.0
82
+     */
83
+    public function parse($language, IEvent $event, IEvent $previousEvent = null) {
84
+        if ($event->getApp() !== 'systemtags') {
85
+            throw new \InvalidArgumentException();
86
+        }
87
+
88
+        $this->l = $this->languageFactory->get('systemtags', $language);
89
+
90
+        if ($this->activityManager->isFormattingFilteredObject()) {
91
+            try {
92
+                return $this->parseShortVersion($event);
93
+            } catch (\InvalidArgumentException $e) {
94
+                // Ignore and simply use the long version...
95
+            }
96
+        }
97
+
98
+        return $this->parseLongVersion($event);
99
+    }
100
+
101
+    /**
102
+     * @param IEvent $event
103
+     * @return IEvent
104
+     * @throws \InvalidArgumentException
105
+     * @since 11.0.0
106
+     */
107
+    public function parseShortVersion(IEvent $event) {
108
+        $parsedParameters = $this->getParameters($event);
109
+
110
+        if ($this->activityManager->getRequirePNG()) {
111
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
112
+        } else {
113
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
114
+        }
115
+
116
+        if ($event->getSubject() === self::ASSIGN_TAG) {
117
+            if ($parsedParameters['actor']['id'] === '') {
118
+                $event->setParsedSubject($this->l->t('System tag %1$s added by the system', [
119
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
120
+                    ]))
121
+                    ->setRichSubject($this->l->t('Added system tag {systemtag}'), [
122
+                        'systemtag' => $parsedParameters['systemtag'],
123
+                    ]);
124
+            } else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
125
+                $event->setParsedSubject($this->l->t('Added system tag %1$s', [
126
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
127
+                    ]))
128
+                    ->setRichSubject($this->l->t('Added system tag {systemtag}'), [
129
+                        'systemtag' => $parsedParameters['systemtag'],
130
+                    ]);
131
+            } else {
132
+                $event->setParsedSubject($this->l->t('%1$s added system tag %2$s', [
133
+                        $parsedParameters['actor']['name'],
134
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
135
+                    ]))
136
+                    ->setRichSubject($this->l->t('{actor} added system tag {systemtag}'), [
137
+                        'actor' => $parsedParameters['actor'],
138
+                        'systemtag' => $parsedParameters['systemtag'],
139
+                    ]);
140
+            }
141
+        } else if ($event->getSubject() === self::UNASSIGN_TAG) {
142
+            if ($parsedParameters['actor']['id'] === '') {
143
+                $event->setParsedSubject($this->l->t('System tag %1$s removed by the system', [
144
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
145
+                    ]))
146
+                    ->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
147
+                        'systemtag' => $parsedParameters['systemtag'],
148
+                    ]);
149
+            } else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
150
+                $event->setParsedSubject($this->l->t('Removed system tag %1$s', [
151
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
152
+                    ]))
153
+                    ->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
154
+                        'systemtag' => $parsedParameters['systemtag'],
155
+                    ]);
156
+            } else {
157
+                $event->setParsedSubject($this->l->t('%1$s removed system tag %2$s', [
158
+                        $parsedParameters['actor']['name'],
159
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
160
+                    ]))
161
+                    ->setRichSubject($this->l->t('{actor} removed system tag {systemtag}'), [
162
+                        'actor' => $parsedParameters['actor'],
163
+                        'systemtag' => $parsedParameters['systemtag'],
164
+                    ]);
165
+            }
166
+        } else {
167
+            throw new \InvalidArgumentException();
168
+        }
169
+
170
+        return $event;
171
+    }
172
+
173
+    /**
174
+     * @param IEvent $event
175
+     * @return IEvent
176
+     * @throws \InvalidArgumentException
177
+     * @since 11.0.0
178
+     */
179
+    public function parseLongVersion(IEvent $event) {
180
+        $parsedParameters = $this->getParameters($event);
181
+
182
+        if ($this->activityManager->getRequirePNG()) {
183
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
184
+        } else {
185
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
186
+        }
187
+
188
+        if ($event->getSubject() === self::CREATE_TAG) {
189
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
190
+                $event->setParsedSubject($this->l->t('You created system tag %1$s', [
191
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
192
+                    ]))
193
+                    ->setRichSubject($this->l->t('You created system tag {systemtag}'), $parsedParameters);
194
+            } else {
195
+                $event->setParsedSubject($this->l->t('%1$s created system tag %2$s', [
196
+                        $parsedParameters['actor']['name'],
197
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
198
+                    ]))
199
+                    ->setRichSubject($this->l->t('{actor} created system tag {systemtag}'), $parsedParameters);
200
+            }
201
+        } else if ($event->getSubject() === self::DELETE_TAG) {
202
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
203
+                $event->setParsedSubject($this->l->t('You deleted system tag %1$s', [
204
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
205
+                    ]))
206
+                    ->setRichSubject($this->l->t('You deleted system tag {systemtag}'), $parsedParameters);
207
+            } else {
208
+                $event->setParsedSubject($this->l->t('%1$s deleted system tag %2$s', [
209
+                        $parsedParameters['actor']['name'],
210
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
211
+                    ]))
212
+                    ->setRichSubject($this->l->t('{actor} deleted system tag {systemtag}'), $parsedParameters);
213
+            }
214
+        } else if ($event->getSubject() === self::UPDATE_TAG) {
215
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
216
+                $event->setParsedSubject($this->l->t('You updated system tag %2$s to %1$s', [
217
+                        $this->generatePlainSystemTag($parsedParameters['newsystemtag']),
218
+                        $this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
219
+                    ]))
220
+                    ->setRichSubject($this->l->t('You updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
221
+            } else {
222
+                $event->setParsedSubject($this->l->t('%1$s updated system tag %3$s to %2$s', [
223
+                        $parsedParameters['actor']['name'],
224
+                        $this->generatePlainSystemTag($parsedParameters['newsystemtag']),
225
+                        $this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
226
+                    ]))
227
+                    ->setRichSubject($this->l->t('{actor} updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
228
+            }
229
+        } else if ($event->getSubject() === self::ASSIGN_TAG) {
230
+            if ($parsedParameters['actor']['id'] === '') {
231
+                unset($parsedParameters['actor']);
232
+                $event->setParsedSubject($this->l->t('System tag %2$s was added to %1$s by the system', [
233
+                        $parsedParameters['file']['path'],
234
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
235
+                    ]))
236
+                    ->setRichSubject($this->l->t('System tag {systemtag} was added to {file} by the system'), $parsedParameters);
237
+            } else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
238
+                $event->setParsedSubject($this->l->t('You added system tag %2$s to %1$s', [
239
+                        $parsedParameters['file']['path'],
240
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
241
+                    ]))
242
+                    ->setRichSubject($this->l->t('You added system tag {systemtag} to {file}'), $parsedParameters);
243
+            } else {
244
+                $event->setParsedSubject($this->l->t('%1$s added system tag %3$s to %2$s', [
245
+                        $parsedParameters['actor']['name'],
246
+                        $parsedParameters['file']['path'],
247
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
248
+                    ]))
249
+                    ->setRichSubject($this->l->t('{actor} added system tag {systemtag} to {file}'), $parsedParameters);
250
+            }
251
+        } else if ($event->getSubject() === self::UNASSIGN_TAG) {
252
+            if ($parsedParameters['actor']['id'] === '') {
253
+                unset($parsedParameters['actor']);
254
+                $event->setParsedSubject($this->l->t('System tag %2$s was removed from %1$s by the system', [
255
+                        $parsedParameters['file']['path'],
256
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
257
+                    ]))
258
+                    ->setRichSubject($this->l->t('System tag {systemtag} was removed from {file} by the system'), $parsedParameters);
259
+            } else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
260
+                $event->setParsedSubject($this->l->t('You removed system tag %2$s from %1$s', [
261
+                        $parsedParameters['file']['path'],
262
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
263
+                    ]))
264
+                    ->setRichSubject($this->l->t('You removed system tag {systemtag} from {file}'), $parsedParameters);
265
+            } else {
266
+                $event->setParsedSubject($this->l->t('%1$s removed system tag %3$s from %2$s', [
267
+                        $parsedParameters['actor']['name'],
268
+                        $parsedParameters['file']['path'],
269
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
270
+                    ]))
271
+                    ->setRichSubject($this->l->t('{actor} removed system tag {systemtag} from {file}'), $parsedParameters);
272
+            }
273
+        } else {
274
+            throw new \InvalidArgumentException();
275
+        }
276
+
277
+        return $event;
278
+    }
279
+
280
+    protected function getParameters(IEvent $event) {
281
+        $subject = $event->getSubject();
282
+        $parameters = $event->getSubjectParameters();
283
+
284
+        switch ($subject) {
285
+            case self::CREATE_TAG:
286
+            case self::DELETE_TAG:
287
+                return [
288
+                    'actor' => $this->getUserParameter((string) $parameters[0]),
289
+                    'systemtag' => $this->getSystemTagParameter($parameters[1]),
290
+                ];
291
+            case self::UPDATE_TAG:
292
+                return [
293
+                    'actor' => $this->getUserParameter((string) $parameters[0]),
294
+                    'newsystemtag' => $this->getSystemTagParameter($parameters[1]),
295
+                    'oldsystemtag' => $this->getSystemTagParameter($parameters[2]),
296
+                ];
297
+            case self::ASSIGN_TAG:
298
+            case self::UNASSIGN_TAG:
299
+                return [
300
+                    'actor' => $this->getUserParameter((string) $parameters[0]),
301
+                    'file' => $this->getFileParameter($event->getObjectId(), $parameters[1]),
302
+                    'systemtag' => $this->getSystemTagParameter($parameters[2]),
303
+                ];
304
+        }
305
+        return [];
306
+    }
307
+
308
+    protected function getFileParameter($id, $path) {
309
+        return [
310
+            'type' => 'file',
311
+            'id' => $id,
312
+            'name' => basename($path),
313
+            'path' => trim($path, '/'),
314
+        ];
315
+    }
316
+
317
+    protected function getSystemTagParameter($parameter) {
318
+        $tagData = json_decode($parameter, true);
319
+        if ($tagData === null) {
320
+            list($name, $status) = explode('|||', substr($parameter, 3, -3));
321
+            $tagData = [
322
+                'id' => 0,// No way to recover the ID
323
+                'name' => $name,
324
+                'assignable' => $status === 'assignable',
325
+                'visible' => $status !== 'invisible',
326
+            ];
327
+        }
328
+
329
+        return [
330
+            'type' => 'systemtag',
331
+            'id' => (int) $tagData['id'],
332
+            'name' => $tagData['name'],
333
+            'assignable' => $tagData['assignable'] ? '1' : '0',
334
+            'visibility' => $tagData['visible'] ? '1' : '0',
335
+        ];
336
+    }
337
+
338
+    protected function getUserParameter($uid) {
339
+        if (!isset($this->displayNames[$uid])) {
340
+            $this->displayNames[$uid] = $this->getDisplayName($uid);
341
+        }
342
+
343
+        return [
344
+            'type' => 'user',
345
+            'id' => $uid,
346
+            'name' => $this->displayNames[$uid],
347
+        ];
348
+    }
349
+
350
+    protected function generatePlainSystemTag(array $parameter) {
351
+        if ($parameter['assignable'] === '1') {
352
+            return $parameter['name'];
353
+        } else if ($parameter['visibility'] === '1') {
354
+            return $this->l->t('%s (restricted)', $parameter['name']);
355
+        } else {
356
+            return $this->l->t('%s (invisible)', $parameter['name']);
357
+        }
358
+    }
359
+
360
+    /**
361
+     * @param string $uid
362
+     * @return string
363
+     */
364
+    protected function getDisplayName($uid) {
365
+        $user = $this->userManager->get($uid);
366
+        if ($user instanceof IUser) {
367
+            return $user->getDisplayName();
368
+        } else {
369
+            return $uid;
370
+        }
371
+    }
372 372
 }
Please login to merge, or discard this patch.
apps/systemtags/lib/Activity/Setting.php 1 patch
Indentation   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -27,72 +27,72 @@
 block discarded – undo
27 27
 
28 28
 class Setting implements ISetting {
29 29
 
30
-	/** @var IL10N */
31
-	protected $l;
30
+    /** @var IL10N */
31
+    protected $l;
32 32
 
33
-	/**
34
-	 * @param IL10N $l
35
-	 */
36
-	public function __construct(IL10N $l) {
37
-		$this->l = $l;
38
-	}
33
+    /**
34
+     * @param IL10N $l
35
+     */
36
+    public function __construct(IL10N $l) {
37
+        $this->l = $l;
38
+    }
39 39
 
40
-	/**
41
-	 * @return string Lowercase a-z and underscore only identifier
42
-	 * @since 11.0.0
43
-	 */
44
-	public function getIdentifier() {
45
-		return 'systemtags';
46
-	}
40
+    /**
41
+     * @return string Lowercase a-z and underscore only identifier
42
+     * @since 11.0.0
43
+     */
44
+    public function getIdentifier() {
45
+        return 'systemtags';
46
+    }
47 47
 
48
-	/**
49
-	 * @return string A translated string
50
-	 * @since 11.0.0
51
-	 */
52
-	public function getName() {
53
-		return $this->l->t('<strong>System tags</strong> for a file have been modified');
54
-	}
48
+    /**
49
+     * @return string A translated string
50
+     * @since 11.0.0
51
+     */
52
+    public function getName() {
53
+        return $this->l->t('<strong>System tags</strong> for a file have been modified');
54
+    }
55 55
 
56
-	/**
57
-	 * @return int whether the filter should be rather on the top or bottom of
58
-	 * the admin section. The filters are arranged in ascending order of the
59
-	 * priority values. It is required to return a value between 0 and 100.
60
-	 * @since 11.0.0
61
-	 */
62
-	public function getPriority() {
63
-		return 50;
64
-	}
56
+    /**
57
+     * @return int whether the filter should be rather on the top or bottom of
58
+     * the admin section. The filters are arranged in ascending order of the
59
+     * priority values. It is required to return a value between 0 and 100.
60
+     * @since 11.0.0
61
+     */
62
+    public function getPriority() {
63
+        return 50;
64
+    }
65 65
 
66
-	/**
67
-	 * @return bool True when the option can be changed for the stream
68
-	 * @since 11.0.0
69
-	 */
70
-	public function canChangeStream() {
71
-		return true;
72
-	}
66
+    /**
67
+     * @return bool True when the option can be changed for the stream
68
+     * @since 11.0.0
69
+     */
70
+    public function canChangeStream() {
71
+        return true;
72
+    }
73 73
 
74
-	/**
75
-	 * @return bool True when the option can be changed for the stream
76
-	 * @since 11.0.0
77
-	 */
78
-	public function isDefaultEnabledStream() {
79
-		return true;
80
-	}
74
+    /**
75
+     * @return bool True when the option can be changed for the stream
76
+     * @since 11.0.0
77
+     */
78
+    public function isDefaultEnabledStream() {
79
+        return true;
80
+    }
81 81
 
82
-	/**
83
-	 * @return bool True when the option can be changed for the mail
84
-	 * @since 11.0.0
85
-	 */
86
-	public function canChangeMail() {
87
-		return true;
88
-	}
82
+    /**
83
+     * @return bool True when the option can be changed for the mail
84
+     * @since 11.0.0
85
+     */
86
+    public function canChangeMail() {
87
+        return true;
88
+    }
89 89
 
90
-	/**
91
-	 * @return bool True when the option can be changed for the stream
92
-	 * @since 11.0.0
93
-	 */
94
-	public function isDefaultEnabledMail() {
95
-		return false;
96
-	}
90
+    /**
91
+     * @return bool True when the option can be changed for the stream
92
+     * @since 11.0.0
93
+     */
94
+    public function isDefaultEnabledMail() {
95
+        return false;
96
+    }
97 97
 }
98 98
 
Please login to merge, or discard this patch.