Passed
Push — master ( 61aa4d...32577f )
by Roeland
13:21 queued 12s
created
lib/private/legacy/helper.php 3 patches
Braces   +3 added lines, -2 removed lines patch added patch discarded remove patch
@@ -271,8 +271,9 @@
 block discarded – undo
271 271
 		}
272 272
 		foreach ($dirs as $dir) {
273 273
 			foreach ($exts as $ext) {
274
-				if ($check_fn("$dir/$name" . $ext))
275
-					return true;
274
+				if ($check_fn("$dir/$name" . $ext)) {
275
+									return true;
276
+				}
276 277
 			}
277 278
 		}
278 279
 		return false;
Please login to merge, or discard this patch.
Indentation   +553 added lines, -553 removed lines patch added patch discarded remove patch
@@ -48,557 +48,557 @@
 block discarded – undo
48 48
  * Collection of useful functions
49 49
  */
50 50
 class OC_Helper {
51
-	private static $templateManager;
52
-
53
-	/**
54
-	 * Make a human file size
55
-	 * @param int $bytes file size in bytes
56
-	 * @return string a human readable file size
57
-	 *
58
-	 * Makes 2048 to 2 kB.
59
-	 */
60
-	public static function humanFileSize($bytes) {
61
-		if ($bytes < 0) {
62
-			return "?";
63
-		}
64
-		if ($bytes < 1024) {
65
-			return "$bytes B";
66
-		}
67
-		$bytes = round($bytes / 1024, 0);
68
-		if ($bytes < 1024) {
69
-			return "$bytes KB";
70
-		}
71
-		$bytes = round($bytes / 1024, 1);
72
-		if ($bytes < 1024) {
73
-			return "$bytes MB";
74
-		}
75
-		$bytes = round($bytes / 1024, 1);
76
-		if ($bytes < 1024) {
77
-			return "$bytes GB";
78
-		}
79
-		$bytes = round($bytes / 1024, 1);
80
-		if ($bytes < 1024) {
81
-			return "$bytes TB";
82
-		}
83
-
84
-		$bytes = round($bytes / 1024, 1);
85
-		return "$bytes PB";
86
-	}
87
-
88
-	/**
89
-	 * Make a computer file size
90
-	 * @param string $str file size in human readable format
91
-	 * @return float|bool a file size in bytes
92
-	 *
93
-	 * Makes 2kB to 2048.
94
-	 *
95
-	 * Inspired by: http://www.php.net/manual/en/function.filesize.php#92418
96
-	 */
97
-	public static function computerFileSize($str) {
98
-		$str = strtolower($str);
99
-		if (is_numeric($str)) {
100
-			return (float)$str;
101
-		}
102
-
103
-		$bytes_array = [
104
-			'b' => 1,
105
-			'k' => 1024,
106
-			'kb' => 1024,
107
-			'mb' => 1024 * 1024,
108
-			'm' => 1024 * 1024,
109
-			'gb' => 1024 * 1024 * 1024,
110
-			'g' => 1024 * 1024 * 1024,
111
-			'tb' => 1024 * 1024 * 1024 * 1024,
112
-			't' => 1024 * 1024 * 1024 * 1024,
113
-			'pb' => 1024 * 1024 * 1024 * 1024 * 1024,
114
-			'p' => 1024 * 1024 * 1024 * 1024 * 1024,
115
-		];
116
-
117
-		$bytes = (float)$str;
118
-
119
-		if (preg_match('#([kmgtp]?b?)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) {
120
-			$bytes *= $bytes_array[$matches[1]];
121
-		} else {
122
-			return false;
123
-		}
124
-
125
-		$bytes = round($bytes);
126
-
127
-		return $bytes;
128
-	}
129
-
130
-	/**
131
-	 * Recursive copying of folders
132
-	 * @param string $src source folder
133
-	 * @param string $dest target folder
134
-	 *
135
-	 */
136
-	static function copyr($src, $dest) {
137
-		if (is_dir($src)) {
138
-			if (!is_dir($dest)) {
139
-				mkdir($dest);
140
-			}
141
-			$files = scandir($src);
142
-			foreach ($files as $file) {
143
-				if ($file != "." && $file != "..") {
144
-					self::copyr("$src/$file", "$dest/$file");
145
-				}
146
-			}
147
-		} elseif (file_exists($src) && !\OC\Files\Filesystem::isFileBlacklisted($src)) {
148
-			copy($src, $dest);
149
-		}
150
-	}
151
-
152
-	/**
153
-	 * Recursive deletion of folders
154
-	 * @param string $dir path to the folder
155
-	 * @param bool $deleteSelf if set to false only the content of the folder will be deleted
156
-	 * @return bool
157
-	 */
158
-	static function rmdirr($dir, $deleteSelf = true) {
159
-		if (is_dir($dir)) {
160
-			$files = new RecursiveIteratorIterator(
161
-				new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
162
-				RecursiveIteratorIterator::CHILD_FIRST
163
-			);
164
-
165
-			foreach ($files as $fileInfo) {
166
-				/** @var SplFileInfo $fileInfo */
167
-				if ($fileInfo->isLink()) {
168
-					unlink($fileInfo->getPathname());
169
-				} else if ($fileInfo->isDir()) {
170
-					rmdir($fileInfo->getRealPath());
171
-				} else {
172
-					unlink($fileInfo->getRealPath());
173
-				}
174
-			}
175
-			if ($deleteSelf) {
176
-				rmdir($dir);
177
-			}
178
-		} elseif (file_exists($dir)) {
179
-			if ($deleteSelf) {
180
-				unlink($dir);
181
-			}
182
-		}
183
-		if (!$deleteSelf) {
184
-			return true;
185
-		}
186
-
187
-		return !file_exists($dir);
188
-	}
189
-
190
-	/**
191
-	 * @deprecated 18.0.0
192
-	 * @return \OC\Files\Type\TemplateManager
193
-	 */
194
-	static public function getFileTemplateManager() {
195
-		if (!self::$templateManager) {
196
-			self::$templateManager = new \OC\Files\Type\TemplateManager();
197
-		}
198
-		return self::$templateManager;
199
-	}
200
-
201
-	/**
202
-	 * detect if a given program is found in the search PATH
203
-	 *
204
-	 * @param string $name
205
-	 * @param bool $path
206
-	 * @internal param string $program name
207
-	 * @internal param string $optional search path, defaults to $PATH
208
-	 * @return bool    true if executable program found in path
209
-	 */
210
-	public static function canExecute($name, $path = false) {
211
-		// path defaults to PATH from environment if not set
212
-		if ($path === false) {
213
-			$path = getenv("PATH");
214
-		}
215
-		// we look for an executable file of that name
216
-		$exts = [""];
217
-		$check_fn = "is_executable";
218
-		// Default check will be done with $path directories :
219
-		$dirs = explode(PATH_SEPARATOR, $path);
220
-		// WARNING : We have to check if open_basedir is enabled :
221
-		$obd = OC::$server->getIniWrapper()->getString('open_basedir');
222
-		if ($obd != "none") {
223
-			$obd_values = explode(PATH_SEPARATOR, $obd);
224
-			if (count($obd_values) > 0 and $obd_values[0]) {
225
-				// open_basedir is in effect !
226
-				// We need to check if the program is in one of these dirs :
227
-				$dirs = $obd_values;
228
-			}
229
-		}
230
-		foreach ($dirs as $dir) {
231
-			foreach ($exts as $ext) {
232
-				if ($check_fn("$dir/$name" . $ext))
233
-					return true;
234
-			}
235
-		}
236
-		return false;
237
-	}
238
-
239
-	/**
240
-	 * copy the contents of one stream to another
241
-	 *
242
-	 * @param resource $source
243
-	 * @param resource $target
244
-	 * @return array the number of bytes copied and result
245
-	 */
246
-	public static function streamCopy($source, $target) {
247
-		if (!$source or !$target) {
248
-			return [0, false];
249
-		}
250
-		$bufSize = 8192;
251
-		$result = true;
252
-		$count = 0;
253
-		while (!feof($source)) {
254
-			$buf = fread($source, $bufSize);
255
-			$bytesWritten = fwrite($target, $buf);
256
-			if ($bytesWritten !== false) {
257
-				$count += $bytesWritten;
258
-			}
259
-			// note: strlen is expensive so only use it when necessary,
260
-			// on the last block
261
-			if ($bytesWritten === false
262
-				|| ($bytesWritten < $bufSize && $bytesWritten < strlen($buf))
263
-			) {
264
-				// write error, could be disk full ?
265
-				$result = false;
266
-				break;
267
-			}
268
-		}
269
-		return [$count, $result];
270
-	}
271
-
272
-	/**
273
-	 * Adds a suffix to the name in case the file exists
274
-	 *
275
-	 * @param string $path
276
-	 * @param string $filename
277
-	 * @return string
278
-	 */
279
-	public static function buildNotExistingFileName($path, $filename) {
280
-		$view = \OC\Files\Filesystem::getView();
281
-		return self::buildNotExistingFileNameForView($path, $filename, $view);
282
-	}
283
-
284
-	/**
285
-	 * Adds a suffix to the name in case the file exists
286
-	 *
287
-	 * @param string $path
288
-	 * @param string $filename
289
-	 * @return string
290
-	 */
291
-	public static function buildNotExistingFileNameForView($path, $filename, \OC\Files\View $view) {
292
-		if ($path === '/') {
293
-			$path = '';
294
-		}
295
-		if ($pos = strrpos($filename, '.')) {
296
-			$name = substr($filename, 0, $pos);
297
-			$ext = substr($filename, $pos);
298
-		} else {
299
-			$name = $filename;
300
-			$ext = '';
301
-		}
302
-
303
-		$newpath = $path . '/' . $filename;
304
-		if ($view->file_exists($newpath)) {
305
-			if (preg_match_all('/\((\d+)\)/', $name, $matches, PREG_OFFSET_CAPTURE)) {
306
-				//Replace the last "(number)" with "(number+1)"
307
-				$last_match = count($matches[0]) - 1;
308
-				$counter = $matches[1][$last_match][0] + 1;
309
-				$offset = $matches[0][$last_match][1];
310
-				$match_length = strlen($matches[0][$last_match][0]);
311
-			} else {
312
-				$counter = 2;
313
-				$match_length = 0;
314
-				$offset = false;
315
-			}
316
-			do {
317
-				if ($offset) {
318
-					//Replace the last "(number)" with "(number+1)"
319
-					$newname = substr_replace($name, '(' . $counter . ')', $offset, $match_length);
320
-				} else {
321
-					$newname = $name . ' (' . $counter . ')';
322
-				}
323
-				$newpath = $path . '/' . $newname . $ext;
324
-				$counter++;
325
-			} while ($view->file_exists($newpath));
326
-		}
327
-
328
-		return $newpath;
329
-	}
330
-
331
-	/**
332
-	 * Returns an array with all keys from input lowercased or uppercased. Numbered indices are left as is.
333
-	 *
334
-	 * @param array $input The array to work on
335
-	 * @param int $case Either MB_CASE_UPPER or MB_CASE_LOWER (default)
336
-	 * @param string $encoding The encoding parameter is the character encoding. Defaults to UTF-8
337
-	 * @return array
338
-	 *
339
-	 * Returns an array with all keys from input lowercased or uppercased. Numbered indices are left as is.
340
-	 * based on http://www.php.net/manual/en/function.array-change-key-case.php#107715
341
-	 *
342
-	 */
343
-	public static function mb_array_change_key_case($input, $case = MB_CASE_LOWER, $encoding = 'UTF-8') {
344
-		$case = ($case != MB_CASE_UPPER) ? MB_CASE_LOWER : MB_CASE_UPPER;
345
-		$ret = [];
346
-		foreach ($input as $k => $v) {
347
-			$ret[mb_convert_case($k, $case, $encoding)] = $v;
348
-		}
349
-		return $ret;
350
-	}
351
-
352
-	/**
353
-	 * performs a search in a nested array
354
-	 * @param array $haystack the array to be searched
355
-	 * @param string $needle the search string
356
-	 * @param mixed $index optional, only search this key name
357
-	 * @return mixed the key of the matching field, otherwise false
358
-	 *
359
-	 * performs a search in a nested array
360
-	 *
361
-	 * taken from http://www.php.net/manual/en/function.array-search.php#97645
362
-	 */
363
-	public static function recursiveArraySearch($haystack, $needle, $index = null) {
364
-		$aIt = new RecursiveArrayIterator($haystack);
365
-		$it = new RecursiveIteratorIterator($aIt);
366
-
367
-		while ($it->valid()) {
368
-			if (((isset($index) AND ($it->key() == $index)) OR !isset($index)) AND ($it->current() == $needle)) {
369
-				return $aIt->key();
370
-			}
371
-
372
-			$it->next();
373
-		}
374
-
375
-		return false;
376
-	}
377
-
378
-	/**
379
-	 * calculates the maximum upload size respecting system settings, free space and user quota
380
-	 *
381
-	 * @param string $dir the current folder where the user currently operates
382
-	 * @param int $freeSpace the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
383
-	 * @return int number of bytes representing
384
-	 */
385
-	public static function maxUploadFilesize($dir, $freeSpace = null) {
386
-		if (is_null($freeSpace) || $freeSpace < 0){
387
-			$freeSpace = self::freeSpace($dir);
388
-		}
389
-		return min($freeSpace, self::uploadLimit());
390
-	}
391
-
392
-	/**
393
-	 * Calculate free space left within user quota
394
-	 *
395
-	 * @param string $dir the current folder where the user currently operates
396
-	 * @return int number of bytes representing
397
-	 */
398
-	public static function freeSpace($dir) {
399
-		$freeSpace = \OC\Files\Filesystem::free_space($dir);
400
-		if ($freeSpace < \OCP\Files\FileInfo::SPACE_UNLIMITED) {
401
-			$freeSpace = max($freeSpace, 0);
402
-			return $freeSpace;
403
-		} else {
404
-			return (INF > 0)? INF: PHP_INT_MAX; // work around https://bugs.php.net/bug.php?id=69188
405
-		}
406
-	}
407
-
408
-	/**
409
-	 * Calculate PHP upload limit
410
-	 *
411
-	 * @return int PHP upload file size limit
412
-	 */
413
-	public static function uploadLimit() {
414
-		$ini = \OC::$server->getIniWrapper();
415
-		$upload_max_filesize = OCP\Util::computerFileSize($ini->get('upload_max_filesize'));
416
-		$post_max_size = OCP\Util::computerFileSize($ini->get('post_max_size'));
417
-		if ((int)$upload_max_filesize === 0 and (int)$post_max_size === 0) {
418
-			return INF;
419
-		} elseif ((int)$upload_max_filesize === 0 or (int)$post_max_size === 0) {
420
-			return max($upload_max_filesize, $post_max_size); //only the non 0 value counts
421
-		} else {
422
-			return min($upload_max_filesize, $post_max_size);
423
-		}
424
-	}
425
-
426
-	/**
427
-	 * Checks if a function is available
428
-	 *
429
-	 * @param string $function_name
430
-	 * @return bool
431
-	 */
432
-	public static function is_function_enabled($function_name) {
433
-		if (!function_exists($function_name)) {
434
-			return false;
435
-		}
436
-		$ini = \OC::$server->getIniWrapper();
437
-		$disabled = explode(',', $ini->get('disable_functions') ?: '');
438
-		$disabled = array_map('trim', $disabled);
439
-		if (in_array($function_name, $disabled)) {
440
-			return false;
441
-		}
442
-		$disabled = explode(',', $ini->get('suhosin.executor.func.blacklist') ?: '');
443
-		$disabled = array_map('trim', $disabled);
444
-		if (in_array($function_name, $disabled)) {
445
-			return false;
446
-		}
447
-		return true;
448
-	}
449
-
450
-	/**
451
-	 * Try to find a program
452
-	 *
453
-	 * @param string $program
454
-	 * @return null|string
455
-	 */
456
-	public static function findBinaryPath($program) {
457
-		$memcache = \OC::$server->getMemCacheFactory()->createDistributed('findBinaryPath');
458
-		if ($memcache->hasKey($program)) {
459
-			return $memcache->get($program);
460
-		}
461
-		$result = null;
462
-		if (self::is_function_enabled('exec')) {
463
-			$exeSniffer = new ExecutableFinder();
464
-			// Returns null if nothing is found
465
-			$result = $exeSniffer->find($program, null, ['/usr/local/sbin', '/usr/local/bin', '/usr/sbin', '/usr/bin', '/sbin', '/bin', '/opt/bin']);
466
-		}
467
-		// store the value for 5 minutes
468
-		$memcache->set($program, $result, 300);
469
-		return $result;
470
-	}
471
-
472
-	/**
473
-	 * Calculate the disc space for the given path
474
-	 *
475
-	 * @param string $path
476
-	 * @param \OCP\Files\FileInfo $rootInfo (optional)
477
-	 * @return array
478
-	 * @throws \OCP\Files\NotFoundException
479
-	 */
480
-	public static function getStorageInfo($path, $rootInfo = null) {
481
-		// return storage info without adding mount points
482
-		$includeExtStorage = \OC::$server->getSystemConfig()->getValue('quota_include_external_storage', false);
483
-
484
-		if (!$rootInfo) {
485
-			$rootInfo = \OC\Files\Filesystem::getFileInfo($path, $includeExtStorage ? 'ext' : false);
486
-		}
487
-		if (!$rootInfo instanceof \OCP\Files\FileInfo) {
488
-			throw new \OCP\Files\NotFoundException();
489
-		}
490
-		$used = $rootInfo->getSize();
491
-		if ($used < 0) {
492
-			$used = 0;
493
-		}
494
-		$quota = \OCP\Files\FileInfo::SPACE_UNLIMITED;
495
-		$storage = $rootInfo->getStorage();
496
-		$sourceStorage = $storage;
497
-		if ($storage->instanceOfStorage('\OCA\Files_Sharing\SharedStorage')) {
498
-			$includeExtStorage = false;
499
-			$sourceStorage = $storage->getSourceStorage();
500
-		}
501
-		if ($includeExtStorage) {
502
-			if ($storage->instanceOfStorage('\OC\Files\Storage\Home')
503
-				|| $storage->instanceOfStorage('\OC\Files\ObjectStore\HomeObjectStoreStorage')
504
-			) {
505
-				/** @var \OC\Files\Storage\Home $storage */
506
-				$userInstance = $storage->getUser();
507
-				$user = ($userInstance === null) ? null : $userInstance->getUID();
508
-			} else {
509
-				$user = \OC::$server->getUserSession()->getUser()->getUID();
510
-			}
511
-			if ($user) {
512
-				$quota = OC_Util::getUserQuota($user);
513
-			} else {
514
-				$quota = \OCP\Files\FileInfo::SPACE_UNLIMITED;
515
-			}
516
-			if ($quota !== \OCP\Files\FileInfo::SPACE_UNLIMITED) {
517
-				// always get free space / total space from root + mount points
518
-				return self::getGlobalStorageInfo();
519
-			}
520
-		}
521
-
522
-		// TODO: need a better way to get total space from storage
523
-		if ($sourceStorage->instanceOfStorage('\OC\Files\Storage\Wrapper\Quota')) {
524
-			/** @var \OC\Files\Storage\Wrapper\Quota $storage */
525
-			$quota = $sourceStorage->getQuota();
526
-		}
527
-		$free = $sourceStorage->free_space($rootInfo->getInternalPath());
528
-		if ($free >= 0) {
529
-			$total = $free + $used;
530
-		} else {
531
-			$total = $free; //either unknown or unlimited
532
-		}
533
-		if ($total > 0) {
534
-			if ($quota > 0 && $total > $quota) {
535
-				$total = $quota;
536
-			}
537
-			// prevent division by zero or error codes (negative values)
538
-			$relative = round(($used / $total) * 10000) / 100;
539
-		} else {
540
-			$relative = 0;
541
-		}
542
-
543
-		$ownerId = $storage->getOwner($path);
544
-		$ownerDisplayName = '';
545
-		$owner = \OC::$server->getUserManager()->get($ownerId);
546
-		if($owner) {
547
-			$ownerDisplayName = $owner->getDisplayName();
548
-		}
549
-
550
-		return [
551
-			'free' => $free,
552
-			'used' => $used,
553
-			'quota' => $quota,
554
-			'total' => $total,
555
-			'relative' => $relative,
556
-			'owner' => $ownerId,
557
-			'ownerDisplayName' => $ownerDisplayName,
558
-		];
559
-	}
560
-
561
-	/**
562
-	 * Get storage info including all mount points and quota
563
-	 *
564
-	 * @return array
565
-	 */
566
-	private static function getGlobalStorageInfo() {
567
-		$quota = OC_Util::getUserQuota(\OCP\User::getUser());
568
-
569
-		$rootInfo = \OC\Files\Filesystem::getFileInfo('', 'ext');
570
-		$used = $rootInfo['size'];
571
-		if ($used < 0) {
572
-			$used = 0;
573
-		}
574
-
575
-		$total = $quota;
576
-		$free = $quota - $used;
577
-
578
-		if ($total > 0) {
579
-			if ($quota > 0 && $total > $quota) {
580
-				$total = $quota;
581
-			}
582
-			// prevent division by zero or error codes (negative values)
583
-			$relative = round(($used / $total) * 10000) / 100;
584
-		} else {
585
-			$relative = 0;
586
-		}
587
-
588
-		return [
589
-			'free' => $free,
590
-			'used' => $used,
591
-			'total' => $total,
592
-			'relative' => $relative,
593
-			'quota' => $quota
594
-		];
595
-	}
596
-
597
-	/**
598
-	 * Returns whether the config file is set manually to read-only
599
-	 * @return bool
600
-	 */
601
-	public static function isReadOnlyConfigEnabled() {
602
-		return \OC::$server->getConfig()->getSystemValue('config_is_read_only', false);
603
-	}
51
+    private static $templateManager;
52
+
53
+    /**
54
+     * Make a human file size
55
+     * @param int $bytes file size in bytes
56
+     * @return string a human readable file size
57
+     *
58
+     * Makes 2048 to 2 kB.
59
+     */
60
+    public static function humanFileSize($bytes) {
61
+        if ($bytes < 0) {
62
+            return "?";
63
+        }
64
+        if ($bytes < 1024) {
65
+            return "$bytes B";
66
+        }
67
+        $bytes = round($bytes / 1024, 0);
68
+        if ($bytes < 1024) {
69
+            return "$bytes KB";
70
+        }
71
+        $bytes = round($bytes / 1024, 1);
72
+        if ($bytes < 1024) {
73
+            return "$bytes MB";
74
+        }
75
+        $bytes = round($bytes / 1024, 1);
76
+        if ($bytes < 1024) {
77
+            return "$bytes GB";
78
+        }
79
+        $bytes = round($bytes / 1024, 1);
80
+        if ($bytes < 1024) {
81
+            return "$bytes TB";
82
+        }
83
+
84
+        $bytes = round($bytes / 1024, 1);
85
+        return "$bytes PB";
86
+    }
87
+
88
+    /**
89
+     * Make a computer file size
90
+     * @param string $str file size in human readable format
91
+     * @return float|bool a file size in bytes
92
+     *
93
+     * Makes 2kB to 2048.
94
+     *
95
+     * Inspired by: http://www.php.net/manual/en/function.filesize.php#92418
96
+     */
97
+    public static function computerFileSize($str) {
98
+        $str = strtolower($str);
99
+        if (is_numeric($str)) {
100
+            return (float)$str;
101
+        }
102
+
103
+        $bytes_array = [
104
+            'b' => 1,
105
+            'k' => 1024,
106
+            'kb' => 1024,
107
+            'mb' => 1024 * 1024,
108
+            'm' => 1024 * 1024,
109
+            'gb' => 1024 * 1024 * 1024,
110
+            'g' => 1024 * 1024 * 1024,
111
+            'tb' => 1024 * 1024 * 1024 * 1024,
112
+            't' => 1024 * 1024 * 1024 * 1024,
113
+            'pb' => 1024 * 1024 * 1024 * 1024 * 1024,
114
+            'p' => 1024 * 1024 * 1024 * 1024 * 1024,
115
+        ];
116
+
117
+        $bytes = (float)$str;
118
+
119
+        if (preg_match('#([kmgtp]?b?)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) {
120
+            $bytes *= $bytes_array[$matches[1]];
121
+        } else {
122
+            return false;
123
+        }
124
+
125
+        $bytes = round($bytes);
126
+
127
+        return $bytes;
128
+    }
129
+
130
+    /**
131
+     * Recursive copying of folders
132
+     * @param string $src source folder
133
+     * @param string $dest target folder
134
+     *
135
+     */
136
+    static function copyr($src, $dest) {
137
+        if (is_dir($src)) {
138
+            if (!is_dir($dest)) {
139
+                mkdir($dest);
140
+            }
141
+            $files = scandir($src);
142
+            foreach ($files as $file) {
143
+                if ($file != "." && $file != "..") {
144
+                    self::copyr("$src/$file", "$dest/$file");
145
+                }
146
+            }
147
+        } elseif (file_exists($src) && !\OC\Files\Filesystem::isFileBlacklisted($src)) {
148
+            copy($src, $dest);
149
+        }
150
+    }
151
+
152
+    /**
153
+     * Recursive deletion of folders
154
+     * @param string $dir path to the folder
155
+     * @param bool $deleteSelf if set to false only the content of the folder will be deleted
156
+     * @return bool
157
+     */
158
+    static function rmdirr($dir, $deleteSelf = true) {
159
+        if (is_dir($dir)) {
160
+            $files = new RecursiveIteratorIterator(
161
+                new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
162
+                RecursiveIteratorIterator::CHILD_FIRST
163
+            );
164
+
165
+            foreach ($files as $fileInfo) {
166
+                /** @var SplFileInfo $fileInfo */
167
+                if ($fileInfo->isLink()) {
168
+                    unlink($fileInfo->getPathname());
169
+                } else if ($fileInfo->isDir()) {
170
+                    rmdir($fileInfo->getRealPath());
171
+                } else {
172
+                    unlink($fileInfo->getRealPath());
173
+                }
174
+            }
175
+            if ($deleteSelf) {
176
+                rmdir($dir);
177
+            }
178
+        } elseif (file_exists($dir)) {
179
+            if ($deleteSelf) {
180
+                unlink($dir);
181
+            }
182
+        }
183
+        if (!$deleteSelf) {
184
+            return true;
185
+        }
186
+
187
+        return !file_exists($dir);
188
+    }
189
+
190
+    /**
191
+     * @deprecated 18.0.0
192
+     * @return \OC\Files\Type\TemplateManager
193
+     */
194
+    static public function getFileTemplateManager() {
195
+        if (!self::$templateManager) {
196
+            self::$templateManager = new \OC\Files\Type\TemplateManager();
197
+        }
198
+        return self::$templateManager;
199
+    }
200
+
201
+    /**
202
+     * detect if a given program is found in the search PATH
203
+     *
204
+     * @param string $name
205
+     * @param bool $path
206
+     * @internal param string $program name
207
+     * @internal param string $optional search path, defaults to $PATH
208
+     * @return bool    true if executable program found in path
209
+     */
210
+    public static function canExecute($name, $path = false) {
211
+        // path defaults to PATH from environment if not set
212
+        if ($path === false) {
213
+            $path = getenv("PATH");
214
+        }
215
+        // we look for an executable file of that name
216
+        $exts = [""];
217
+        $check_fn = "is_executable";
218
+        // Default check will be done with $path directories :
219
+        $dirs = explode(PATH_SEPARATOR, $path);
220
+        // WARNING : We have to check if open_basedir is enabled :
221
+        $obd = OC::$server->getIniWrapper()->getString('open_basedir');
222
+        if ($obd != "none") {
223
+            $obd_values = explode(PATH_SEPARATOR, $obd);
224
+            if (count($obd_values) > 0 and $obd_values[0]) {
225
+                // open_basedir is in effect !
226
+                // We need to check if the program is in one of these dirs :
227
+                $dirs = $obd_values;
228
+            }
229
+        }
230
+        foreach ($dirs as $dir) {
231
+            foreach ($exts as $ext) {
232
+                if ($check_fn("$dir/$name" . $ext))
233
+                    return true;
234
+            }
235
+        }
236
+        return false;
237
+    }
238
+
239
+    /**
240
+     * copy the contents of one stream to another
241
+     *
242
+     * @param resource $source
243
+     * @param resource $target
244
+     * @return array the number of bytes copied and result
245
+     */
246
+    public static function streamCopy($source, $target) {
247
+        if (!$source or !$target) {
248
+            return [0, false];
249
+        }
250
+        $bufSize = 8192;
251
+        $result = true;
252
+        $count = 0;
253
+        while (!feof($source)) {
254
+            $buf = fread($source, $bufSize);
255
+            $bytesWritten = fwrite($target, $buf);
256
+            if ($bytesWritten !== false) {
257
+                $count += $bytesWritten;
258
+            }
259
+            // note: strlen is expensive so only use it when necessary,
260
+            // on the last block
261
+            if ($bytesWritten === false
262
+                || ($bytesWritten < $bufSize && $bytesWritten < strlen($buf))
263
+            ) {
264
+                // write error, could be disk full ?
265
+                $result = false;
266
+                break;
267
+            }
268
+        }
269
+        return [$count, $result];
270
+    }
271
+
272
+    /**
273
+     * Adds a suffix to the name in case the file exists
274
+     *
275
+     * @param string $path
276
+     * @param string $filename
277
+     * @return string
278
+     */
279
+    public static function buildNotExistingFileName($path, $filename) {
280
+        $view = \OC\Files\Filesystem::getView();
281
+        return self::buildNotExistingFileNameForView($path, $filename, $view);
282
+    }
283
+
284
+    /**
285
+     * Adds a suffix to the name in case the file exists
286
+     *
287
+     * @param string $path
288
+     * @param string $filename
289
+     * @return string
290
+     */
291
+    public static function buildNotExistingFileNameForView($path, $filename, \OC\Files\View $view) {
292
+        if ($path === '/') {
293
+            $path = '';
294
+        }
295
+        if ($pos = strrpos($filename, '.')) {
296
+            $name = substr($filename, 0, $pos);
297
+            $ext = substr($filename, $pos);
298
+        } else {
299
+            $name = $filename;
300
+            $ext = '';
301
+        }
302
+
303
+        $newpath = $path . '/' . $filename;
304
+        if ($view->file_exists($newpath)) {
305
+            if (preg_match_all('/\((\d+)\)/', $name, $matches, PREG_OFFSET_CAPTURE)) {
306
+                //Replace the last "(number)" with "(number+1)"
307
+                $last_match = count($matches[0]) - 1;
308
+                $counter = $matches[1][$last_match][0] + 1;
309
+                $offset = $matches[0][$last_match][1];
310
+                $match_length = strlen($matches[0][$last_match][0]);
311
+            } else {
312
+                $counter = 2;
313
+                $match_length = 0;
314
+                $offset = false;
315
+            }
316
+            do {
317
+                if ($offset) {
318
+                    //Replace the last "(number)" with "(number+1)"
319
+                    $newname = substr_replace($name, '(' . $counter . ')', $offset, $match_length);
320
+                } else {
321
+                    $newname = $name . ' (' . $counter . ')';
322
+                }
323
+                $newpath = $path . '/' . $newname . $ext;
324
+                $counter++;
325
+            } while ($view->file_exists($newpath));
326
+        }
327
+
328
+        return $newpath;
329
+    }
330
+
331
+    /**
332
+     * Returns an array with all keys from input lowercased or uppercased. Numbered indices are left as is.
333
+     *
334
+     * @param array $input The array to work on
335
+     * @param int $case Either MB_CASE_UPPER or MB_CASE_LOWER (default)
336
+     * @param string $encoding The encoding parameter is the character encoding. Defaults to UTF-8
337
+     * @return array
338
+     *
339
+     * Returns an array with all keys from input lowercased or uppercased. Numbered indices are left as is.
340
+     * based on http://www.php.net/manual/en/function.array-change-key-case.php#107715
341
+     *
342
+     */
343
+    public static function mb_array_change_key_case($input, $case = MB_CASE_LOWER, $encoding = 'UTF-8') {
344
+        $case = ($case != MB_CASE_UPPER) ? MB_CASE_LOWER : MB_CASE_UPPER;
345
+        $ret = [];
346
+        foreach ($input as $k => $v) {
347
+            $ret[mb_convert_case($k, $case, $encoding)] = $v;
348
+        }
349
+        return $ret;
350
+    }
351
+
352
+    /**
353
+     * performs a search in a nested array
354
+     * @param array $haystack the array to be searched
355
+     * @param string $needle the search string
356
+     * @param mixed $index optional, only search this key name
357
+     * @return mixed the key of the matching field, otherwise false
358
+     *
359
+     * performs a search in a nested array
360
+     *
361
+     * taken from http://www.php.net/manual/en/function.array-search.php#97645
362
+     */
363
+    public static function recursiveArraySearch($haystack, $needle, $index = null) {
364
+        $aIt = new RecursiveArrayIterator($haystack);
365
+        $it = new RecursiveIteratorIterator($aIt);
366
+
367
+        while ($it->valid()) {
368
+            if (((isset($index) AND ($it->key() == $index)) OR !isset($index)) AND ($it->current() == $needle)) {
369
+                return $aIt->key();
370
+            }
371
+
372
+            $it->next();
373
+        }
374
+
375
+        return false;
376
+    }
377
+
378
+    /**
379
+     * calculates the maximum upload size respecting system settings, free space and user quota
380
+     *
381
+     * @param string $dir the current folder where the user currently operates
382
+     * @param int $freeSpace the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
383
+     * @return int number of bytes representing
384
+     */
385
+    public static function maxUploadFilesize($dir, $freeSpace = null) {
386
+        if (is_null($freeSpace) || $freeSpace < 0){
387
+            $freeSpace = self::freeSpace($dir);
388
+        }
389
+        return min($freeSpace, self::uploadLimit());
390
+    }
391
+
392
+    /**
393
+     * Calculate free space left within user quota
394
+     *
395
+     * @param string $dir the current folder where the user currently operates
396
+     * @return int number of bytes representing
397
+     */
398
+    public static function freeSpace($dir) {
399
+        $freeSpace = \OC\Files\Filesystem::free_space($dir);
400
+        if ($freeSpace < \OCP\Files\FileInfo::SPACE_UNLIMITED) {
401
+            $freeSpace = max($freeSpace, 0);
402
+            return $freeSpace;
403
+        } else {
404
+            return (INF > 0)? INF: PHP_INT_MAX; // work around https://bugs.php.net/bug.php?id=69188
405
+        }
406
+    }
407
+
408
+    /**
409
+     * Calculate PHP upload limit
410
+     *
411
+     * @return int PHP upload file size limit
412
+     */
413
+    public static function uploadLimit() {
414
+        $ini = \OC::$server->getIniWrapper();
415
+        $upload_max_filesize = OCP\Util::computerFileSize($ini->get('upload_max_filesize'));
416
+        $post_max_size = OCP\Util::computerFileSize($ini->get('post_max_size'));
417
+        if ((int)$upload_max_filesize === 0 and (int)$post_max_size === 0) {
418
+            return INF;
419
+        } elseif ((int)$upload_max_filesize === 0 or (int)$post_max_size === 0) {
420
+            return max($upload_max_filesize, $post_max_size); //only the non 0 value counts
421
+        } else {
422
+            return min($upload_max_filesize, $post_max_size);
423
+        }
424
+    }
425
+
426
+    /**
427
+     * Checks if a function is available
428
+     *
429
+     * @param string $function_name
430
+     * @return bool
431
+     */
432
+    public static function is_function_enabled($function_name) {
433
+        if (!function_exists($function_name)) {
434
+            return false;
435
+        }
436
+        $ini = \OC::$server->getIniWrapper();
437
+        $disabled = explode(',', $ini->get('disable_functions') ?: '');
438
+        $disabled = array_map('trim', $disabled);
439
+        if (in_array($function_name, $disabled)) {
440
+            return false;
441
+        }
442
+        $disabled = explode(',', $ini->get('suhosin.executor.func.blacklist') ?: '');
443
+        $disabled = array_map('trim', $disabled);
444
+        if (in_array($function_name, $disabled)) {
445
+            return false;
446
+        }
447
+        return true;
448
+    }
449
+
450
+    /**
451
+     * Try to find a program
452
+     *
453
+     * @param string $program
454
+     * @return null|string
455
+     */
456
+    public static function findBinaryPath($program) {
457
+        $memcache = \OC::$server->getMemCacheFactory()->createDistributed('findBinaryPath');
458
+        if ($memcache->hasKey($program)) {
459
+            return $memcache->get($program);
460
+        }
461
+        $result = null;
462
+        if (self::is_function_enabled('exec')) {
463
+            $exeSniffer = new ExecutableFinder();
464
+            // Returns null if nothing is found
465
+            $result = $exeSniffer->find($program, null, ['/usr/local/sbin', '/usr/local/bin', '/usr/sbin', '/usr/bin', '/sbin', '/bin', '/opt/bin']);
466
+        }
467
+        // store the value for 5 minutes
468
+        $memcache->set($program, $result, 300);
469
+        return $result;
470
+    }
471
+
472
+    /**
473
+     * Calculate the disc space for the given path
474
+     *
475
+     * @param string $path
476
+     * @param \OCP\Files\FileInfo $rootInfo (optional)
477
+     * @return array
478
+     * @throws \OCP\Files\NotFoundException
479
+     */
480
+    public static function getStorageInfo($path, $rootInfo = null) {
481
+        // return storage info without adding mount points
482
+        $includeExtStorage = \OC::$server->getSystemConfig()->getValue('quota_include_external_storage', false);
483
+
484
+        if (!$rootInfo) {
485
+            $rootInfo = \OC\Files\Filesystem::getFileInfo($path, $includeExtStorage ? 'ext' : false);
486
+        }
487
+        if (!$rootInfo instanceof \OCP\Files\FileInfo) {
488
+            throw new \OCP\Files\NotFoundException();
489
+        }
490
+        $used = $rootInfo->getSize();
491
+        if ($used < 0) {
492
+            $used = 0;
493
+        }
494
+        $quota = \OCP\Files\FileInfo::SPACE_UNLIMITED;
495
+        $storage = $rootInfo->getStorage();
496
+        $sourceStorage = $storage;
497
+        if ($storage->instanceOfStorage('\OCA\Files_Sharing\SharedStorage')) {
498
+            $includeExtStorage = false;
499
+            $sourceStorage = $storage->getSourceStorage();
500
+        }
501
+        if ($includeExtStorage) {
502
+            if ($storage->instanceOfStorage('\OC\Files\Storage\Home')
503
+                || $storage->instanceOfStorage('\OC\Files\ObjectStore\HomeObjectStoreStorage')
504
+            ) {
505
+                /** @var \OC\Files\Storage\Home $storage */
506
+                $userInstance = $storage->getUser();
507
+                $user = ($userInstance === null) ? null : $userInstance->getUID();
508
+            } else {
509
+                $user = \OC::$server->getUserSession()->getUser()->getUID();
510
+            }
511
+            if ($user) {
512
+                $quota = OC_Util::getUserQuota($user);
513
+            } else {
514
+                $quota = \OCP\Files\FileInfo::SPACE_UNLIMITED;
515
+            }
516
+            if ($quota !== \OCP\Files\FileInfo::SPACE_UNLIMITED) {
517
+                // always get free space / total space from root + mount points
518
+                return self::getGlobalStorageInfo();
519
+            }
520
+        }
521
+
522
+        // TODO: need a better way to get total space from storage
523
+        if ($sourceStorage->instanceOfStorage('\OC\Files\Storage\Wrapper\Quota')) {
524
+            /** @var \OC\Files\Storage\Wrapper\Quota $storage */
525
+            $quota = $sourceStorage->getQuota();
526
+        }
527
+        $free = $sourceStorage->free_space($rootInfo->getInternalPath());
528
+        if ($free >= 0) {
529
+            $total = $free + $used;
530
+        } else {
531
+            $total = $free; //either unknown or unlimited
532
+        }
533
+        if ($total > 0) {
534
+            if ($quota > 0 && $total > $quota) {
535
+                $total = $quota;
536
+            }
537
+            // prevent division by zero or error codes (negative values)
538
+            $relative = round(($used / $total) * 10000) / 100;
539
+        } else {
540
+            $relative = 0;
541
+        }
542
+
543
+        $ownerId = $storage->getOwner($path);
544
+        $ownerDisplayName = '';
545
+        $owner = \OC::$server->getUserManager()->get($ownerId);
546
+        if($owner) {
547
+            $ownerDisplayName = $owner->getDisplayName();
548
+        }
549
+
550
+        return [
551
+            'free' => $free,
552
+            'used' => $used,
553
+            'quota' => $quota,
554
+            'total' => $total,
555
+            'relative' => $relative,
556
+            'owner' => $ownerId,
557
+            'ownerDisplayName' => $ownerDisplayName,
558
+        ];
559
+    }
560
+
561
+    /**
562
+     * Get storage info including all mount points and quota
563
+     *
564
+     * @return array
565
+     */
566
+    private static function getGlobalStorageInfo() {
567
+        $quota = OC_Util::getUserQuota(\OCP\User::getUser());
568
+
569
+        $rootInfo = \OC\Files\Filesystem::getFileInfo('', 'ext');
570
+        $used = $rootInfo['size'];
571
+        if ($used < 0) {
572
+            $used = 0;
573
+        }
574
+
575
+        $total = $quota;
576
+        $free = $quota - $used;
577
+
578
+        if ($total > 0) {
579
+            if ($quota > 0 && $total > $quota) {
580
+                $total = $quota;
581
+            }
582
+            // prevent division by zero or error codes (negative values)
583
+            $relative = round(($used / $total) * 10000) / 100;
584
+        } else {
585
+            $relative = 0;
586
+        }
587
+
588
+        return [
589
+            'free' => $free,
590
+            'used' => $used,
591
+            'total' => $total,
592
+            'relative' => $relative,
593
+            'quota' => $quota
594
+        ];
595
+    }
596
+
597
+    /**
598
+     * Returns whether the config file is set manually to read-only
599
+     * @return bool
600
+     */
601
+    public static function isReadOnlyConfigEnabled() {
602
+        return \OC::$server->getConfig()->getSystemValue('config_is_read_only', false);
603
+    }
604 604
 }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
 	public static function computerFileSize($str) {
98 98
 		$str = strtolower($str);
99 99
 		if (is_numeric($str)) {
100
-			return (float)$str;
100
+			return (float) $str;
101 101
 		}
102 102
 
103 103
 		$bytes_array = [
@@ -114,7 +114,7 @@  discard block
 block discarded – undo
114 114
 			'p' => 1024 * 1024 * 1024 * 1024 * 1024,
115 115
 		];
116 116
 
117
-		$bytes = (float)$str;
117
+		$bytes = (float) $str;
118 118
 
119 119
 		if (preg_match('#([kmgtp]?b?)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) {
120 120
 			$bytes *= $bytes_array[$matches[1]];
@@ -229,7 +229,7 @@  discard block
 block discarded – undo
229 229
 		}
230 230
 		foreach ($dirs as $dir) {
231 231
 			foreach ($exts as $ext) {
232
-				if ($check_fn("$dir/$name" . $ext))
232
+				if ($check_fn("$dir/$name".$ext))
233 233
 					return true;
234 234
 			}
235 235
 		}
@@ -300,7 +300,7 @@  discard block
 block discarded – undo
300 300
 			$ext = '';
301 301
 		}
302 302
 
303
-		$newpath = $path . '/' . $filename;
303
+		$newpath = $path.'/'.$filename;
304 304
 		if ($view->file_exists($newpath)) {
305 305
 			if (preg_match_all('/\((\d+)\)/', $name, $matches, PREG_OFFSET_CAPTURE)) {
306 306
 				//Replace the last "(number)" with "(number+1)"
@@ -316,11 +316,11 @@  discard block
 block discarded – undo
316 316
 			do {
317 317
 				if ($offset) {
318 318
 					//Replace the last "(number)" with "(number+1)"
319
-					$newname = substr_replace($name, '(' . $counter . ')', $offset, $match_length);
319
+					$newname = substr_replace($name, '('.$counter.')', $offset, $match_length);
320 320
 				} else {
321
-					$newname = $name . ' (' . $counter . ')';
321
+					$newname = $name.' ('.$counter.')';
322 322
 				}
323
-				$newpath = $path . '/' . $newname . $ext;
323
+				$newpath = $path.'/'.$newname.$ext;
324 324
 				$counter++;
325 325
 			} while ($view->file_exists($newpath));
326 326
 		}
@@ -383,7 +383,7 @@  discard block
 block discarded – undo
383 383
 	 * @return int number of bytes representing
384 384
 	 */
385 385
 	public static function maxUploadFilesize($dir, $freeSpace = null) {
386
-		if (is_null($freeSpace) || $freeSpace < 0){
386
+		if (is_null($freeSpace) || $freeSpace < 0) {
387 387
 			$freeSpace = self::freeSpace($dir);
388 388
 		}
389 389
 		return min($freeSpace, self::uploadLimit());
@@ -401,7 +401,7 @@  discard block
 block discarded – undo
401 401
 			$freeSpace = max($freeSpace, 0);
402 402
 			return $freeSpace;
403 403
 		} else {
404
-			return (INF > 0)? INF: PHP_INT_MAX; // work around https://bugs.php.net/bug.php?id=69188
404
+			return (INF > 0) ? INF: PHP_INT_MAX; // work around https://bugs.php.net/bug.php?id=69188
405 405
 		}
406 406
 	}
407 407
 
@@ -414,9 +414,9 @@  discard block
 block discarded – undo
414 414
 		$ini = \OC::$server->getIniWrapper();
415 415
 		$upload_max_filesize = OCP\Util::computerFileSize($ini->get('upload_max_filesize'));
416 416
 		$post_max_size = OCP\Util::computerFileSize($ini->get('post_max_size'));
417
-		if ((int)$upload_max_filesize === 0 and (int)$post_max_size === 0) {
417
+		if ((int) $upload_max_filesize === 0 and (int) $post_max_size === 0) {
418 418
 			return INF;
419
-		} elseif ((int)$upload_max_filesize === 0 or (int)$post_max_size === 0) {
419
+		} elseif ((int) $upload_max_filesize === 0 or (int) $post_max_size === 0) {
420 420
 			return max($upload_max_filesize, $post_max_size); //only the non 0 value counts
421 421
 		} else {
422 422
 			return min($upload_max_filesize, $post_max_size);
@@ -543,7 +543,7 @@  discard block
 block discarded – undo
543 543
 		$ownerId = $storage->getOwner($path);
544 544
 		$ownerDisplayName = '';
545 545
 		$owner = \OC::$server->getUserManager()->get($ownerId);
546
-		if($owner) {
546
+		if ($owner) {
547 547
 			$ownerDisplayName = $owner->getDisplayName();
548 548
 		}
549 549
 
Please login to merge, or discard this patch.
lib/private/BackgroundJob/Legacy/RegularJob.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -26,14 +26,14 @@
 block discarded – undo
26 26
 use OCP\AutoloadNotAllowedException;
27 27
 
28 28
 class RegularJob extends \OC\BackgroundJob\Job {
29
-	public function run($argument) {
30
-		try {
31
-			if (is_callable($argument)) {
32
-				call_user_func($argument);
33
-			}
34
-		} catch (AutoloadNotAllowedException $e) {
35
-			// job is from a disabled app, ignore
36
-			return null;
37
-		}
38
-	}
29
+    public function run($argument) {
30
+        try {
31
+            if (is_callable($argument)) {
32
+                call_user_func($argument);
33
+            }
34
+        } catch (AutoloadNotAllowedException $e) {
35
+            // job is from a disabled app, ignore
36
+            return null;
37
+        }
38
+    }
39 39
 }
Please login to merge, or discard this patch.
lib/private/Settings/Section.php 1 patch
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -26,67 +26,67 @@
 block discarded – undo
26 26
 use OCP\Settings\IIconSection;
27 27
 
28 28
 class Section implements IIconSection {
29
-	/** @var string */
30
-	private $id;
31
-	/** @var string */
32
-	private $name;
33
-	/** @var int */
34
-	private $priority;
35
-	/** @var string */
36
-	private $icon;
29
+    /** @var string */
30
+    private $id;
31
+    /** @var string */
32
+    private $name;
33
+    /** @var int */
34
+    private $priority;
35
+    /** @var string */
36
+    private $icon;
37 37
 
38
-	/**
39
-	 * @param string $id
40
-	 * @param string $name
41
-	 * @param int $priority
42
-	 * @param string $icon
43
-	 */
44
-	public function __construct($id, $name, $priority, $icon = '') {
45
-		$this->id = $id;
46
-		$this->name = $name;
47
-		$this->priority = $priority;
48
-		$this->icon = $icon;
49
-	}
38
+    /**
39
+     * @param string $id
40
+     * @param string $name
41
+     * @param int $priority
42
+     * @param string $icon
43
+     */
44
+    public function __construct($id, $name, $priority, $icon = '') {
45
+        $this->id = $id;
46
+        $this->name = $name;
47
+        $this->priority = $priority;
48
+        $this->icon = $icon;
49
+    }
50 50
 
51
-	/**
52
-	 * returns the ID of the section. It is supposed to be a lower case string,
53
-	 * e.g. 'ldap'
54
-	 *
55
-	 * @returns string
56
-	 */
57
-	public function getID() {
58
-		return $this->id;
59
-	}
51
+    /**
52
+     * returns the ID of the section. It is supposed to be a lower case string,
53
+     * e.g. 'ldap'
54
+     *
55
+     * @returns string
56
+     */
57
+    public function getID() {
58
+        return $this->id;
59
+    }
60 60
 
61
-	/**
62
-	 * returns the translated name as it should be displayed, e.g. 'LDAP / AD
63
-	 * integration'. Use the L10N service to translate it.
64
-	 *
65
-	 * @return string
66
-	 */
67
-	public function getName() {
68
-		return $this->name;
69
-	}
61
+    /**
62
+     * returns the translated name as it should be displayed, e.g. 'LDAP / AD
63
+     * integration'. Use the L10N service to translate it.
64
+     *
65
+     * @return string
66
+     */
67
+    public function getName() {
68
+        return $this->name;
69
+    }
70 70
 
71
-	/**
72
-	 * @return int whether the form should be rather on the top or bottom of
73
-	 * the settings navigation. The sections are arranged in ascending order of
74
-	 * the priority values. It is required to return a value between 0 and 99.
75
-	 *
76
-	 * E.g.: 70
77
-	 */
78
-	public function getPriority() {
79
-		return $this->priority;
80
-	}
71
+    /**
72
+     * @return int whether the form should be rather on the top or bottom of
73
+     * the settings navigation. The sections are arranged in ascending order of
74
+     * the priority values. It is required to return a value between 0 and 99.
75
+     *
76
+     * E.g.: 70
77
+     */
78
+    public function getPriority() {
79
+        return $this->priority;
80
+    }
81 81
 
82
-	/**
83
-	 * returns the relative path to an 16*16 icon describing the section.
84
-	 * e.g. '/core/img/places/files.svg'
85
-	 *
86
-	 * @returns string
87
-	 * @since 12
88
-	 */
89
-	public function getIcon() {
90
-		return $this->icon;
91
-	}
82
+    /**
83
+     * returns the relative path to an 16*16 icon describing the section.
84
+     * e.g. '/core/img/places/files.svg'
85
+     *
86
+     * @returns string
87
+     * @since 12
88
+     */
89
+    public function getIcon() {
90
+        return $this->icon;
91
+    }
92 92
 }
Please login to merge, or discard this patch.
lib/private/Memcache/CASTrait.php 2 patches
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -23,35 +23,35 @@
 block discarded – undo
23 23
 namespace OC\Memcache;
24 24
 
25 25
 trait CASTrait {
26
-	abstract public function get($key);
26
+    abstract public function get($key);
27 27
 
28
-	abstract public function set($key, $value, $ttl = 0);
28
+    abstract public function set($key, $value, $ttl = 0);
29 29
 
30
-	abstract public function remove($key);
30
+    abstract public function remove($key);
31 31
 
32
-	abstract public function add($key, $value, $ttl = 0);
32
+    abstract public function add($key, $value, $ttl = 0);
33 33
 
34
-	/**
35
-	 * Compare and set
36
-	 *
37
-	 * @param string $key
38
-	 * @param mixed $old
39
-	 * @param mixed $new
40
-	 * @return bool
41
-	 */
42
-	public function cas($key, $old, $new) {
43
-		//no native cas, emulate with locking
44
-		if ($this->add($key . '_lock', true)) {
45
-			if ($this->get($key) === $old) {
46
-				$this->set($key, $new);
47
-				$this->remove($key . '_lock');
48
-				return true;
49
-			} else {
50
-				$this->remove($key . '_lock');
51
-				return false;
52
-			}
53
-		} else {
54
-			return false;
55
-		}
56
-	}
34
+    /**
35
+     * Compare and set
36
+     *
37
+     * @param string $key
38
+     * @param mixed $old
39
+     * @param mixed $new
40
+     * @return bool
41
+     */
42
+    public function cas($key, $old, $new) {
43
+        //no native cas, emulate with locking
44
+        if ($this->add($key . '_lock', true)) {
45
+            if ($this->get($key) === $old) {
46
+                $this->set($key, $new);
47
+                $this->remove($key . '_lock');
48
+                return true;
49
+            } else {
50
+                $this->remove($key . '_lock');
51
+                return false;
52
+            }
53
+        } else {
54
+            return false;
55
+        }
56
+    }
57 57
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -41,13 +41,13 @@
 block discarded – undo
41 41
 	 */
42 42
 	public function cas($key, $old, $new) {
43 43
 		//no native cas, emulate with locking
44
-		if ($this->add($key . '_lock', true)) {
44
+		if ($this->add($key.'_lock', true)) {
45 45
 			if ($this->get($key) === $old) {
46 46
 				$this->set($key, $new);
47
-				$this->remove($key . '_lock');
47
+				$this->remove($key.'_lock');
48 48
 				return true;
49 49
 			} else {
50
-				$this->remove($key . '_lock');
50
+				$this->remove($key.'_lock');
51 51
 				return false;
52 52
 			}
53 53
 		} else {
Please login to merge, or discard this patch.
lib/private/Memcache/Cache.php 1 patch
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -26,72 +26,72 @@
 block discarded – undo
26 26
 namespace OC\Memcache;
27 27
 
28 28
 abstract class Cache implements \ArrayAccess, \OCP\ICache {
29
-	/**
30
-	 * @var string $prefix
31
-	 */
32
-	protected $prefix;
29
+    /**
30
+     * @var string $prefix
31
+     */
32
+    protected $prefix;
33 33
 
34
-	/**
35
-	 * @param string $prefix
36
-	 */
37
-	public function __construct($prefix = '') {
38
-		$this->prefix = $prefix;
39
-	}
34
+    /**
35
+     * @param string $prefix
36
+     */
37
+    public function __construct($prefix = '') {
38
+        $this->prefix = $prefix;
39
+    }
40 40
 
41
-	/**
42
-	 * @return string Prefix used for caching purposes
43
-	 */
44
-	public function getPrefix() {
45
-		return $this->prefix;
46
-	}
41
+    /**
42
+     * @return string Prefix used for caching purposes
43
+     */
44
+    public function getPrefix() {
45
+        return $this->prefix;
46
+    }
47 47
 
48
-	/**
49
-	 * @param string $key
50
-	 * @return mixed
51
-	 */
52
-	abstract public function get($key);
48
+    /**
49
+     * @param string $key
50
+     * @return mixed
51
+     */
52
+    abstract public function get($key);
53 53
 
54
-	/**
55
-	 * @param string $key
56
-	 * @param mixed $value
57
-	 * @param int $ttl
58
-	 * @return mixed
59
-	 */
60
-	abstract public function set($key, $value, $ttl = 0);
54
+    /**
55
+     * @param string $key
56
+     * @param mixed $value
57
+     * @param int $ttl
58
+     * @return mixed
59
+     */
60
+    abstract public function set($key, $value, $ttl = 0);
61 61
 
62
-	/**
63
-	 * @param string $key
64
-	 * @return mixed
65
-	 */
66
-	abstract public function hasKey($key);
62
+    /**
63
+     * @param string $key
64
+     * @return mixed
65
+     */
66
+    abstract public function hasKey($key);
67 67
 
68
-	/**
69
-	 * @param string $key
70
-	 * @return mixed
71
-	 */
72
-	abstract public function remove($key);
68
+    /**
69
+     * @param string $key
70
+     * @return mixed
71
+     */
72
+    abstract public function remove($key);
73 73
 
74
-	/**
75
-	 * @param string $prefix
76
-	 * @return mixed
77
-	 */
78
-	abstract public function clear($prefix = '');
74
+    /**
75
+     * @param string $prefix
76
+     * @return mixed
77
+     */
78
+    abstract public function clear($prefix = '');
79 79
 
80
-	//implement the ArrayAccess interface
80
+    //implement the ArrayAccess interface
81 81
 
82
-	public function offsetExists($offset) {
83
-		return $this->hasKey($offset);
84
-	}
82
+    public function offsetExists($offset) {
83
+        return $this->hasKey($offset);
84
+    }
85 85
 
86
-	public function offsetSet($offset, $value) {
87
-		$this->set($offset, $value);
88
-	}
86
+    public function offsetSet($offset, $value) {
87
+        $this->set($offset, $value);
88
+    }
89 89
 
90
-	public function offsetGet($offset) {
91
-		return $this->get($offset);
92
-	}
90
+    public function offsetGet($offset) {
91
+        return $this->get($offset);
92
+    }
93 93
 
94
-	public function offsetUnset($offset) {
95
-		$this->remove($offset);
96
-	}
94
+    public function offsetUnset($offset) {
95
+        $this->remove($offset);
96
+    }
97 97
 }
Please login to merge, or discard this patch.
lib/private/Memcache/APCu.php 2 patches
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 	use CADTrait;
38 38
 
39 39
 	public function get($key) {
40
-		$result = apcu_fetch($this->getPrefix() . $key, $success);
40
+		$result = apcu_fetch($this->getPrefix().$key, $success);
41 41
 		if (!$success) {
42 42
 			return null;
43 43
 		}
@@ -45,24 +45,24 @@  discard block
 block discarded – undo
45 45
 	}
46 46
 
47 47
 	public function set($key, $value, $ttl = 0) {
48
-		return apcu_store($this->getPrefix() . $key, $value, $ttl);
48
+		return apcu_store($this->getPrefix().$key, $value, $ttl);
49 49
 	}
50 50
 
51 51
 	public function hasKey($key) {
52
-		return apcu_exists($this->getPrefix() . $key);
52
+		return apcu_exists($this->getPrefix().$key);
53 53
 	}
54 54
 
55 55
 	public function remove($key) {
56
-		return apcu_delete($this->getPrefix() . $key);
56
+		return apcu_delete($this->getPrefix().$key);
57 57
 	}
58 58
 
59 59
 	public function clear($prefix = '') {
60
-		$ns = $this->getPrefix() . $prefix;
60
+		$ns = $this->getPrefix().$prefix;
61 61
 		$ns = preg_quote($ns, '/');
62
-		if(class_exists('\APCIterator')) {
63
-			$iter = new \APCIterator('user', '/^' . $ns . '/', APC_ITER_KEY);
62
+		if (class_exists('\APCIterator')) {
63
+			$iter = new \APCIterator('user', '/^'.$ns.'/', APC_ITER_KEY);
64 64
 		} else {
65
-			$iter = new \APCUIterator('/^' . $ns . '/', APC_ITER_KEY);
65
+			$iter = new \APCUIterator('/^'.$ns.'/', APC_ITER_KEY);
66 66
 		}
67 67
 		return apcu_delete($iter);
68 68
 	}
@@ -76,7 +76,7 @@  discard block
 block discarded – undo
76 76
 	 * @return bool
77 77
 	 */
78 78
 	public function add($key, $value, $ttl = 0) {
79
-		return apcu_add($this->getPrefix() . $key, $value, $ttl);
79
+		return apcu_add($this->getPrefix().$key, $value, $ttl);
80 80
 	}
81 81
 
82 82
 	/**
@@ -100,8 +100,8 @@  discard block
 block discarded – undo
100 100
 		 * see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
101 101
 		 * for details
102 102
 		 */
103
-		return apcu_exists($this->getPrefix() . $key)
104
-			? apcu_inc($this->getPrefix() . $key, $step)
103
+		return apcu_exists($this->getPrefix().$key)
104
+			? apcu_inc($this->getPrefix().$key, $step)
105 105
 			: false;
106 106
 	}
107 107
 
@@ -125,8 +125,8 @@  discard block
 block discarded – undo
125 125
 		 * see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
126 126
 		 * for details
127 127
 		 */
128
-		return apcu_exists($this->getPrefix() . $key)
129
-			? apcu_dec($this->getPrefix() . $key, $step)
128
+		return apcu_exists($this->getPrefix().$key)
129
+			? apcu_dec($this->getPrefix().$key, $step)
130 130
 			: false;
131 131
 	}
132 132
 
@@ -141,7 +141,7 @@  discard block
 block discarded – undo
141 141
 	public function cas($key, $old, $new) {
142 142
 		// apc only does cas for ints
143 143
 		if (is_int($old) and is_int($new)) {
144
-			return apcu_cas($this->getPrefix() . $key, $old, $new);
144
+			return apcu_cas($this->getPrefix().$key, $old, $new);
145 145
 		} else {
146 146
 			return $this->casEmulated($key, $old, $new);
147 147
 		}
Please login to merge, or discard this patch.
Indentation   +125 added lines, -125 removed lines patch added patch discarded remove patch
@@ -30,140 +30,140 @@
 block discarded – undo
30 30
 use OCP\IMemcache;
31 31
 
32 32
 class APCu extends Cache implements IMemcache {
33
-	use CASTrait {
34
-		cas as casEmulated;
35
-	}
33
+    use CASTrait {
34
+        cas as casEmulated;
35
+    }
36 36
 
37
-	use CADTrait;
37
+    use CADTrait;
38 38
 
39
-	public function get($key) {
40
-		$result = apcu_fetch($this->getPrefix() . $key, $success);
41
-		if (!$success) {
42
-			return null;
43
-		}
44
-		return $result;
45
-	}
39
+    public function get($key) {
40
+        $result = apcu_fetch($this->getPrefix() . $key, $success);
41
+        if (!$success) {
42
+            return null;
43
+        }
44
+        return $result;
45
+    }
46 46
 
47
-	public function set($key, $value, $ttl = 0) {
48
-		return apcu_store($this->getPrefix() . $key, $value, $ttl);
49
-	}
47
+    public function set($key, $value, $ttl = 0) {
48
+        return apcu_store($this->getPrefix() . $key, $value, $ttl);
49
+    }
50 50
 
51
-	public function hasKey($key) {
52
-		return apcu_exists($this->getPrefix() . $key);
53
-	}
51
+    public function hasKey($key) {
52
+        return apcu_exists($this->getPrefix() . $key);
53
+    }
54 54
 
55
-	public function remove($key) {
56
-		return apcu_delete($this->getPrefix() . $key);
57
-	}
55
+    public function remove($key) {
56
+        return apcu_delete($this->getPrefix() . $key);
57
+    }
58 58
 
59
-	public function clear($prefix = '') {
60
-		$ns = $this->getPrefix() . $prefix;
61
-		$ns = preg_quote($ns, '/');
62
-		if(class_exists('\APCIterator')) {
63
-			$iter = new \APCIterator('user', '/^' . $ns . '/', APC_ITER_KEY);
64
-		} else {
65
-			$iter = new \APCUIterator('/^' . $ns . '/', APC_ITER_KEY);
66
-		}
67
-		return apcu_delete($iter);
68
-	}
59
+    public function clear($prefix = '') {
60
+        $ns = $this->getPrefix() . $prefix;
61
+        $ns = preg_quote($ns, '/');
62
+        if(class_exists('\APCIterator')) {
63
+            $iter = new \APCIterator('user', '/^' . $ns . '/', APC_ITER_KEY);
64
+        } else {
65
+            $iter = new \APCUIterator('/^' . $ns . '/', APC_ITER_KEY);
66
+        }
67
+        return apcu_delete($iter);
68
+    }
69 69
 
70
-	/**
71
-	 * Set a value in the cache if it's not already stored
72
-	 *
73
-	 * @param string $key
74
-	 * @param mixed $value
75
-	 * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
76
-	 * @return bool
77
-	 */
78
-	public function add($key, $value, $ttl = 0) {
79
-		return apcu_add($this->getPrefix() . $key, $value, $ttl);
80
-	}
70
+    /**
71
+     * Set a value in the cache if it's not already stored
72
+     *
73
+     * @param string $key
74
+     * @param mixed $value
75
+     * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
76
+     * @return bool
77
+     */
78
+    public function add($key, $value, $ttl = 0) {
79
+        return apcu_add($this->getPrefix() . $key, $value, $ttl);
80
+    }
81 81
 
82
-	/**
83
-	 * Increase a stored number
84
-	 *
85
-	 * @param string $key
86
-	 * @param int $step
87
-	 * @return int | bool
88
-	 */
89
-	public function inc($key, $step = 1) {
90
-		$this->add($key, 0);
91
-		/**
92
-		 * TODO - hack around a PHP 7 specific issue in APCu
93
-		 *
94
-		 * on PHP 7 the apcu_inc method on a non-existing object will increment
95
-		 * "0" and result in "1" as value - therefore we check for existence
96
-		 * first
97
-		 *
98
-		 * on PHP 5.6 this is not the case
99
-		 *
100
-		 * see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
101
-		 * for details
102
-		 */
103
-		return apcu_exists($this->getPrefix() . $key)
104
-			? apcu_inc($this->getPrefix() . $key, $step)
105
-			: false;
106
-	}
82
+    /**
83
+     * Increase a stored number
84
+     *
85
+     * @param string $key
86
+     * @param int $step
87
+     * @return int | bool
88
+     */
89
+    public function inc($key, $step = 1) {
90
+        $this->add($key, 0);
91
+        /**
92
+         * TODO - hack around a PHP 7 specific issue in APCu
93
+         *
94
+         * on PHP 7 the apcu_inc method on a non-existing object will increment
95
+         * "0" and result in "1" as value - therefore we check for existence
96
+         * first
97
+         *
98
+         * on PHP 5.6 this is not the case
99
+         *
100
+         * see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
101
+         * for details
102
+         */
103
+        return apcu_exists($this->getPrefix() . $key)
104
+            ? apcu_inc($this->getPrefix() . $key, $step)
105
+            : false;
106
+    }
107 107
 
108
-	/**
109
-	 * Decrease a stored number
110
-	 *
111
-	 * @param string $key
112
-	 * @param int $step
113
-	 * @return int | bool
114
-	 */
115
-	public function dec($key, $step = 1) {
116
-		/**
117
-		 * TODO - hack around a PHP 7 specific issue in APCu
118
-		 *
119
-		 * on PHP 7 the apcu_dec method on a non-existing object will decrement
120
-		 * "0" and result in "-1" as value - therefore we check for existence
121
-		 * first
122
-		 *
123
-		 * on PHP 5.6 this is not the case
124
-		 *
125
-		 * see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
126
-		 * for details
127
-		 */
128
-		return apcu_exists($this->getPrefix() . $key)
129
-			? apcu_dec($this->getPrefix() . $key, $step)
130
-			: false;
131
-	}
108
+    /**
109
+     * Decrease a stored number
110
+     *
111
+     * @param string $key
112
+     * @param int $step
113
+     * @return int | bool
114
+     */
115
+    public function dec($key, $step = 1) {
116
+        /**
117
+         * TODO - hack around a PHP 7 specific issue in APCu
118
+         *
119
+         * on PHP 7 the apcu_dec method on a non-existing object will decrement
120
+         * "0" and result in "-1" as value - therefore we check for existence
121
+         * first
122
+         *
123
+         * on PHP 5.6 this is not the case
124
+         *
125
+         * see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
126
+         * for details
127
+         */
128
+        return apcu_exists($this->getPrefix() . $key)
129
+            ? apcu_dec($this->getPrefix() . $key, $step)
130
+            : false;
131
+    }
132 132
 
133
-	/**
134
-	 * Compare and set
135
-	 *
136
-	 * @param string $key
137
-	 * @param mixed $old
138
-	 * @param mixed $new
139
-	 * @return bool
140
-	 */
141
-	public function cas($key, $old, $new) {
142
-		// apc only does cas for ints
143
-		if (is_int($old) and is_int($new)) {
144
-			return apcu_cas($this->getPrefix() . $key, $old, $new);
145
-		} else {
146
-			return $this->casEmulated($key, $old, $new);
147
-		}
148
-	}
133
+    /**
134
+     * Compare and set
135
+     *
136
+     * @param string $key
137
+     * @param mixed $old
138
+     * @param mixed $new
139
+     * @return bool
140
+     */
141
+    public function cas($key, $old, $new) {
142
+        // apc only does cas for ints
143
+        if (is_int($old) and is_int($new)) {
144
+            return apcu_cas($this->getPrefix() . $key, $old, $new);
145
+        } else {
146
+            return $this->casEmulated($key, $old, $new);
147
+        }
148
+    }
149 149
 
150
-	/**
151
-	 * @return bool
152
-	 */
153
-	static public function isAvailable() {
154
-		if (!extension_loaded('apcu')) {
155
-			return false;
156
-		} elseif (!\OC::$server->getIniWrapper()->getBool('apc.enabled')) {
157
-			return false;
158
-		} elseif (!\OC::$server->getIniWrapper()->getBool('apc.enable_cli') && \OC::$CLI) {
159
-			return false;
160
-		} elseif (
161
-				version_compare(phpversion('apc') ?: '0.0.0', '4.0.6') === -1 &&
162
-				version_compare(phpversion('apcu') ?: '0.0.0', '5.1.0') === -1
163
-		) {
164
-			return false;
165
-		} else {
166
-			return true;
167
-		}
168
-	}
150
+    /**
151
+     * @return bool
152
+     */
153
+    static public function isAvailable() {
154
+        if (!extension_loaded('apcu')) {
155
+            return false;
156
+        } elseif (!\OC::$server->getIniWrapper()->getBool('apc.enabled')) {
157
+            return false;
158
+        } elseif (!\OC::$server->getIniWrapper()->getBool('apc.enable_cli') && \OC::$CLI) {
159
+            return false;
160
+        } elseif (
161
+                version_compare(phpversion('apc') ?: '0.0.0', '4.0.6') === -1 &&
162
+                version_compare(phpversion('apcu') ?: '0.0.0', '5.1.0') === -1
163
+        ) {
164
+            return false;
165
+        } else {
166
+            return true;
167
+        }
168
+    }
169 169
 }
Please login to merge, or discard this patch.
lib/private/Memcache/CADTrait.php 2 patches
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -23,32 +23,32 @@
 block discarded – undo
23 23
 namespace OC\Memcache;
24 24
 
25 25
 trait CADTrait {
26
-	abstract public function get($key);
26
+    abstract public function get($key);
27 27
 
28
-	abstract public function remove($key);
28
+    abstract public function remove($key);
29 29
 
30
-	abstract public function add($key, $value, $ttl = 0);
30
+    abstract public function add($key, $value, $ttl = 0);
31 31
 
32
-	/**
33
-	 * Compare and delete
34
-	 *
35
-	 * @param string $key
36
-	 * @param mixed $old
37
-	 * @return bool
38
-	 */
39
-	public function cad($key, $old) {
40
-		//no native cas, emulate with locking
41
-		if ($this->add($key . '_lock', true)) {
42
-			if ($this->get($key) === $old) {
43
-				$this->remove($key);
44
-				$this->remove($key . '_lock');
45
-				return true;
46
-			} else {
47
-				$this->remove($key . '_lock');
48
-				return false;
49
-			}
50
-		} else {
51
-			return false;
52
-		}
53
-	}
32
+    /**
33
+     * Compare and delete
34
+     *
35
+     * @param string $key
36
+     * @param mixed $old
37
+     * @return bool
38
+     */
39
+    public function cad($key, $old) {
40
+        //no native cas, emulate with locking
41
+        if ($this->add($key . '_lock', true)) {
42
+            if ($this->get($key) === $old) {
43
+                $this->remove($key);
44
+                $this->remove($key . '_lock');
45
+                return true;
46
+            } else {
47
+                $this->remove($key . '_lock');
48
+                return false;
49
+            }
50
+        } else {
51
+            return false;
52
+        }
53
+    }
54 54
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -38,13 +38,13 @@
 block discarded – undo
38 38
 	 */
39 39
 	public function cad($key, $old) {
40 40
 		//no native cas, emulate with locking
41
-		if ($this->add($key . '_lock', true)) {
41
+		if ($this->add($key.'_lock', true)) {
42 42
 			if ($this->get($key) === $old) {
43 43
 				$this->remove($key);
44
-				$this->remove($key . '_lock');
44
+				$this->remove($key.'_lock');
45 45
 				return true;
46 46
 			} else {
47
-				$this->remove($key . '_lock');
47
+				$this->remove($key.'_lock');
48 48
 				return false;
49 49
 			}
50 50
 		} else {
Please login to merge, or discard this patch.
lib/private/Memcache/NullCache.php 1 patch
Indentation   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -27,47 +27,47 @@
 block discarded – undo
27 27
 namespace OC\Memcache;
28 28
 
29 29
 class NullCache extends Cache implements \OCP\IMemcache {
30
-	public function get($key) {
31
-		return null;
32
-	}
30
+    public function get($key) {
31
+        return null;
32
+    }
33 33
 
34
-	public function set($key, $value, $ttl = 0) {
35
-		return true;
36
-	}
34
+    public function set($key, $value, $ttl = 0) {
35
+        return true;
36
+    }
37 37
 
38
-	public function hasKey($key) {
39
-		return false;
40
-	}
38
+    public function hasKey($key) {
39
+        return false;
40
+    }
41 41
 
42
-	public function remove($key) {
43
-		return true;
44
-	}
42
+    public function remove($key) {
43
+        return true;
44
+    }
45 45
 
46
-	public function add($key, $value, $ttl = 0) {
47
-		return true;
48
-	}
46
+    public function add($key, $value, $ttl = 0) {
47
+        return true;
48
+    }
49 49
 
50
-	public function inc($key, $step = 1) {
51
-		return true;
52
-	}
50
+    public function inc($key, $step = 1) {
51
+        return true;
52
+    }
53 53
 
54
-	public function dec($key, $step = 1) {
55
-		return true;
56
-	}
54
+    public function dec($key, $step = 1) {
55
+        return true;
56
+    }
57 57
 
58
-	public function cas($key, $old, $new) {
59
-		return true;
60
-	}
58
+    public function cas($key, $old, $new) {
59
+        return true;
60
+    }
61 61
 
62
-	public function cad($key, $old) {
63
-		return true;
64
-	}
62
+    public function cad($key, $old) {
63
+        return true;
64
+    }
65 65
 
66
-	public function clear($prefix = '') {
67
-		return true;
68
-	}
66
+    public function clear($prefix = '') {
67
+        return true;
68
+    }
69 69
 
70
-	static public function isAvailable() {
71
-		return true;
72
-	}
70
+    static public function isAvailable() {
71
+        return true;
72
+    }
73 73
 }
Please login to merge, or discard this patch.
lib/private/OCS/Result.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -103,10 +103,10 @@  discard block
 block discarded – undo
103 103
 		$meta['status'] = $this->succeeded() ? 'ok' : 'failure';
104 104
 		$meta['statuscode'] = $this->statusCode;
105 105
 		$meta['message'] = $this->message;
106
-		if(isset($this->items)) {
106
+		if (isset($this->items)) {
107 107
 			$meta['totalitems'] = $this->items;
108 108
 		}
109
-		if(isset($this->perPage)) {
109
+		if (isset($this->perPage)) {
110 110
 			$meta['itemsperpage'] = $this->perPage;
111 111
 		}
112 112
 		return $meta;
@@ -136,11 +136,11 @@  discard block
 block discarded – undo
136 136
 	 * @return $this
137 137
 	 */
138 138
 	public function addHeader($name, $value) {
139
-		$name = trim($name);  // always remove leading and trailing whitespace
139
+		$name = trim($name); // always remove leading and trailing whitespace
140 140
 		// to be able to reliably check for security
141 141
 		// headers
142 142
 
143
-		if(is_null($value)) {
143
+		if (is_null($value)) {
144 144
 			unset($this->headers[$name]);
145 145
 		} else {
146 146
 			$this->headers[$name] = $value;
Please login to merge, or discard this patch.
Indentation   +124 added lines, -124 removed lines patch added patch discarded remove patch
@@ -32,129 +32,129 @@
 block discarded – undo
32 32
 
33 33
 class Result {
34 34
 
35
-	/** @var array  */
36
-	protected $data;
37
-
38
-	/** @var null|string */
39
-	protected $message;
40
-
41
-	/** @var int */
42
-	protected $statusCode;
43
-
44
-	/** @var integer */
45
-	protected $items;
46
-
47
-	/** @var integer */
48
-	protected $perPage;
49
-
50
-	/** @var array */
51
-	private $headers = [];
52
-
53
-	/**
54
-	 * create the OCS_Result object
55
-	 * @param mixed $data the data to return
56
-	 * @param int $code
57
-	 * @param null|string $message
58
-	 * @param array $headers
59
-	 */
60
-	public function __construct($data = null, $code = 100, $message = null, $headers = []) {
61
-		if ($data === null) {
62
-			$this->data = [];
63
-		} elseif (!is_array($data)) {
64
-			$this->data = [$this->data];
65
-		} else {
66
-			$this->data = $data;
67
-		}
68
-		$this->statusCode = $code;
69
-		$this->message = $message;
70
-		$this->headers = $headers;
71
-	}
72
-
73
-	/**
74
-	 * optionally set the total number of items available
75
-	 * @param int $items
76
-	 */
77
-	public function setTotalItems($items) {
78
-		$this->items = $items;
79
-	}
80
-
81
-	/**
82
-	 * optionally set the the number of items per page
83
-	 * @param int $items
84
-	 */
85
-	public function setItemsPerPage($items) {
86
-		$this->perPage = $items;
87
-	}
88
-
89
-	/**
90
-	 * get the status code
91
-	 * @return int
92
-	 */
93
-	public function getStatusCode() {
94
-		return $this->statusCode;
95
-	}
96
-
97
-	/**
98
-	 * get the meta data for the result
99
-	 * @return array
100
-	 */
101
-	public function getMeta() {
102
-		$meta = [];
103
-		$meta['status'] = $this->succeeded() ? 'ok' : 'failure';
104
-		$meta['statuscode'] = $this->statusCode;
105
-		$meta['message'] = $this->message;
106
-		if(isset($this->items)) {
107
-			$meta['totalitems'] = $this->items;
108
-		}
109
-		if(isset($this->perPage)) {
110
-			$meta['itemsperpage'] = $this->perPage;
111
-		}
112
-		return $meta;
113
-
114
-	}
115
-
116
-	/**
117
-	 * get the result data
118
-	 * @return array
119
-	 */
120
-	public function getData() {
121
-		return $this->data;
122
-	}
123
-
124
-	/**
125
-	 * return bool Whether the method succeeded
126
-	 * @return bool
127
-	 */
128
-	public function succeeded() {
129
-		return ($this->statusCode == 100);
130
-	}
131
-
132
-	/**
133
-	 * Adds a new header to the response
134
-	 * @param string $name The name of the HTTP header
135
-	 * @param string $value The value, null will delete it
136
-	 * @return $this
137
-	 */
138
-	public function addHeader($name, $value) {
139
-		$name = trim($name);  // always remove leading and trailing whitespace
140
-		// to be able to reliably check for security
141
-		// headers
142
-
143
-		if(is_null($value)) {
144
-			unset($this->headers[$name]);
145
-		} else {
146
-			$this->headers[$name] = $value;
147
-		}
148
-
149
-		return $this;
150
-	}
151
-
152
-	/**
153
-	 * Returns the set headers
154
-	 * @return array the headers
155
-	 */
156
-	public function getHeaders() {
157
-		return $this->headers;
158
-	}
35
+    /** @var array  */
36
+    protected $data;
37
+
38
+    /** @var null|string */
39
+    protected $message;
40
+
41
+    /** @var int */
42
+    protected $statusCode;
43
+
44
+    /** @var integer */
45
+    protected $items;
46
+
47
+    /** @var integer */
48
+    protected $perPage;
49
+
50
+    /** @var array */
51
+    private $headers = [];
52
+
53
+    /**
54
+     * create the OCS_Result object
55
+     * @param mixed $data the data to return
56
+     * @param int $code
57
+     * @param null|string $message
58
+     * @param array $headers
59
+     */
60
+    public function __construct($data = null, $code = 100, $message = null, $headers = []) {
61
+        if ($data === null) {
62
+            $this->data = [];
63
+        } elseif (!is_array($data)) {
64
+            $this->data = [$this->data];
65
+        } else {
66
+            $this->data = $data;
67
+        }
68
+        $this->statusCode = $code;
69
+        $this->message = $message;
70
+        $this->headers = $headers;
71
+    }
72
+
73
+    /**
74
+     * optionally set the total number of items available
75
+     * @param int $items
76
+     */
77
+    public function setTotalItems($items) {
78
+        $this->items = $items;
79
+    }
80
+
81
+    /**
82
+     * optionally set the the number of items per page
83
+     * @param int $items
84
+     */
85
+    public function setItemsPerPage($items) {
86
+        $this->perPage = $items;
87
+    }
88
+
89
+    /**
90
+     * get the status code
91
+     * @return int
92
+     */
93
+    public function getStatusCode() {
94
+        return $this->statusCode;
95
+    }
96
+
97
+    /**
98
+     * get the meta data for the result
99
+     * @return array
100
+     */
101
+    public function getMeta() {
102
+        $meta = [];
103
+        $meta['status'] = $this->succeeded() ? 'ok' : 'failure';
104
+        $meta['statuscode'] = $this->statusCode;
105
+        $meta['message'] = $this->message;
106
+        if(isset($this->items)) {
107
+            $meta['totalitems'] = $this->items;
108
+        }
109
+        if(isset($this->perPage)) {
110
+            $meta['itemsperpage'] = $this->perPage;
111
+        }
112
+        return $meta;
113
+
114
+    }
115
+
116
+    /**
117
+     * get the result data
118
+     * @return array
119
+     */
120
+    public function getData() {
121
+        return $this->data;
122
+    }
123
+
124
+    /**
125
+     * return bool Whether the method succeeded
126
+     * @return bool
127
+     */
128
+    public function succeeded() {
129
+        return ($this->statusCode == 100);
130
+    }
131
+
132
+    /**
133
+     * Adds a new header to the response
134
+     * @param string $name The name of the HTTP header
135
+     * @param string $value The value, null will delete it
136
+     * @return $this
137
+     */
138
+    public function addHeader($name, $value) {
139
+        $name = trim($name);  // always remove leading and trailing whitespace
140
+        // to be able to reliably check for security
141
+        // headers
142
+
143
+        if(is_null($value)) {
144
+            unset($this->headers[$name]);
145
+        } else {
146
+            $this->headers[$name] = $value;
147
+        }
148
+
149
+        return $this;
150
+    }
151
+
152
+    /**
153
+     * Returns the set headers
154
+     * @return array the headers
155
+     */
156
+    public function getHeaders() {
157
+        return $this->headers;
158
+    }
159 159
 
160 160
 }
Please login to merge, or discard this patch.