Passed
Push — master ( bdb152...365819 )
by Christoph
17:37 queued 11s
created
lib/private/Preview/Movie.php 2 patches
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -84,15 +84,15 @@
 block discarded – undo
84 84
 		$tmpPath = \OC::$server->getTempManager()->getTemporaryFile();
85 85
 
86 86
 		if (self::$avconvBinary) {
87
-			$cmd = self::$avconvBinary . ' -y -ss ' . escapeshellarg($second) .
88
-				' -i ' . escapeshellarg($absPath) .
89
-				' -an -f mjpeg -vframes 1 -vsync 1 ' . escapeshellarg($tmpPath) .
87
+			$cmd = self::$avconvBinary.' -y -ss '.escapeshellarg($second).
88
+				' -i '.escapeshellarg($absPath).
89
+				' -an -f mjpeg -vframes 1 -vsync 1 '.escapeshellarg($tmpPath).
90 90
 				' > /dev/null 2>&1';
91 91
 		} else {
92
-			$cmd = self::$ffmpegBinary . ' -y -ss ' . escapeshellarg($second) .
93
-				' -i ' . escapeshellarg($absPath) .
94
-				' -f mjpeg -vframes 1' .
95
-				' ' . escapeshellarg($tmpPath) .
92
+			$cmd = self::$ffmpegBinary.' -y -ss '.escapeshellarg($second).
93
+				' -i '.escapeshellarg($absPath).
94
+				' -f mjpeg -vframes 1'.
95
+				' '.escapeshellarg($tmpPath).
96 96
 				' > /dev/null 2>&1';
97 97
 		}
98 98
 
Please login to merge, or discard this patch.
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -33,73 +33,73 @@
 block discarded – undo
33 33
 use OCP\IImage;
34 34
 
35 35
 class Movie extends ProviderV2 {
36
-	public static $avconvBinary;
37
-	public static $ffmpegBinary;
36
+    public static $avconvBinary;
37
+    public static $ffmpegBinary;
38 38
 
39
-	/**
40
-	 * {@inheritDoc}
41
-	 */
42
-	public function getMimeType(): string {
43
-		return '/video\/.*/';
44
-	}
39
+    /**
40
+     * {@inheritDoc}
41
+     */
42
+    public function getMimeType(): string {
43
+        return '/video\/.*/';
44
+    }
45 45
 
46
-	/**
47
-	 * {@inheritDoc}
48
-	 */
49
-	public function getThumbnail(File $file, int $maxX, int $maxY): ?IImage {
50
-		// TODO: use proc_open() and stream the source file ?
46
+    /**
47
+     * {@inheritDoc}
48
+     */
49
+    public function getThumbnail(File $file, int $maxX, int $maxY): ?IImage {
50
+        // TODO: use proc_open() and stream the source file ?
51 51
 
52
-		$absPath = $this->getLocalFile($file, 5242880); // only use the first 5MB
52
+        $absPath = $this->getLocalFile($file, 5242880); // only use the first 5MB
53 53
 
54
-		$result = $this->generateThumbNail($maxX, $maxY, $absPath, 5);
55
-		if ($result === null) {
56
-			$result = $this->generateThumbNail($maxX, $maxY, $absPath, 1);
57
-			if ($result === null) {
58
-				$result = $this->generateThumbNail($maxX, $maxY, $absPath, 0);
59
-			}
60
-		}
54
+        $result = $this->generateThumbNail($maxX, $maxY, $absPath, 5);
55
+        if ($result === null) {
56
+            $result = $this->generateThumbNail($maxX, $maxY, $absPath, 1);
57
+            if ($result === null) {
58
+                $result = $this->generateThumbNail($maxX, $maxY, $absPath, 0);
59
+            }
60
+        }
61 61
 
62
-		$this->cleanTmpFiles();
62
+        $this->cleanTmpFiles();
63 63
 
64
-		return $result;
65
-	}
64
+        return $result;
65
+    }
66 66
 
67
-	/**
68
-	 * @param int $maxX
69
-	 * @param int $maxY
70
-	 * @param string $absPath
71
-	 * @param int $second
72
-	 * @return null|\OCP\IImage
73
-	 */
74
-	private function generateThumbNail($maxX, $maxY, $absPath, $second): ?IImage {
75
-		$tmpPath = \OC::$server->getTempManager()->getTemporaryFile();
67
+    /**
68
+     * @param int $maxX
69
+     * @param int $maxY
70
+     * @param string $absPath
71
+     * @param int $second
72
+     * @return null|\OCP\IImage
73
+     */
74
+    private function generateThumbNail($maxX, $maxY, $absPath, $second): ?IImage {
75
+        $tmpPath = \OC::$server->getTempManager()->getTemporaryFile();
76 76
 
77
-		if (self::$avconvBinary) {
78
-			$cmd = self::$avconvBinary . ' -y -ss ' . escapeshellarg($second) .
79
-				' -i ' . escapeshellarg($absPath) .
80
-				' -an -f mjpeg -vframes 1 -vsync 1 ' . escapeshellarg($tmpPath) .
81
-				' > /dev/null 2>&1';
82
-		} else {
83
-			$cmd = self::$ffmpegBinary . ' -y -ss ' . escapeshellarg($second) .
84
-				' -i ' . escapeshellarg($absPath) .
85
-				' -f mjpeg -vframes 1' .
86
-				' ' . escapeshellarg($tmpPath) .
87
-				' > /dev/null 2>&1';
88
-		}
77
+        if (self::$avconvBinary) {
78
+            $cmd = self::$avconvBinary . ' -y -ss ' . escapeshellarg($second) .
79
+                ' -i ' . escapeshellarg($absPath) .
80
+                ' -an -f mjpeg -vframes 1 -vsync 1 ' . escapeshellarg($tmpPath) .
81
+                ' > /dev/null 2>&1';
82
+        } else {
83
+            $cmd = self::$ffmpegBinary . ' -y -ss ' . escapeshellarg($second) .
84
+                ' -i ' . escapeshellarg($absPath) .
85
+                ' -f mjpeg -vframes 1' .
86
+                ' ' . escapeshellarg($tmpPath) .
87
+                ' > /dev/null 2>&1';
88
+        }
89 89
 
90
-		exec($cmd, $output, $returnCode);
90
+        exec($cmd, $output, $returnCode);
91 91
 
92
-		if ($returnCode === 0) {
93
-			$image = new \OC_Image();
94
-			$image->loadFromFile($tmpPath);
95
-			if ($image->valid()) {
96
-				unlink($tmpPath);
97
-				$image->scaleDownToFit($maxX, $maxY);
92
+        if ($returnCode === 0) {
93
+            $image = new \OC_Image();
94
+            $image->loadFromFile($tmpPath);
95
+            if ($image->valid()) {
96
+                unlink($tmpPath);
97
+                $image->scaleDownToFit($maxX, $maxY);
98 98
 
99
-				return $image;
100
-			}
101
-		}
102
-		unlink($tmpPath);
103
-		return null;
104
-	}
99
+                return $image;
100
+            }
101
+        }
102
+        unlink($tmpPath);
103
+        return null;
104
+    }
105 105
 }
Please login to merge, or discard this patch.
lib/private/Encryption/Exceptions/ModuleAlreadyExistsException.php 2 patches
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -27,12 +27,12 @@
 block discarded – undo
27 27
 
28 28
 class ModuleAlreadyExistsException extends GenericEncryptionException {
29 29
 
30
-	/**
31
-	 * @param string $id
32
-	 * @param string $name
33
-	 */
34
-	public function __construct($id, $name) {
35
-		parent::__construct('Id "' . $id . '" already used by encryption module "' . $name . '"');
36
-	}
30
+    /**
31
+     * @param string $id
32
+     * @param string $name
33
+     */
34
+    public function __construct($id, $name) {
35
+        parent::__construct('Id "' . $id . '" already used by encryption module "' . $name . '"');
36
+    }
37 37
 
38 38
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@
 block discarded – undo
32 32
 	 * @param string $name
33 33
 	 */
34 34
 	public function __construct($id, $name) {
35
-		parent::__construct('Id "' . $id . '" already used by encryption module "' . $name . '"');
35
+		parent::__construct('Id "'.$id.'" already used by encryption module "'.$name.'"');
36 36
 	}
37 37
 
38 38
 }
Please login to merge, or discard this patch.
lib/private/Encryption/Exceptions/EncryptionHeaderKeyExistsException.php 2 patches
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -27,10 +27,10 @@
 block discarded – undo
27 27
 
28 28
 class EncryptionHeaderKeyExistsException extends GenericEncryptionException {
29 29
 
30
-	/**
31
-	 * @param string $key
32
-	 */
33
-	public function __construct($key) {
34
-		parent::__construct('header key "'. $key . '" already reserved by ownCloud');
35
-	}
30
+    /**
31
+     * @param string $key
32
+     */
33
+    public function __construct($key) {
34
+        parent::__construct('header key "'. $key . '" already reserved by ownCloud');
35
+    }
36 36
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -31,6 +31,6 @@
 block discarded – undo
31 31
 	 * @param string $key
32 32
 	 */
33 33
 	public function __construct($key) {
34
-		parent::__construct('header key "'. $key . '" already reserved by ownCloud');
34
+		parent::__construct('header key "'.$key.'" already reserved by ownCloud');
35 35
 	}
36 36
 }
Please login to merge, or discard this patch.
lib/private/Encryption/Manager.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -274,7 +274,7 @@
 block discarded – undo
274 274
 		}
275 275
 
276 276
 		// check if key storage is mounted correctly
277
-		if ($this->rootView->file_exists($rootDir . '/' . Storage::KEY_STORAGE_MARKER)) {
277
+		if ($this->rootView->file_exists($rootDir.'/'.Storage::KEY_STORAGE_MARKER)) {
278 278
 			return true;
279 279
 		}
280 280
 
Please login to merge, or discard this patch.
Indentation   +231 added lines, -231 removed lines patch added patch discarded remove patch
@@ -39,235 +39,235 @@
 block discarded – undo
39 39
 
40 40
 class Manager implements IManager {
41 41
 
42
-	/** @var array */
43
-	protected $encryptionModules;
44
-
45
-	/** @var IConfig */
46
-	protected $config;
47
-
48
-	/** @var ILogger */
49
-	protected $logger;
50
-
51
-	/** @var Il10n */
52
-	protected $l;
53
-
54
-	/** @var View  */
55
-	protected $rootView;
56
-
57
-	/** @var Util  */
58
-	protected $util;
59
-
60
-	/** @var ArrayCache  */
61
-	protected $arrayCache;
62
-
63
-	/**
64
-	 * @param IConfig $config
65
-	 * @param ILogger $logger
66
-	 * @param IL10N $l10n
67
-	 * @param View $rootView
68
-	 * @param Util $util
69
-	 * @param ArrayCache $arrayCache
70
-	 */
71
-	public function __construct(IConfig $config, ILogger $logger, IL10N $l10n, View $rootView, Util $util, ArrayCache $arrayCache) {
72
-		$this->encryptionModules = [];
73
-		$this->config = $config;
74
-		$this->logger = $logger;
75
-		$this->l = $l10n;
76
-		$this->rootView = $rootView;
77
-		$this->util = $util;
78
-		$this->arrayCache = $arrayCache;
79
-	}
80
-
81
-	/**
82
-	 * Check if encryption is enabled
83
-	 *
84
-	 * @return bool true if enabled, false if not
85
-	 */
86
-	public function isEnabled() {
87
-		$installed = $this->config->getSystemValue('installed', false);
88
-		if (!$installed) {
89
-			return false;
90
-		}
91
-
92
-		$enabled = $this->config->getAppValue('core', 'encryption_enabled', 'no');
93
-		return $enabled === 'yes';
94
-	}
95
-
96
-	/**
97
-	 * check if new encryption is ready
98
-	 *
99
-	 * @return bool
100
-	 * @throws ServiceUnavailableException
101
-	 */
102
-	public function isReady() {
103
-		if ($this->isKeyStorageReady() === false) {
104
-			throw new ServiceUnavailableException('Key Storage is not ready');
105
-		}
106
-
107
-		return true;
108
-	}
109
-
110
-	/**
111
-	 * @param string $user
112
-	 */
113
-	public function isReadyForUser($user) {
114
-		if (!$this->isReady()) {
115
-			return false;
116
-		}
117
-
118
-		foreach ($this->getEncryptionModules() as $module) {
119
-			/** @var IEncryptionModule $m */
120
-			$m = call_user_func($module['callback']);
121
-			if (!$m->isReadyForUser($user)) {
122
-				return false;
123
-			}
124
-		}
125
-
126
-		return true;
127
-	}
128
-
129
-	/**
130
-	 * Registers an callback function which must return an encryption module instance
131
-	 *
132
-	 * @param string $id
133
-	 * @param string $displayName
134
-	 * @param callable $callback
135
-	 * @throws Exceptions\ModuleAlreadyExistsException
136
-	 */
137
-	public function registerEncryptionModule($id, $displayName, callable $callback) {
138
-		if (isset($this->encryptionModules[$id])) {
139
-			throw new Exceptions\ModuleAlreadyExistsException($id, $displayName);
140
-		}
141
-
142
-		$this->encryptionModules[$id] = [
143
-			'id' => $id,
144
-			'displayName' => $displayName,
145
-			'callback' => $callback,
146
-		];
147
-
148
-		$defaultEncryptionModuleId = $this->getDefaultEncryptionModuleId();
149
-
150
-		if (empty($defaultEncryptionModuleId)) {
151
-			$this->setDefaultEncryptionModule($id);
152
-		}
153
-	}
154
-
155
-	/**
156
-	 * Unregisters an encryption module
157
-	 *
158
-	 * @param string $moduleId
159
-	 */
160
-	public function unregisterEncryptionModule($moduleId) {
161
-		unset($this->encryptionModules[$moduleId]);
162
-	}
163
-
164
-	/**
165
-	 * get a list of all encryption modules
166
-	 *
167
-	 * @return array [id => ['id' => $id, 'displayName' => $displayName, 'callback' => callback]]
168
-	 */
169
-	public function getEncryptionModules() {
170
-		return $this->encryptionModules;
171
-	}
172
-
173
-	/**
174
-	 * get a specific encryption module
175
-	 *
176
-	 * @param string $moduleId
177
-	 * @return IEncryptionModule
178
-	 * @throws Exceptions\ModuleDoesNotExistsException
179
-	 */
180
-	public function getEncryptionModule($moduleId = '') {
181
-		if (!empty($moduleId)) {
182
-			if (isset($this->encryptionModules[$moduleId])) {
183
-				return call_user_func($this->encryptionModules[$moduleId]['callback']);
184
-			} else {
185
-				$message = "Module with ID: $moduleId does not exist.";
186
-				$hint = $this->l->t('Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator.', [$moduleId]);
187
-				throw new Exceptions\ModuleDoesNotExistsException($message, $hint);
188
-			}
189
-		} else {
190
-			return $this->getDefaultEncryptionModule();
191
-		}
192
-	}
193
-
194
-	/**
195
-	 * get default encryption module
196
-	 *
197
-	 * @return \OCP\Encryption\IEncryptionModule
198
-	 * @throws Exceptions\ModuleDoesNotExistsException
199
-	 */
200
-	protected function getDefaultEncryptionModule() {
201
-		$defaultModuleId = $this->getDefaultEncryptionModuleId();
202
-		if (!empty($defaultModuleId)) {
203
-			if (isset($this->encryptionModules[$defaultModuleId])) {
204
-				return call_user_func($this->encryptionModules[$defaultModuleId]['callback']);
205
-			} else {
206
-				$message = 'Default encryption module not loaded';
207
-				throw new Exceptions\ModuleDoesNotExistsException($message);
208
-			}
209
-		} else {
210
-			$message = 'No default encryption module defined';
211
-			throw new Exceptions\ModuleDoesNotExistsException($message);
212
-		}
213
-	}
214
-
215
-	/**
216
-	 * set default encryption module Id
217
-	 *
218
-	 * @param string $moduleId
219
-	 * @return bool
220
-	 */
221
-	public function setDefaultEncryptionModule($moduleId) {
222
-		try {
223
-			$this->getEncryptionModule($moduleId);
224
-		} catch (\Exception $e) {
225
-			return false;
226
-		}
227
-
228
-		$this->config->setAppValue('core', 'default_encryption_module', $moduleId);
229
-		return true;
230
-	}
231
-
232
-	/**
233
-	 * get default encryption module Id
234
-	 *
235
-	 * @return string
236
-	 */
237
-	public function getDefaultEncryptionModuleId() {
238
-		return $this->config->getAppValue('core', 'default_encryption_module');
239
-	}
240
-
241
-	/**
242
-	 * Add storage wrapper
243
-	 */
244
-	public function setupStorage() {
245
-		// If encryption is disabled and there are no loaded modules it makes no sense to load the wrapper
246
-		if (!empty($this->encryptionModules) || $this->isEnabled()) {
247
-			$encryptionWrapper = new EncryptionWrapper($this->arrayCache, $this, $this->logger);
248
-			Filesystem::addStorageWrapper('oc_encryption', [$encryptionWrapper, 'wrapStorage'], 2);
249
-		}
250
-	}
251
-
252
-
253
-	/**
254
-	 * check if key storage is ready
255
-	 *
256
-	 * @return bool
257
-	 */
258
-	protected function isKeyStorageReady() {
259
-		$rootDir = $this->util->getKeyStorageRoot();
260
-
261
-		// the default root is always valid
262
-		if ($rootDir === '') {
263
-			return true;
264
-		}
265
-
266
-		// check if key storage is mounted correctly
267
-		if ($this->rootView->file_exists($rootDir . '/' . Storage::KEY_STORAGE_MARKER)) {
268
-			return true;
269
-		}
270
-
271
-		return false;
272
-	}
42
+    /** @var array */
43
+    protected $encryptionModules;
44
+
45
+    /** @var IConfig */
46
+    protected $config;
47
+
48
+    /** @var ILogger */
49
+    protected $logger;
50
+
51
+    /** @var Il10n */
52
+    protected $l;
53
+
54
+    /** @var View  */
55
+    protected $rootView;
56
+
57
+    /** @var Util  */
58
+    protected $util;
59
+
60
+    /** @var ArrayCache  */
61
+    protected $arrayCache;
62
+
63
+    /**
64
+     * @param IConfig $config
65
+     * @param ILogger $logger
66
+     * @param IL10N $l10n
67
+     * @param View $rootView
68
+     * @param Util $util
69
+     * @param ArrayCache $arrayCache
70
+     */
71
+    public function __construct(IConfig $config, ILogger $logger, IL10N $l10n, View $rootView, Util $util, ArrayCache $arrayCache) {
72
+        $this->encryptionModules = [];
73
+        $this->config = $config;
74
+        $this->logger = $logger;
75
+        $this->l = $l10n;
76
+        $this->rootView = $rootView;
77
+        $this->util = $util;
78
+        $this->arrayCache = $arrayCache;
79
+    }
80
+
81
+    /**
82
+     * Check if encryption is enabled
83
+     *
84
+     * @return bool true if enabled, false if not
85
+     */
86
+    public function isEnabled() {
87
+        $installed = $this->config->getSystemValue('installed', false);
88
+        if (!$installed) {
89
+            return false;
90
+        }
91
+
92
+        $enabled = $this->config->getAppValue('core', 'encryption_enabled', 'no');
93
+        return $enabled === 'yes';
94
+    }
95
+
96
+    /**
97
+     * check if new encryption is ready
98
+     *
99
+     * @return bool
100
+     * @throws ServiceUnavailableException
101
+     */
102
+    public function isReady() {
103
+        if ($this->isKeyStorageReady() === false) {
104
+            throw new ServiceUnavailableException('Key Storage is not ready');
105
+        }
106
+
107
+        return true;
108
+    }
109
+
110
+    /**
111
+     * @param string $user
112
+     */
113
+    public function isReadyForUser($user) {
114
+        if (!$this->isReady()) {
115
+            return false;
116
+        }
117
+
118
+        foreach ($this->getEncryptionModules() as $module) {
119
+            /** @var IEncryptionModule $m */
120
+            $m = call_user_func($module['callback']);
121
+            if (!$m->isReadyForUser($user)) {
122
+                return false;
123
+            }
124
+        }
125
+
126
+        return true;
127
+    }
128
+
129
+    /**
130
+     * Registers an callback function which must return an encryption module instance
131
+     *
132
+     * @param string $id
133
+     * @param string $displayName
134
+     * @param callable $callback
135
+     * @throws Exceptions\ModuleAlreadyExistsException
136
+     */
137
+    public function registerEncryptionModule($id, $displayName, callable $callback) {
138
+        if (isset($this->encryptionModules[$id])) {
139
+            throw new Exceptions\ModuleAlreadyExistsException($id, $displayName);
140
+        }
141
+
142
+        $this->encryptionModules[$id] = [
143
+            'id' => $id,
144
+            'displayName' => $displayName,
145
+            'callback' => $callback,
146
+        ];
147
+
148
+        $defaultEncryptionModuleId = $this->getDefaultEncryptionModuleId();
149
+
150
+        if (empty($defaultEncryptionModuleId)) {
151
+            $this->setDefaultEncryptionModule($id);
152
+        }
153
+    }
154
+
155
+    /**
156
+     * Unregisters an encryption module
157
+     *
158
+     * @param string $moduleId
159
+     */
160
+    public function unregisterEncryptionModule($moduleId) {
161
+        unset($this->encryptionModules[$moduleId]);
162
+    }
163
+
164
+    /**
165
+     * get a list of all encryption modules
166
+     *
167
+     * @return array [id => ['id' => $id, 'displayName' => $displayName, 'callback' => callback]]
168
+     */
169
+    public function getEncryptionModules() {
170
+        return $this->encryptionModules;
171
+    }
172
+
173
+    /**
174
+     * get a specific encryption module
175
+     *
176
+     * @param string $moduleId
177
+     * @return IEncryptionModule
178
+     * @throws Exceptions\ModuleDoesNotExistsException
179
+     */
180
+    public function getEncryptionModule($moduleId = '') {
181
+        if (!empty($moduleId)) {
182
+            if (isset($this->encryptionModules[$moduleId])) {
183
+                return call_user_func($this->encryptionModules[$moduleId]['callback']);
184
+            } else {
185
+                $message = "Module with ID: $moduleId does not exist.";
186
+                $hint = $this->l->t('Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator.', [$moduleId]);
187
+                throw new Exceptions\ModuleDoesNotExistsException($message, $hint);
188
+            }
189
+        } else {
190
+            return $this->getDefaultEncryptionModule();
191
+        }
192
+    }
193
+
194
+    /**
195
+     * get default encryption module
196
+     *
197
+     * @return \OCP\Encryption\IEncryptionModule
198
+     * @throws Exceptions\ModuleDoesNotExistsException
199
+     */
200
+    protected function getDefaultEncryptionModule() {
201
+        $defaultModuleId = $this->getDefaultEncryptionModuleId();
202
+        if (!empty($defaultModuleId)) {
203
+            if (isset($this->encryptionModules[$defaultModuleId])) {
204
+                return call_user_func($this->encryptionModules[$defaultModuleId]['callback']);
205
+            } else {
206
+                $message = 'Default encryption module not loaded';
207
+                throw new Exceptions\ModuleDoesNotExistsException($message);
208
+            }
209
+        } else {
210
+            $message = 'No default encryption module defined';
211
+            throw new Exceptions\ModuleDoesNotExistsException($message);
212
+        }
213
+    }
214
+
215
+    /**
216
+     * set default encryption module Id
217
+     *
218
+     * @param string $moduleId
219
+     * @return bool
220
+     */
221
+    public function setDefaultEncryptionModule($moduleId) {
222
+        try {
223
+            $this->getEncryptionModule($moduleId);
224
+        } catch (\Exception $e) {
225
+            return false;
226
+        }
227
+
228
+        $this->config->setAppValue('core', 'default_encryption_module', $moduleId);
229
+        return true;
230
+    }
231
+
232
+    /**
233
+     * get default encryption module Id
234
+     *
235
+     * @return string
236
+     */
237
+    public function getDefaultEncryptionModuleId() {
238
+        return $this->config->getAppValue('core', 'default_encryption_module');
239
+    }
240
+
241
+    /**
242
+     * Add storage wrapper
243
+     */
244
+    public function setupStorage() {
245
+        // If encryption is disabled and there are no loaded modules it makes no sense to load the wrapper
246
+        if (!empty($this->encryptionModules) || $this->isEnabled()) {
247
+            $encryptionWrapper = new EncryptionWrapper($this->arrayCache, $this, $this->logger);
248
+            Filesystem::addStorageWrapper('oc_encryption', [$encryptionWrapper, 'wrapStorage'], 2);
249
+        }
250
+    }
251
+
252
+
253
+    /**
254
+     * check if key storage is ready
255
+     *
256
+     * @return bool
257
+     */
258
+    protected function isKeyStorageReady() {
259
+        $rootDir = $this->util->getKeyStorageRoot();
260
+
261
+        // the default root is always valid
262
+        if ($rootDir === '') {
263
+            return true;
264
+        }
265
+
266
+        // check if key storage is mounted correctly
267
+        if ($this->rootView->file_exists($rootDir . '/' . Storage::KEY_STORAGE_MARKER)) {
268
+            return true;
269
+        }
270
+
271
+        return false;
272
+    }
273 273
 }
Please login to merge, or discard this patch.
lib/private/NaturalSort.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -117,8 +117,8 @@
 block discarded – undo
117 117
 			if ($aChunk !== $bChunk) {
118 118
 				// test first character (character comparison, not number comparison)
119 119
 				if ($aChunk[0] >= '0' && $aChunk[0] <= '9' && $bChunk[0] >= '0' && $bChunk[0] <= '9') {
120
-					$aNum = (int)$aChunk;
121
-					$bNum = (int)$bChunk;
120
+					$aNum = (int) $aChunk;
121
+					$bNum = (int) $bChunk;
122 122
 					return $aNum - $bNum;
123 123
 				}
124 124
 				return self::getCollator()->compare($aChunk, $bChunk);
Please login to merge, or discard this patch.
Indentation   +101 added lines, -101 removed lines patch added patch discarded remove patch
@@ -31,112 +31,112 @@
 block discarded – undo
31 31
 use OCP\ILogger;
32 32
 
33 33
 class NaturalSort {
34
-	private static $instance;
35
-	private $collator;
36
-	private $cache = [];
34
+    private static $instance;
35
+    private $collator;
36
+    private $cache = [];
37 37
 
38
-	/**
39
-	 * Instantiate a new \OC\NaturalSort instance.
40
-	 * @param object $injectedCollator
41
-	 */
42
-	public function __construct($injectedCollator = null) {
43
-		// inject an instance of \Collator('en_US') to force using the php5-intl Collator
44
-		// or inject an instance of \OC\NaturalSort_DefaultCollator to force using Owncloud's default collator
45
-		if (isset($injectedCollator)) {
46
-			$this->collator = $injectedCollator;
47
-			\OCP\Util::writeLog('core', 'forced use of '.get_class($injectedCollator), ILogger::DEBUG);
48
-		}
49
-	}
38
+    /**
39
+     * Instantiate a new \OC\NaturalSort instance.
40
+     * @param object $injectedCollator
41
+     */
42
+    public function __construct($injectedCollator = null) {
43
+        // inject an instance of \Collator('en_US') to force using the php5-intl Collator
44
+        // or inject an instance of \OC\NaturalSort_DefaultCollator to force using Owncloud's default collator
45
+        if (isset($injectedCollator)) {
46
+            $this->collator = $injectedCollator;
47
+            \OCP\Util::writeLog('core', 'forced use of '.get_class($injectedCollator), ILogger::DEBUG);
48
+        }
49
+    }
50 50
 
51
-	/**
52
-	 * Split the given string in chunks of numbers and strings
53
-	 * @param string $t string
54
-	 * @return array of strings and number chunks
55
-	 */
56
-	private function naturalSortChunkify($t) {
57
-		// Adapted and ported to PHP from
58
-		// http://my.opera.com/GreyWyvern/blog/show.dml/1671288
59
-		if (isset($this->cache[$t])) {
60
-			return $this->cache[$t];
61
-		}
62
-		$tz = [];
63
-		$x = 0;
64
-		$y = -1;
65
-		$n = null;
51
+    /**
52
+     * Split the given string in chunks of numbers and strings
53
+     * @param string $t string
54
+     * @return array of strings and number chunks
55
+     */
56
+    private function naturalSortChunkify($t) {
57
+        // Adapted and ported to PHP from
58
+        // http://my.opera.com/GreyWyvern/blog/show.dml/1671288
59
+        if (isset($this->cache[$t])) {
60
+            return $this->cache[$t];
61
+        }
62
+        $tz = [];
63
+        $x = 0;
64
+        $y = -1;
65
+        $n = null;
66 66
 
67
-		while (isset($t[$x])) {
68
-			$c = $t[$x];
69
-			// only include the dot in strings
70
-			$m = ((!$n && $c === '.') || ($c >= '0' && $c <= '9'));
71
-			if ($m !== $n) {
72
-				// next chunk
73
-				$y++;
74
-				$tz[$y] = '';
75
-				$n = $m;
76
-			}
77
-			$tz[$y] .= $c;
78
-			$x++;
79
-		}
80
-		$this->cache[$t] = $tz;
81
-		return $tz;
82
-	}
67
+        while (isset($t[$x])) {
68
+            $c = $t[$x];
69
+            // only include the dot in strings
70
+            $m = ((!$n && $c === '.') || ($c >= '0' && $c <= '9'));
71
+            if ($m !== $n) {
72
+                // next chunk
73
+                $y++;
74
+                $tz[$y] = '';
75
+                $n = $m;
76
+            }
77
+            $tz[$y] .= $c;
78
+            $x++;
79
+        }
80
+        $this->cache[$t] = $tz;
81
+        return $tz;
82
+    }
83 83
 
84
-	/**
85
-	 * Returns the string collator
86
-	 * @return \Collator string collator
87
-	 */
88
-	private function getCollator() {
89
-		if (!isset($this->collator)) {
90
-			// looks like the default is en_US_POSIX which yields wrong sorting with
91
-			// German umlauts, so using en_US instead
92
-			if (class_exists('Collator')) {
93
-				$this->collator = new \Collator('en_US');
94
-			} else {
95
-				$this->collator = new \OC\NaturalSort_DefaultCollator();
96
-			}
97
-		}
98
-		return $this->collator;
99
-	}
84
+    /**
85
+     * Returns the string collator
86
+     * @return \Collator string collator
87
+     */
88
+    private function getCollator() {
89
+        if (!isset($this->collator)) {
90
+            // looks like the default is en_US_POSIX which yields wrong sorting with
91
+            // German umlauts, so using en_US instead
92
+            if (class_exists('Collator')) {
93
+                $this->collator = new \Collator('en_US');
94
+            } else {
95
+                $this->collator = new \OC\NaturalSort_DefaultCollator();
96
+            }
97
+        }
98
+        return $this->collator;
99
+    }
100 100
 
101
-	/**
102
-	 * Compare two strings to provide a natural sort
103
-	 * @param string $a first string to compare
104
-	 * @param string $b second string to compare
105
-	 * @return int -1 if $b comes before $a, 1 if $a comes before $b
106
-	 * or 0 if the strings are identical
107
-	 */
108
-	public function compare($a, $b) {
109
-		// Needed because PHP doesn't sort correctly when numbers are enclosed in
110
-		// parenthesis, even with NUMERIC_COLLATION enabled.
111
-		// For example it gave ["test (2).txt", "test.txt"]
112
-		// instead of ["test.txt", "test (2).txt"]
113
-		$aa = self::naturalSortChunkify($a);
114
-		$bb = self::naturalSortChunkify($b);
101
+    /**
102
+     * Compare two strings to provide a natural sort
103
+     * @param string $a first string to compare
104
+     * @param string $b second string to compare
105
+     * @return int -1 if $b comes before $a, 1 if $a comes before $b
106
+     * or 0 if the strings are identical
107
+     */
108
+    public function compare($a, $b) {
109
+        // Needed because PHP doesn't sort correctly when numbers are enclosed in
110
+        // parenthesis, even with NUMERIC_COLLATION enabled.
111
+        // For example it gave ["test (2).txt", "test.txt"]
112
+        // instead of ["test.txt", "test (2).txt"]
113
+        $aa = self::naturalSortChunkify($a);
114
+        $bb = self::naturalSortChunkify($b);
115 115
 
116
-		for ($x = 0; isset($aa[$x]) && isset($bb[$x]); $x++) {
117
-			$aChunk = $aa[$x];
118
-			$bChunk = $bb[$x];
119
-			if ($aChunk !== $bChunk) {
120
-				// test first character (character comparison, not number comparison)
121
-				if ($aChunk[0] >= '0' && $aChunk[0] <= '9' && $bChunk[0] >= '0' && $bChunk[0] <= '9') {
122
-					$aNum = (int)$aChunk;
123
-					$bNum = (int)$bChunk;
124
-					return $aNum - $bNum;
125
-				}
126
-				return self::getCollator()->compare($aChunk, $bChunk);
127
-			}
128
-		}
129
-		return count($aa) - count($bb);
130
-	}
116
+        for ($x = 0; isset($aa[$x]) && isset($bb[$x]); $x++) {
117
+            $aChunk = $aa[$x];
118
+            $bChunk = $bb[$x];
119
+            if ($aChunk !== $bChunk) {
120
+                // test first character (character comparison, not number comparison)
121
+                if ($aChunk[0] >= '0' && $aChunk[0] <= '9' && $bChunk[0] >= '0' && $bChunk[0] <= '9') {
122
+                    $aNum = (int)$aChunk;
123
+                    $bNum = (int)$bChunk;
124
+                    return $aNum - $bNum;
125
+                }
126
+                return self::getCollator()->compare($aChunk, $bChunk);
127
+            }
128
+        }
129
+        return count($aa) - count($bb);
130
+    }
131 131
 
132
-	/**
133
-	 * Returns a singleton
134
-	 * @return \OC\NaturalSort instance
135
-	 */
136
-	public static function getInstance() {
137
-		if (!isset(self::$instance)) {
138
-			self::$instance = new \OC\NaturalSort();
139
-		}
140
-		return self::$instance;
141
-	}
132
+    /**
133
+     * Returns a singleton
134
+     * @return \OC\NaturalSort instance
135
+     */
136
+    public static function getInstance() {
137
+        if (!isset(self::$instance)) {
138
+            self::$instance = new \OC\NaturalSort();
139
+        }
140
+        return self::$instance;
141
+    }
142 142
 }
Please login to merge, or discard this patch.
ocs-provider/index.php 2 patches
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -26,8 +26,8 @@
 block discarded – undo
26 26
 $server = \OC::$server;
27 27
 
28 28
 $controller = new \OC\OCS\Provider(
29
-	'ocs_provider',
30
-	$server->getRequest(),
31
-	$server->getAppManager()
29
+    'ocs_provider',
30
+    $server->getRequest(),
31
+    $server->getAppManager()
32 32
 );
33 33
 echo $controller->buildProviderList()->render();
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@
 block discarded – undo
19 19
  *
20 20
  */
21 21
 
22
-require_once __DIR__ . '/../lib/base.php';
22
+require_once __DIR__.'/../lib/base.php';
23 23
 
24 24
 header('Content-Type: application/json');
25 25
 
Please login to merge, or discard this patch.
core/Command/User/ResetPassword.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -117,12 +117,12 @@
 block discarded – undo
117 117
 		try {
118 118
 			$success = $user->setPassword($password);
119 119
 		} catch (\Exception $e) {
120
-			$output->writeln('<error>' . $e->getMessage() . '</error>');
120
+			$output->writeln('<error>'.$e->getMessage().'</error>');
121 121
 			return 1;
122 122
 		}
123 123
 
124 124
 		if ($success) {
125
-			$output->writeln("<info>Successfully reset password for " . $username . "</info>");
125
+			$output->writeln("<info>Successfully reset password for ".$username."</info>");
126 126
 		} else {
127 127
 			$output->writeln("<error>Error while resetting password!</error>");
128 128
 			return 1;
Please login to merge, or discard this patch.
Indentation   +94 added lines, -94 removed lines patch added patch discarded remove patch
@@ -41,98 +41,98 @@
 block discarded – undo
41 41
 
42 42
 class ResetPassword extends Command {
43 43
 
44
-	/** @var IUserManager */
45
-	protected $userManager;
46
-
47
-	public function __construct(IUserManager $userManager) {
48
-		$this->userManager = $userManager;
49
-		parent::__construct();
50
-	}
51
-
52
-	protected function configure() {
53
-		$this
54
-			->setName('user:resetpassword')
55
-			->setDescription('Resets the password of the named user')
56
-			->addArgument(
57
-				'user',
58
-				InputArgument::REQUIRED,
59
-				'Username to reset password'
60
-			)
61
-			->addOption(
62
-				'password-from-env',
63
-				null,
64
-				InputOption::VALUE_NONE,
65
-				'read password from environment variable OC_PASS'
66
-			)
67
-		;
68
-	}
69
-
70
-	protected function execute(InputInterface $input, OutputInterface $output): int {
71
-		$username = $input->getArgument('user');
72
-
73
-		$user = $this->userManager->get($username);
74
-		if (is_null($user)) {
75
-			$output->writeln('<error>User does not exist</error>');
76
-			return 1;
77
-		}
78
-
79
-		if ($input->getOption('password-from-env')) {
80
-			$password = getenv('OC_PASS');
81
-			if (!$password) {
82
-				$output->writeln('<error>--password-from-env given, but OC_PASS is empty!</error>');
83
-				return 1;
84
-			}
85
-		} elseif ($input->isInteractive()) {
86
-			/** @var QuestionHelper $helper */
87
-			$helper = $this->getHelper('question');
88
-
89
-			if (\OCP\App::isEnabled('encryption')) {
90
-				$output->writeln(
91
-					'<error>Warning: Resetting the password when using encryption will result in data loss!</error>'
92
-				);
93
-
94
-				$question = new ConfirmationQuestion('Do you want to continue?');
95
-				if (!$helper->ask($input, $output, $question)) {
96
-					return 1;
97
-				}
98
-			}
99
-
100
-			$question = new Question('Enter a new password: ');
101
-			$question->setHidden(true);
102
-			$password = $helper->ask($input, $output, $question);
103
-
104
-			if ($password === null) {
105
-				$output->writeln("<error>Password cannot be empty!</error>");
106
-				return 1;
107
-			}
108
-
109
-			$question = new Question('Confirm the new password: ');
110
-			$question->setHidden(true);
111
-			$confirm = $helper->ask($input, $output, $question);
112
-
113
-			if ($password !== $confirm) {
114
-				$output->writeln("<error>Passwords did not match!</error>");
115
-				return 1;
116
-			}
117
-		} else {
118
-			$output->writeln("<error>Interactive input or --password-from-env is needed for entering a new password!</error>");
119
-			return 1;
120
-		}
121
-
122
-
123
-		try {
124
-			$success = $user->setPassword($password);
125
-		} catch (\Exception $e) {
126
-			$output->writeln('<error>' . $e->getMessage() . '</error>');
127
-			return 1;
128
-		}
129
-
130
-		if ($success) {
131
-			$output->writeln("<info>Successfully reset password for " . $username . "</info>");
132
-		} else {
133
-			$output->writeln("<error>Error while resetting password!</error>");
134
-			return 1;
135
-		}
136
-		return 0;
137
-	}
44
+    /** @var IUserManager */
45
+    protected $userManager;
46
+
47
+    public function __construct(IUserManager $userManager) {
48
+        $this->userManager = $userManager;
49
+        parent::__construct();
50
+    }
51
+
52
+    protected function configure() {
53
+        $this
54
+            ->setName('user:resetpassword')
55
+            ->setDescription('Resets the password of the named user')
56
+            ->addArgument(
57
+                'user',
58
+                InputArgument::REQUIRED,
59
+                'Username to reset password'
60
+            )
61
+            ->addOption(
62
+                'password-from-env',
63
+                null,
64
+                InputOption::VALUE_NONE,
65
+                'read password from environment variable OC_PASS'
66
+            )
67
+        ;
68
+    }
69
+
70
+    protected function execute(InputInterface $input, OutputInterface $output): int {
71
+        $username = $input->getArgument('user');
72
+
73
+        $user = $this->userManager->get($username);
74
+        if (is_null($user)) {
75
+            $output->writeln('<error>User does not exist</error>');
76
+            return 1;
77
+        }
78
+
79
+        if ($input->getOption('password-from-env')) {
80
+            $password = getenv('OC_PASS');
81
+            if (!$password) {
82
+                $output->writeln('<error>--password-from-env given, but OC_PASS is empty!</error>');
83
+                return 1;
84
+            }
85
+        } elseif ($input->isInteractive()) {
86
+            /** @var QuestionHelper $helper */
87
+            $helper = $this->getHelper('question');
88
+
89
+            if (\OCP\App::isEnabled('encryption')) {
90
+                $output->writeln(
91
+                    '<error>Warning: Resetting the password when using encryption will result in data loss!</error>'
92
+                );
93
+
94
+                $question = new ConfirmationQuestion('Do you want to continue?');
95
+                if (!$helper->ask($input, $output, $question)) {
96
+                    return 1;
97
+                }
98
+            }
99
+
100
+            $question = new Question('Enter a new password: ');
101
+            $question->setHidden(true);
102
+            $password = $helper->ask($input, $output, $question);
103
+
104
+            if ($password === null) {
105
+                $output->writeln("<error>Password cannot be empty!</error>");
106
+                return 1;
107
+            }
108
+
109
+            $question = new Question('Confirm the new password: ');
110
+            $question->setHidden(true);
111
+            $confirm = $helper->ask($input, $output, $question);
112
+
113
+            if ($password !== $confirm) {
114
+                $output->writeln("<error>Passwords did not match!</error>");
115
+                return 1;
116
+            }
117
+        } else {
118
+            $output->writeln("<error>Interactive input or --password-from-env is needed for entering a new password!</error>");
119
+            return 1;
120
+        }
121
+
122
+
123
+        try {
124
+            $success = $user->setPassword($password);
125
+        } catch (\Exception $e) {
126
+            $output->writeln('<error>' . $e->getMessage() . '</error>');
127
+            return 1;
128
+        }
129
+
130
+        if ($success) {
131
+            $output->writeln("<info>Successfully reset password for " . $username . "</info>");
132
+        } else {
133
+            $output->writeln("<error>Error while resetting password!</error>");
134
+            return 1;
135
+        }
136
+        return 0;
137
+    }
138 138
 }
Please login to merge, or discard this patch.
core/Command/Config/System/Base.php 1 patch
Indentation   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -26,53 +26,53 @@
 block discarded – undo
26 26
 
27 27
 abstract class Base extends \OC\Core\Command\Base {
28 28
 
29
-	/** @var SystemConfig */
30
-	protected $systemConfig;
29
+    /** @var SystemConfig */
30
+    protected $systemConfig;
31 31
 
32
-	/**
33
-	 * @param string $argumentName
34
-	 * @param CompletionContext $context
35
-	 * @return string[]
36
-	 */
37
-	public function completeArgumentValues($argumentName, CompletionContext $context) {
38
-		if ($argumentName === 'name') {
39
-			$words = $this->getPreviousNames($context, $context->getWordIndex());
40
-			if (empty($words)) {
41
-				$completions = $this->systemConfig->getKeys();
42
-			} else {
43
-				$key = array_shift($words);
44
-				$value = $this->systemConfig->getValue($key);
45
-				$completions = array_keys($value);
32
+    /**
33
+     * @param string $argumentName
34
+     * @param CompletionContext $context
35
+     * @return string[]
36
+     */
37
+    public function completeArgumentValues($argumentName, CompletionContext $context) {
38
+        if ($argumentName === 'name') {
39
+            $words = $this->getPreviousNames($context, $context->getWordIndex());
40
+            if (empty($words)) {
41
+                $completions = $this->systemConfig->getKeys();
42
+            } else {
43
+                $key = array_shift($words);
44
+                $value = $this->systemConfig->getValue($key);
45
+                $completions = array_keys($value);
46 46
 
47
-				while (!empty($words) && is_array($value)) {
48
-					$key = array_shift($words);
49
-					if (!isset($value[$key]) || !is_array($value[$key])) {
50
-						break;
51
-					}
47
+                while (!empty($words) && is_array($value)) {
48
+                    $key = array_shift($words);
49
+                    if (!isset($value[$key]) || !is_array($value[$key])) {
50
+                        break;
51
+                    }
52 52
 
53
-					$value = $value[$key];
54
-					$completions = array_keys($value);
55
-				}
56
-			}
53
+                    $value = $value[$key];
54
+                    $completions = array_keys($value);
55
+                }
56
+            }
57 57
 
58
-			return $completions;
59
-		}
60
-		return parent::completeArgumentValues($argumentName, $context);
61
-	}
58
+            return $completions;
59
+        }
60
+        return parent::completeArgumentValues($argumentName, $context);
61
+    }
62 62
 
63
-	/**
64
-	 * @param CompletionContext $context
65
-	 * @param int $currentIndex
66
-	 * @return string[]
67
-	 */
68
-	protected function getPreviousNames(CompletionContext $context, $currentIndex) {
69
-		$word = $context->getWordAtIndex($currentIndex - 1);
70
-		if ($word === $this->getName() || $currentIndex <= 0) {
71
-			return [];
72
-		}
63
+    /**
64
+     * @param CompletionContext $context
65
+     * @param int $currentIndex
66
+     * @return string[]
67
+     */
68
+    protected function getPreviousNames(CompletionContext $context, $currentIndex) {
69
+        $word = $context->getWordAtIndex($currentIndex - 1);
70
+        if ($word === $this->getName() || $currentIndex <= 0) {
71
+            return [];
72
+        }
73 73
 
74
-		$words = $this->getPreviousNames($context, $currentIndex - 1);
75
-		$words[] = $word;
76
-		return $words;
77
-	}
74
+        $words = $this->getPreviousNames($context, $currentIndex - 1);
75
+        $words[] = $word;
76
+        return $words;
77
+    }
78 78
 }
Please login to merge, or discard this patch.
core/Command/Config/System/SetConfig.php 2 patches
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
 			$this->systemConfig->setValue($configName, $configValue['value']);
98 98
 		}
99 99
 
100
-		$output->writeln('<info>System config value ' . implode(' => ', $configNames) . ' set to ' . $configValue['readable-value'] . '</info>');
100
+		$output->writeln('<info>System config value '.implode(' => ', $configNames).' set to '.$configValue['readable-value'].'</info>');
101 101
 		return 0;
102 102
 	}
103 103
 
@@ -116,7 +116,7 @@  discard block
 block discarded – undo
116 116
 				}
117 117
 				return [
118 118
 					'value' => (int) $value,
119
-					'readable-value' => 'integer ' . (int) $value,
119
+					'readable-value' => 'integer '.(int) $value,
120 120
 				];
121 121
 
122 122
 			case 'double':
@@ -126,7 +126,7 @@  discard block
 block discarded – undo
126 126
 				}
127 127
 				return [
128 128
 					'value' => (double) $value,
129
-					'readable-value' => 'double ' . (double) $value,
129
+					'readable-value' => 'double '.(double) $value,
130 130
 				];
131 131
 
132 132
 			case 'boolean':
@@ -136,13 +136,13 @@  discard block
 block discarded – undo
136 136
 					case 'true':
137 137
 						return [
138 138
 							'value' => true,
139
-							'readable-value' => 'boolean ' . $value,
139
+							'readable-value' => 'boolean '.$value,
140 140
 						];
141 141
 
142 142
 					case 'false':
143 143
 						return [
144 144
 							'value' => false,
145
-							'readable-value' => 'boolean ' . $value,
145
+							'readable-value' => 'boolean '.$value,
146 146
 						];
147 147
 
148 148
 					default:
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
 				$value = (string) $value;
160 160
 				return [
161 161
 					'value' => $value,
162
-					'readable-value' => ($value === '') ? 'empty string' : 'string ' . $value,
162
+					'readable-value' => ($value === '') ? 'empty string' : 'string '.$value,
163 163
 				];
164 164
 
165 165
 			default:
Please login to merge, or discard this patch.
Indentation   +177 added lines, -177 removed lines patch added patch discarded remove patch
@@ -33,181 +33,181 @@
 block discarded – undo
33 33
 use Symfony\Component\Console\Output\OutputInterface;
34 34
 
35 35
 class SetConfig extends Base {
36
-	/** * @var SystemConfig */
37
-	protected $systemConfig;
38
-
39
-	/**
40
-	 * @param SystemConfig $systemConfig
41
-	 */
42
-	public function __construct(SystemConfig $systemConfig) {
43
-		parent::__construct();
44
-		$this->systemConfig = $systemConfig;
45
-	}
46
-
47
-	protected function configure() {
48
-		parent::configure();
49
-
50
-		$this
51
-			->setName('config:system:set')
52
-			->setDescription('Set a system config value')
53
-			->addArgument(
54
-				'name',
55
-				InputArgument::REQUIRED | InputArgument::IS_ARRAY,
56
-				'Name of the config parameter, specify multiple for array parameter'
57
-			)
58
-			->addOption(
59
-				'type',
60
-				null,
61
-				InputOption::VALUE_REQUIRED,
62
-				'Value type [string, integer, double, boolean]',
63
-				'string'
64
-			)
65
-			->addOption(
66
-				'value',
67
-				null,
68
-				InputOption::VALUE_REQUIRED,
69
-				'The new value of the config'
70
-			)
71
-			->addOption(
72
-				'update-only',
73
-				null,
74
-				InputOption::VALUE_NONE,
75
-				'Only updates the value, if it is not set before, it is not being added'
76
-			)
77
-		;
78
-	}
79
-
80
-	protected function execute(InputInterface $input, OutputInterface $output): int {
81
-		$configNames = $input->getArgument('name');
82
-		$configName = $configNames[0];
83
-		$configValue = $this->castValue($input->getOption('value'), $input->getOption('type'));
84
-		$updateOnly = $input->getOption('update-only');
85
-
86
-		if (count($configNames) > 1) {
87
-			$existingValue = $this->systemConfig->getValue($configName);
88
-
89
-			$newValue = $this->mergeArrayValue(
90
-				array_slice($configNames, 1), $existingValue, $configValue['value'], $updateOnly
91
-			);
92
-
93
-			$this->systemConfig->setValue($configName, $newValue);
94
-		} else {
95
-			if ($updateOnly && !in_array($configName, $this->systemConfig->getKeys(), true)) {
96
-				throw new \UnexpectedValueException('Config parameter does not exist');
97
-			}
98
-
99
-			$this->systemConfig->setValue($configName, $configValue['value']);
100
-		}
101
-
102
-		$output->writeln('<info>System config value ' . implode(' => ', $configNames) . ' set to ' . $configValue['readable-value'] . '</info>');
103
-		return 0;
104
-	}
105
-
106
-	/**
107
-	 * @param string $value
108
-	 * @param string $type
109
-	 * @return mixed
110
-	 * @throws \InvalidArgumentException
111
-	 */
112
-	protected function castValue($value, $type) {
113
-		switch ($type) {
114
-			case 'integer':
115
-			case 'int':
116
-				if (!is_numeric($value)) {
117
-					throw new \InvalidArgumentException('Non-numeric value specified');
118
-				}
119
-				return [
120
-					'value' => (int) $value,
121
-					'readable-value' => 'integer ' . (int) $value,
122
-				];
123
-
124
-			case 'double':
125
-			case 'float':
126
-				if (!is_numeric($value)) {
127
-					throw new \InvalidArgumentException('Non-numeric value specified');
128
-				}
129
-				return [
130
-					'value' => (double) $value,
131
-					'readable-value' => 'double ' . (double) $value,
132
-				];
133
-
134
-			case 'boolean':
135
-			case 'bool':
136
-				$value = strtolower($value);
137
-				switch ($value) {
138
-					case 'true':
139
-						return [
140
-							'value' => true,
141
-							'readable-value' => 'boolean ' . $value,
142
-						];
143
-
144
-					case 'false':
145
-						return [
146
-							'value' => false,
147
-							'readable-value' => 'boolean ' . $value,
148
-						];
149
-
150
-					default:
151
-						throw new \InvalidArgumentException('Unable to parse value as boolean');
152
-				}
153
-
154
-				// no break
155
-			case 'null':
156
-				return [
157
-					'value' => null,
158
-					'readable-value' => 'null',
159
-				];
160
-
161
-			case 'string':
162
-				$value = (string) $value;
163
-				return [
164
-					'value' => $value,
165
-					'readable-value' => ($value === '') ? 'empty string' : 'string ' . $value,
166
-				];
167
-
168
-			default:
169
-				throw new \InvalidArgumentException('Invalid type');
170
-		}
171
-	}
172
-
173
-	/**
174
-	 * @param array $configNames
175
-	 * @param mixed $existingValues
176
-	 * @param mixed $value
177
-	 * @param bool $updateOnly
178
-	 * @return array merged value
179
-	 * @throws \UnexpectedValueException
180
-	 */
181
-	protected function mergeArrayValue(array $configNames, $existingValues, $value, $updateOnly) {
182
-		$configName = array_shift($configNames);
183
-		if (!is_array($existingValues)) {
184
-			$existingValues = [];
185
-		}
186
-		if (!empty($configNames)) {
187
-			if (isset($existingValues[$configName])) {
188
-				$existingValue = $existingValues[$configName];
189
-			} else {
190
-				$existingValue = [];
191
-			}
192
-			$existingValues[$configName] = $this->mergeArrayValue($configNames, $existingValue, $value, $updateOnly);
193
-		} else {
194
-			if (!isset($existingValues[$configName]) && $updateOnly) {
195
-				throw new \UnexpectedValueException('Config parameter does not exist');
196
-			}
197
-			$existingValues[$configName] = $value;
198
-		}
199
-		return $existingValues;
200
-	}
201
-
202
-	/**
203
-	 * @param string $optionName
204
-	 * @param CompletionContext $context
205
-	 * @return string[]
206
-	 */
207
-	public function completeOptionValues($optionName, CompletionContext $context) {
208
-		if ($optionName === 'type') {
209
-			return ['string', 'integer', 'double', 'boolean'];
210
-		}
211
-		return parent::completeOptionValues($optionName, $context);
212
-	}
36
+    /** * @var SystemConfig */
37
+    protected $systemConfig;
38
+
39
+    /**
40
+     * @param SystemConfig $systemConfig
41
+     */
42
+    public function __construct(SystemConfig $systemConfig) {
43
+        parent::__construct();
44
+        $this->systemConfig = $systemConfig;
45
+    }
46
+
47
+    protected function configure() {
48
+        parent::configure();
49
+
50
+        $this
51
+            ->setName('config:system:set')
52
+            ->setDescription('Set a system config value')
53
+            ->addArgument(
54
+                'name',
55
+                InputArgument::REQUIRED | InputArgument::IS_ARRAY,
56
+                'Name of the config parameter, specify multiple for array parameter'
57
+            )
58
+            ->addOption(
59
+                'type',
60
+                null,
61
+                InputOption::VALUE_REQUIRED,
62
+                'Value type [string, integer, double, boolean]',
63
+                'string'
64
+            )
65
+            ->addOption(
66
+                'value',
67
+                null,
68
+                InputOption::VALUE_REQUIRED,
69
+                'The new value of the config'
70
+            )
71
+            ->addOption(
72
+                'update-only',
73
+                null,
74
+                InputOption::VALUE_NONE,
75
+                'Only updates the value, if it is not set before, it is not being added'
76
+            )
77
+        ;
78
+    }
79
+
80
+    protected function execute(InputInterface $input, OutputInterface $output): int {
81
+        $configNames = $input->getArgument('name');
82
+        $configName = $configNames[0];
83
+        $configValue = $this->castValue($input->getOption('value'), $input->getOption('type'));
84
+        $updateOnly = $input->getOption('update-only');
85
+
86
+        if (count($configNames) > 1) {
87
+            $existingValue = $this->systemConfig->getValue($configName);
88
+
89
+            $newValue = $this->mergeArrayValue(
90
+                array_slice($configNames, 1), $existingValue, $configValue['value'], $updateOnly
91
+            );
92
+
93
+            $this->systemConfig->setValue($configName, $newValue);
94
+        } else {
95
+            if ($updateOnly && !in_array($configName, $this->systemConfig->getKeys(), true)) {
96
+                throw new \UnexpectedValueException('Config parameter does not exist');
97
+            }
98
+
99
+            $this->systemConfig->setValue($configName, $configValue['value']);
100
+        }
101
+
102
+        $output->writeln('<info>System config value ' . implode(' => ', $configNames) . ' set to ' . $configValue['readable-value'] . '</info>');
103
+        return 0;
104
+    }
105
+
106
+    /**
107
+     * @param string $value
108
+     * @param string $type
109
+     * @return mixed
110
+     * @throws \InvalidArgumentException
111
+     */
112
+    protected function castValue($value, $type) {
113
+        switch ($type) {
114
+            case 'integer':
115
+            case 'int':
116
+                if (!is_numeric($value)) {
117
+                    throw new \InvalidArgumentException('Non-numeric value specified');
118
+                }
119
+                return [
120
+                    'value' => (int) $value,
121
+                    'readable-value' => 'integer ' . (int) $value,
122
+                ];
123
+
124
+            case 'double':
125
+            case 'float':
126
+                if (!is_numeric($value)) {
127
+                    throw new \InvalidArgumentException('Non-numeric value specified');
128
+                }
129
+                return [
130
+                    'value' => (double) $value,
131
+                    'readable-value' => 'double ' . (double) $value,
132
+                ];
133
+
134
+            case 'boolean':
135
+            case 'bool':
136
+                $value = strtolower($value);
137
+                switch ($value) {
138
+                    case 'true':
139
+                        return [
140
+                            'value' => true,
141
+                            'readable-value' => 'boolean ' . $value,
142
+                        ];
143
+
144
+                    case 'false':
145
+                        return [
146
+                            'value' => false,
147
+                            'readable-value' => 'boolean ' . $value,
148
+                        ];
149
+
150
+                    default:
151
+                        throw new \InvalidArgumentException('Unable to parse value as boolean');
152
+                }
153
+
154
+                // no break
155
+            case 'null':
156
+                return [
157
+                    'value' => null,
158
+                    'readable-value' => 'null',
159
+                ];
160
+
161
+            case 'string':
162
+                $value = (string) $value;
163
+                return [
164
+                    'value' => $value,
165
+                    'readable-value' => ($value === '') ? 'empty string' : 'string ' . $value,
166
+                ];
167
+
168
+            default:
169
+                throw new \InvalidArgumentException('Invalid type');
170
+        }
171
+    }
172
+
173
+    /**
174
+     * @param array $configNames
175
+     * @param mixed $existingValues
176
+     * @param mixed $value
177
+     * @param bool $updateOnly
178
+     * @return array merged value
179
+     * @throws \UnexpectedValueException
180
+     */
181
+    protected function mergeArrayValue(array $configNames, $existingValues, $value, $updateOnly) {
182
+        $configName = array_shift($configNames);
183
+        if (!is_array($existingValues)) {
184
+            $existingValues = [];
185
+        }
186
+        if (!empty($configNames)) {
187
+            if (isset($existingValues[$configName])) {
188
+                $existingValue = $existingValues[$configName];
189
+            } else {
190
+                $existingValue = [];
191
+            }
192
+            $existingValues[$configName] = $this->mergeArrayValue($configNames, $existingValue, $value, $updateOnly);
193
+        } else {
194
+            if (!isset($existingValues[$configName]) && $updateOnly) {
195
+                throw new \UnexpectedValueException('Config parameter does not exist');
196
+            }
197
+            $existingValues[$configName] = $value;
198
+        }
199
+        return $existingValues;
200
+    }
201
+
202
+    /**
203
+     * @param string $optionName
204
+     * @param CompletionContext $context
205
+     * @return string[]
206
+     */
207
+    public function completeOptionValues($optionName, CompletionContext $context) {
208
+        if ($optionName === 'type') {
209
+            return ['string', 'integer', 'double', 'boolean'];
210
+        }
211
+        return parent::completeOptionValues($optionName, $context);
212
+    }
213 213
 }
Please login to merge, or discard this patch.