Completed
Pull Request — master (#3531)
by Julius
37:26 queued 25:09
created
apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php 2 patches
Indentation   +126 added lines, -126 removed lines patch added patch discarded remove patch
@@ -45,20 +45,20 @@  discard block
 block discarded – undo
45 45
  */
46 46
 class SharingCheckMiddleware extends Middleware {
47 47
 
48
-	/** @var string */
49
-	protected $appName;
50
-	/** @var IConfig */
51
-	protected $config;
52
-	/** @var IAppManager */
53
-	protected $appManager;
54
-	/** @var IControllerMethodReflector */
55
-	protected $reflector;
56
-	/** @var IManager */
57
-	protected $shareManager;
58
-	/** @var IRequest */
59
-	protected $request;
60
-
61
-	/***
48
+    /** @var string */
49
+    protected $appName;
50
+    /** @var IConfig */
51
+    protected $config;
52
+    /** @var IAppManager */
53
+    protected $appManager;
54
+    /** @var IControllerMethodReflector */
55
+    protected $reflector;
56
+    /** @var IManager */
57
+    protected $shareManager;
58
+    /** @var IRequest */
59
+    protected $request;
60
+
61
+    /***
62 62
 	 * @param string $appName
63 63
 	 * @param IConfig $config
64 64
 	 * @param IAppManager $appManager
@@ -66,117 +66,117 @@  discard block
 block discarded – undo
66 66
 	 * @param IManager $shareManager
67 67
 	 * @param IRequest $request
68 68
 	 */
69
-	public function __construct($appName,
70
-								IConfig $config,
71
-								IAppManager $appManager,
72
-								IControllerMethodReflector $reflector,
73
-								IManager $shareManager,
74
-								IRequest $request
75
-								) {
76
-		$this->appName = $appName;
77
-		$this->config = $config;
78
-		$this->appManager = $appManager;
79
-		$this->reflector = $reflector;
80
-		$this->shareManager = $shareManager;
81
-		$this->request = $request;
82
-	}
83
-
84
-	/**
85
-	 * Check if sharing is enabled before the controllers is executed
86
-	 *
87
-	 * @param \OCP\AppFramework\Controller $controller
88
-	 * @param string $methodName
89
-	 * @throws NotFoundException
90
-	 * @throws S2SException
91
-	 */
92
-	public function beforeController($controller, $methodName) {
93
-		if(!$this->isSharingEnabled()) {
94
-			throw new NotFoundException('Sharing is disabled.');
95
-		}
96
-
97
-		if ($controller instanceof ExternalSharesController &&
98
-			!$this->externalSharesChecks()) {
99
-			throw new S2SException('Federated sharing not allowed');
100
-		} else if ($controller instanceof ShareController) {
101
-			$token = $this->request->getParam('token');
102
-			$share = $this->shareManager->getShareByToken($token);
103
-			if ($share->getShareType() === \OCP\Share::SHARE_TYPE_LINK
104
-				&& !$this->isLinkSharingEnabled()) {
105
-				throw new NotFoundException('Link sharing is disabled');
106
-			}
107
-		}
108
-	}
109
-
110
-	/**
111
-	 * Return 404 page in case of a not found exception
112
-	 *
113
-	 * @param \OCP\AppFramework\Controller $controller
114
-	 * @param string $methodName
115
-	 * @param \Exception $exception
116
-	 * @return NotFoundResponse
117
-	 * @throws \Exception
118
-	 */
119
-	public function afterException($controller, $methodName, \Exception $exception) {
120
-		if(is_a($exception, '\OCP\Files\NotFoundException')) {
121
-			return new NotFoundResponse();
122
-		}
123
-
124
-		if (is_a($exception, '\OCA\Files_Sharing\Exceptions\S2SException')) {
125
-			return new JSONResponse($exception->getMessage(), 405);
126
-		}
127
-
128
-		throw $exception;
129
-	}
130
-
131
-	/**
132
-	 * Checks for externalshares controller
133
-	 * @return bool
134
-	 */
135
-	private function externalSharesChecks() {
136
-
137
-		if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired') &&
138
-			$this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') {
139
-			return false;
140
-		}
141
-
142
-		if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired') &&
143
-		    $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') {
144
-			return false;
145
-		}
146
-
147
-		return true;
148
-	}
149
-
150
-	/**
151
-	 * Check whether sharing is enabled
152
-	 * @return bool
153
-	 */
154
-	private function isSharingEnabled() {
155
-		// FIXME: This check is done here since the route is globally defined and not inside the files_sharing app
156
-		// Check whether the sharing application is enabled
157
-		if(!$this->appManager->isEnabledForUser($this->appName)) {
158
-			return false;
159
-		}
160
-
161
-		return true;
162
-	}
163
-
164
-	/**
165
-	 * Check if link sharing is allowed
166
-	 * @return bool
167
-	 */
168
-	private function isLinkSharingEnabled() {
169
-		// Check if the shareAPI is enabled
170
-		if ($this->config->getAppValue('core', 'shareapi_enabled', 'yes') !== 'yes') {
171
-			return false;
172
-		}
173
-
174
-		// Check whether public sharing is enabled
175
-		if($this->config->getAppValue('core', 'shareapi_allow_links', 'yes') !== 'yes') {
176
-			return false;
177
-		}
178
-
179
-		return true;
180
-	}
69
+    public function __construct($appName,
70
+                                IConfig $config,
71
+                                IAppManager $appManager,
72
+                                IControllerMethodReflector $reflector,
73
+                                IManager $shareManager,
74
+                                IRequest $request
75
+                                ) {
76
+        $this->appName = $appName;
77
+        $this->config = $config;
78
+        $this->appManager = $appManager;
79
+        $this->reflector = $reflector;
80
+        $this->shareManager = $shareManager;
81
+        $this->request = $request;
82
+    }
83
+
84
+    /**
85
+     * Check if sharing is enabled before the controllers is executed
86
+     *
87
+     * @param \OCP\AppFramework\Controller $controller
88
+     * @param string $methodName
89
+     * @throws NotFoundException
90
+     * @throws S2SException
91
+     */
92
+    public function beforeController($controller, $methodName) {
93
+        if(!$this->isSharingEnabled()) {
94
+            throw new NotFoundException('Sharing is disabled.');
95
+        }
96
+
97
+        if ($controller instanceof ExternalSharesController &&
98
+            !$this->externalSharesChecks()) {
99
+            throw new S2SException('Federated sharing not allowed');
100
+        } else if ($controller instanceof ShareController) {
101
+            $token = $this->request->getParam('token');
102
+            $share = $this->shareManager->getShareByToken($token);
103
+            if ($share->getShareType() === \OCP\Share::SHARE_TYPE_LINK
104
+                && !$this->isLinkSharingEnabled()) {
105
+                throw new NotFoundException('Link sharing is disabled');
106
+            }
107
+        }
108
+    }
109
+
110
+    /**
111
+     * Return 404 page in case of a not found exception
112
+     *
113
+     * @param \OCP\AppFramework\Controller $controller
114
+     * @param string $methodName
115
+     * @param \Exception $exception
116
+     * @return NotFoundResponse
117
+     * @throws \Exception
118
+     */
119
+    public function afterException($controller, $methodName, \Exception $exception) {
120
+        if(is_a($exception, '\OCP\Files\NotFoundException')) {
121
+            return new NotFoundResponse();
122
+        }
123
+
124
+        if (is_a($exception, '\OCA\Files_Sharing\Exceptions\S2SException')) {
125
+            return new JSONResponse($exception->getMessage(), 405);
126
+        }
127
+
128
+        throw $exception;
129
+    }
130
+
131
+    /**
132
+     * Checks for externalshares controller
133
+     * @return bool
134
+     */
135
+    private function externalSharesChecks() {
136
+
137
+        if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired') &&
138
+            $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') {
139
+            return false;
140
+        }
141
+
142
+        if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired') &&
143
+            $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') {
144
+            return false;
145
+        }
146
+
147
+        return true;
148
+    }
149
+
150
+    /**
151
+     * Check whether sharing is enabled
152
+     * @return bool
153
+     */
154
+    private function isSharingEnabled() {
155
+        // FIXME: This check is done here since the route is globally defined and not inside the files_sharing app
156
+        // Check whether the sharing application is enabled
157
+        if(!$this->appManager->isEnabledForUser($this->appName)) {
158
+            return false;
159
+        }
160
+
161
+        return true;
162
+    }
163
+
164
+    /**
165
+     * Check if link sharing is allowed
166
+     * @return bool
167
+     */
168
+    private function isLinkSharingEnabled() {
169
+        // Check if the shareAPI is enabled
170
+        if ($this->config->getAppValue('core', 'shareapi_enabled', 'yes') !== 'yes') {
171
+            return false;
172
+        }
173
+
174
+        // Check whether public sharing is enabled
175
+        if($this->config->getAppValue('core', 'shareapi_allow_links', 'yes') !== 'yes') {
176
+            return false;
177
+        }
178
+
179
+        return true;
180
+    }
181 181
 
182 182
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
 	 * @throws S2SException
91 91
 	 */
92 92
 	public function beforeController($controller, $methodName) {
93
-		if(!$this->isSharingEnabled()) {
93
+		if (!$this->isSharingEnabled()) {
94 94
 			throw new NotFoundException('Sharing is disabled.');
95 95
 		}
96 96
 
@@ -117,7 +117,7 @@  discard block
 block discarded – undo
117 117
 	 * @throws \Exception
118 118
 	 */
119 119
 	public function afterException($controller, $methodName, \Exception $exception) {
120
-		if(is_a($exception, '\OCP\Files\NotFoundException')) {
120
+		if (is_a($exception, '\OCP\Files\NotFoundException')) {
121 121
 			return new NotFoundResponse();
122 122
 		}
123 123
 
@@ -154,7 +154,7 @@  discard block
 block discarded – undo
154 154
 	private function isSharingEnabled() {
155 155
 		// FIXME: This check is done here since the route is globally defined and not inside the files_sharing app
156 156
 		// Check whether the sharing application is enabled
157
-		if(!$this->appManager->isEnabledForUser($this->appName)) {
157
+		if (!$this->appManager->isEnabledForUser($this->appName)) {
158 158
 			return false;
159 159
 		}
160 160
 
@@ -172,7 +172,7 @@  discard block
 block discarded – undo
172 172
 		}
173 173
 
174 174
 		// Check whether public sharing is enabled
175
-		if($this->config->getAppValue('core', 'shareapi_allow_links', 'yes') !== 'yes') {
175
+		if ($this->config->getAppValue('core', 'shareapi_allow_links', 'yes') !== 'yes') {
176 176
 			return false;
177 177
 		}
178 178
 
Please login to merge, or discard this patch.
apps/files_sharing/lib/SharedStorage.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
 	 * @return string
161 161
 	 */
162 162
 	public function getId() {
163
-		return 'shared::' . $this->getMountPoint();
163
+		return 'shared::'.$this->getMountPoint();
164 164
 	}
165 165
 
166 166
 	/**
@@ -256,7 +256,7 @@  discard block
 block discarded – undo
256 256
 					}
257 257
 			}
258 258
 			$info = array(
259
-				'target' => $this->getMountPoint() . $path,
259
+				'target' => $this->getMountPoint().$path,
260 260
 				'source' => $source,
261 261
 				'mode' => $mode,
262 262
 			);
@@ -457,7 +457,7 @@  discard block
 block discarded – undo
457 457
 
458 458
 	public function file_get_contents($path) {
459 459
 		$info = [
460
-			'target' => $this->getMountPoint() . '/' . $path,
460
+			'target' => $this->getMountPoint().'/'.$path,
461 461
 			'source' => $this->getSourcePath($path),
462 462
 		];
463 463
 		\OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info);
@@ -466,7 +466,7 @@  discard block
 block discarded – undo
466 466
 
467 467
 	public function file_put_contents($path, $data) {
468 468
 		$info = [
469
-			'target' => $this->getMountPoint() . '/' . $path,
469
+			'target' => $this->getMountPoint().'/'.$path,
470 470
 			'source' => $this->getSourcePath($path),
471 471
 		];
472 472
 		\OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info);
Please login to merge, or discard this patch.
Indentation   +445 added lines, -445 removed lines patch added patch discarded remove patch
@@ -47,449 +47,449 @@
 block discarded – undo
47 47
  */
48 48
 class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedStorage {
49 49
 
50
-	/** @var \OCP\Share\IShare */
51
-	private $superShare;
52
-
53
-	/** @var \OCP\Share\IShare[] */
54
-	private $groupedShares;
55
-
56
-	/**
57
-	 * @var \OC\Files\View
58
-	 */
59
-	private $ownerView;
60
-
61
-	private $initialized = false;
62
-
63
-	/**
64
-	 * @var ICacheEntry
65
-	 */
66
-	private $sourceRootInfo;
67
-
68
-	/** @var string */
69
-	private $user;
70
-
71
-	/**
72
-	 * @var \OCP\ILogger
73
-	 */
74
-	private $logger;
75
-
76
-	/** @var  IStorage */
77
-	private $nonMaskedStorage;
78
-
79
-	private $options;
80
-
81
-	public function __construct($arguments) {
82
-		$this->ownerView = $arguments['ownerView'];
83
-		$this->logger = \OC::$server->getLogger();
84
-
85
-		$this->superShare = $arguments['superShare'];
86
-		$this->groupedShares = $arguments['groupedShares'];
87
-
88
-		$this->user = $arguments['user'];
89
-
90
-		parent::__construct([
91
-			'storage' => null,
92
-			'root' => null,
93
-		]);
94
-	}
95
-
96
-	/**
97
-	 * @return ICacheEntry
98
-	 */
99
-	private function getSourceRootInfo() {
100
-		if (is_null($this->sourceRootInfo)) {
101
-			if (is_null($this->superShare->getNodeCacheEntry())) {
102
-				$this->init();
103
-				$this->sourceRootInfo = $this->nonMaskedStorage->getCache()->get($this->rootPath);
104
-			} else {
105
-				$this->sourceRootInfo = $this->superShare->getNodeCacheEntry();
106
-			}
107
-		}
108
-		return $this->sourceRootInfo;
109
-	}
110
-
111
-	private function init() {
112
-		if ($this->initialized) {
113
-			return;
114
-		}
115
-		$this->initialized = true;
116
-		try {
117
-			Filesystem::initMountPoints($this->superShare->getShareOwner());
118
-			$sourcePath = $this->ownerView->getPath($this->superShare->getNodeId());
119
-			list($this->nonMaskedStorage, $this->rootPath) = $this->ownerView->resolvePath($sourcePath);
120
-			$this->storage = new PermissionsMask([
121
-				'storage' => $this->nonMaskedStorage,
122
-				'mask' => $this->superShare->getPermissions()
123
-			]);
124
-		} catch (NotFoundException $e) {
125
-			// original file not accessible or deleted, set FailedStorage
126
-			$this->storage = new FailedStorage(['exception' => $e]);
127
-			$this->cache = new FailedCache();
128
-			$this->rootPath = '';
129
-		} catch (NoUserException $e) {
130
-			// sharer user deleted, set FailedStorage
131
-			$this->storage = new FailedStorage(['exception' => $e]);
132
-			$this->cache = new FailedCache();
133
-			$this->rootPath = '';
134
-		} catch (\Exception $e) {
135
-			$this->storage = new FailedStorage(['exception' => $e]);
136
-			$this->cache = new FailedCache();
137
-			$this->rootPath = '';
138
-			$this->logger->logException($e);
139
-		}
140
-
141
-		if (!$this->nonMaskedStorage) {
142
-			$this->nonMaskedStorage = $this->storage;
143
-		}
144
-	}
145
-
146
-	/**
147
-	 * @inheritdoc
148
-	 */
149
-	public function instanceOfStorage($class) {
150
-		if ($class === '\OC\Files\Storage\Common') {
151
-			return true;
152
-		}
153
-		if (in_array($class, ['\OC\Files\Storage\Home', '\OC\Files\ObjectStore\HomeObjectStoreStorage'])) {
154
-			return false;
155
-		}
156
-		return parent::instanceOfStorage($class);
157
-	}
158
-
159
-	/**
160
-	 * @return string
161
-	 */
162
-	public function getShareId() {
163
-		return $this->superShare->getId();
164
-	}
165
-
166
-	private function isValid() {
167
-		return $this->getSourceRootInfo() && ($this->getSourceRootInfo()->getPermissions() & Constants::PERMISSION_SHARE) === Constants::PERMISSION_SHARE;
168
-	}
169
-
170
-	/**
171
-	 * get id of the mount point
172
-	 *
173
-	 * @return string
174
-	 */
175
-	public function getId() {
176
-		return 'shared::' . $this->getMountPoint();
177
-	}
178
-
179
-	/**
180
-	 * Get the permissions granted for a shared file
181
-	 *
182
-	 * @param string $target Shared target file path
183
-	 * @return int CRUDS permissions granted
184
-	 */
185
-	public function getPermissions($target = '') {
186
-		if (!$this->isValid()) {
187
-			return 0;
188
-		}
189
-		$permissions = $this->superShare->getPermissions();
190
-		// part files and the mount point always have delete permissions
191
-		if ($target === '' || pathinfo($target, PATHINFO_EXTENSION) === 'part') {
192
-			$permissions |= \OCP\Constants::PERMISSION_DELETE;
193
-		}
194
-
195
-		if (\OCP\Util::isSharingDisabledForUser()) {
196
-			$permissions &= ~\OCP\Constants::PERMISSION_SHARE;
197
-		}
198
-
199
-		return $permissions;
200
-	}
201
-
202
-	public function isCreatable($path) {
203
-		return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_CREATE);
204
-	}
205
-
206
-	public function isReadable($path) {
207
-		if (!$this->isValid()) {
208
-			return false;
209
-		}
210
-		if (!$this->file_exists($path)) {
211
-			return false;
212
-		}
213
-		/** @var IStorage $storage */
214
-		/** @var string $internalPath */
215
-		list($storage, $internalPath) = $this->resolvePath($path);
216
-		return $storage->isReadable($internalPath);
217
-	}
218
-
219
-	public function isUpdatable($path) {
220
-		return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_UPDATE);
221
-	}
222
-
223
-	public function isDeletable($path) {
224
-		return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_DELETE);
225
-	}
226
-
227
-	public function isSharable($path) {
228
-		if (\OCP\Util::isSharingDisabledForUser() || !\OC\Share\Share::isResharingAllowed()) {
229
-			return false;
230
-		}
231
-		return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_SHARE);
232
-	}
233
-
234
-	public function fopen($path, $mode) {
235
-		if ($source = $this->getSourcePath($path)) {
236
-			switch ($mode) {
237
-				case 'r+':
238
-				case 'rb+':
239
-				case 'w+':
240
-				case 'wb+':
241
-				case 'x+':
242
-				case 'xb+':
243
-				case 'a+':
244
-				case 'ab+':
245
-				case 'w':
246
-				case 'wb':
247
-				case 'x':
248
-				case 'xb':
249
-				case 'a':
250
-				case 'ab':
251
-					$creatable = $this->isCreatable($path);
252
-					$updatable = $this->isUpdatable($path);
253
-					// if neither permissions given, no need to continue
254
-					if (!$creatable && !$updatable) {
255
-						return false;
256
-					}
257
-
258
-					$exists = $this->file_exists($path);
259
-					// if a file exists, updatable permissions are required
260
-					if ($exists && !$updatable) {
261
-						return false;
262
-					}
263
-
264
-					// part file is allowed if !$creatable but the final file is $updatable
265
-					if (pathinfo($path, PATHINFO_EXTENSION) !== 'part') {
266
-						if (!$exists && !$creatable) {
267
-							return false;
268
-						}
269
-					}
270
-			}
271
-			$info = array(
272
-				'target' => $this->getMountPoint() . $path,
273
-				'source' => $source,
274
-				'mode' => $mode,
275
-			);
276
-			\OCP\Util::emitHook('\OC\Files\Storage\Shared', 'fopen', $info);
277
-			return $this->nonMaskedStorage->fopen($this->getSourcePath($path), $mode);
278
-		}
279
-		return false;
280
-	}
281
-
282
-	/**
283
-	 * see http://php.net/manual/en/function.rename.php
284
-	 *
285
-	 * @param string $path1
286
-	 * @param string $path2
287
-	 * @return bool
288
-	 */
289
-	public function rename($path1, $path2) {
290
-		$this->init();
291
-		$isPartFile = pathinfo($path1, PATHINFO_EXTENSION) === 'part';
292
-		$targetExists = $this->file_exists($path2);
293
-		$sameFodler = dirname($path1) === dirname($path2);
294
-
295
-		if ($targetExists || ($sameFodler && !$isPartFile)) {
296
-			if (!$this->isUpdatable('')) {
297
-				return false;
298
-			}
299
-		} else {
300
-			if (!$this->isCreatable('')) {
301
-				return false;
302
-			}
303
-		}
304
-
305
-		return $this->nonMaskedStorage->rename($this->getSourcePath($path1), $this->getSourcePath($path2));
306
-	}
307
-
308
-	/**
309
-	 * return mount point of share, relative to data/user/files
310
-	 *
311
-	 * @return string
312
-	 */
313
-	public function getMountPoint() {
314
-		return $this->superShare->getTarget();
315
-	}
316
-
317
-	/**
318
-	 * @param string $path
319
-	 */
320
-	public function setMountPoint($path) {
321
-		$this->superShare->setTarget($path);
322
-
323
-		foreach ($this->groupedShares as $share) {
324
-			$share->setTarget($path);
325
-		}
326
-	}
327
-
328
-	/**
329
-	 * get the user who shared the file
330
-	 *
331
-	 * @return string
332
-	 */
333
-	public function getSharedFrom() {
334
-		return $this->superShare->getShareOwner();
335
-	}
336
-
337
-	/**
338
-	 * @return \OCP\Share\IShare
339
-	 */
340
-	public function getShare() {
341
-		return $this->superShare;
342
-	}
343
-
344
-	/**
345
-	 * return share type, can be "file" or "folder"
346
-	 *
347
-	 * @return string
348
-	 */
349
-	public function getItemType() {
350
-		return $this->superShare->getNodeType();
351
-	}
352
-
353
-	public function getCache($path = '', $storage = null) {
354
-		if ($this->cache) {
355
-			return $this->cache;
356
-		}
357
-		if (!$storage) {
358
-			$storage = $this;
359
-		}
360
-		if ($this->storage instanceof FailedStorage) {
361
-			return new FailedCache();
362
-		}
363
-		$this->cache = new \OCA\Files_Sharing\Cache($storage, $this->getSourceRootInfo(), $this->superShare);
364
-		return $this->cache;
365
-	}
366
-
367
-	public function getScanner($path = '', $storage = null) {
368
-		if (!$storage) {
369
-			$storage = $this;
370
-		}
371
-		return new \OCA\Files_Sharing\Scanner($storage);
372
-	}
373
-
374
-	public function getPropagator($storage = null) {
375
-		if (isset($this->propagator)) {
376
-			return $this->propagator;
377
-		}
378
-
379
-		if (!$storage) {
380
-			$storage = $this;
381
-		}
382
-		$this->propagator = new \OCA\Files_Sharing\SharedPropagator($storage, \OC::$server->getDatabaseConnection());
383
-		return $this->propagator;
384
-	}
385
-
386
-	public function getOwner($path) {
387
-		return $this->superShare->getShareOwner();
388
-	}
389
-
390
-	/**
391
-	 * unshare complete storage, also the grouped shares
392
-	 *
393
-	 * @return bool
394
-	 */
395
-	public function unshareStorage() {
396
-		foreach ($this->groupedShares as $share) {
397
-			\OC::$server->getShareManager()->deleteFromSelf($share, $this->user);
398
-		}
399
-		return true;
400
-	}
401
-
402
-	/**
403
-	 * @param string $path
404
-	 * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
405
-	 * @param \OCP\Lock\ILockingProvider $provider
406
-	 * @throws \OCP\Lock\LockedException
407
-	 */
408
-	public function acquireLock($path, $type, ILockingProvider $provider) {
409
-		/** @var \OCP\Files\Storage $targetStorage */
410
-		list($targetStorage, $targetInternalPath) = $this->resolvePath($path);
411
-		$targetStorage->acquireLock($targetInternalPath, $type, $provider);
412
-		// lock the parent folders of the owner when locking the share as recipient
413
-		if ($path === '') {
414
-			$sourcePath = $this->ownerView->getPath($this->superShare->getNodeId());
415
-			$this->ownerView->lockFile(dirname($sourcePath), ILockingProvider::LOCK_SHARED, true);
416
-		}
417
-	}
418
-
419
-	/**
420
-	 * @param string $path
421
-	 * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
422
-	 * @param \OCP\Lock\ILockingProvider $provider
423
-	 */
424
-	public function releaseLock($path, $type, ILockingProvider $provider) {
425
-		/** @var \OCP\Files\Storage $targetStorage */
426
-		list($targetStorage, $targetInternalPath) = $this->resolvePath($path);
427
-		$targetStorage->releaseLock($targetInternalPath, $type, $provider);
428
-		// unlock the parent folders of the owner when unlocking the share as recipient
429
-		if ($path === '') {
430
-			$sourcePath = $this->ownerView->getPath($this->superShare->getNodeId());
431
-			$this->ownerView->unlockFile(dirname($sourcePath), ILockingProvider::LOCK_SHARED, true);
432
-		}
433
-	}
434
-
435
-	/**
436
-	 * @param string $path
437
-	 * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
438
-	 * @param \OCP\Lock\ILockingProvider $provider
439
-	 */
440
-	public function changeLock($path, $type, ILockingProvider $provider) {
441
-		/** @var \OCP\Files\Storage $targetStorage */
442
-		list($targetStorage, $targetInternalPath) = $this->resolvePath($path);
443
-		$targetStorage->changeLock($targetInternalPath, $type, $provider);
444
-	}
445
-
446
-	/**
447
-	 * @return array [ available, last_checked ]
448
-	 */
449
-	public function getAvailability() {
450
-		// shares do not participate in availability logic
451
-		return [
452
-			'available' => true,
453
-			'last_checked' => 0
454
-		];
455
-	}
456
-
457
-	/**
458
-	 * @param bool $available
459
-	 */
460
-	public function setAvailability($available) {
461
-		// shares do not participate in availability logic
462
-	}
463
-
464
-	public function getSourceStorage() {
465
-		$this->init();
466
-		return $this->nonMaskedStorage;
467
-	}
468
-
469
-	public function getWrapperStorage() {
470
-		$this->init();
471
-		return $this->storage;
472
-	}
473
-
474
-	public function file_get_contents($path) {
475
-		$info = [
476
-			'target' => $this->getMountPoint() . '/' . $path,
477
-			'source' => $this->getSourcePath($path),
478
-		];
479
-		\OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info);
480
-		return parent::file_get_contents($path);
481
-	}
482
-
483
-	public function file_put_contents($path, $data) {
484
-		$info = [
485
-			'target' => $this->getMountPoint() . '/' . $path,
486
-			'source' => $this->getSourcePath($path),
487
-		];
488
-		\OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info);
489
-		return parent::file_put_contents($path, $data);
490
-	}
491
-
492
-	public function setMountOptions(array $options) {
493
-		$this->mountOptions = $options;
494
-	}
50
+    /** @var \OCP\Share\IShare */
51
+    private $superShare;
52
+
53
+    /** @var \OCP\Share\IShare[] */
54
+    private $groupedShares;
55
+
56
+    /**
57
+     * @var \OC\Files\View
58
+     */
59
+    private $ownerView;
60
+
61
+    private $initialized = false;
62
+
63
+    /**
64
+     * @var ICacheEntry
65
+     */
66
+    private $sourceRootInfo;
67
+
68
+    /** @var string */
69
+    private $user;
70
+
71
+    /**
72
+     * @var \OCP\ILogger
73
+     */
74
+    private $logger;
75
+
76
+    /** @var  IStorage */
77
+    private $nonMaskedStorage;
78
+
79
+    private $options;
80
+
81
+    public function __construct($arguments) {
82
+        $this->ownerView = $arguments['ownerView'];
83
+        $this->logger = \OC::$server->getLogger();
84
+
85
+        $this->superShare = $arguments['superShare'];
86
+        $this->groupedShares = $arguments['groupedShares'];
87
+
88
+        $this->user = $arguments['user'];
89
+
90
+        parent::__construct([
91
+            'storage' => null,
92
+            'root' => null,
93
+        ]);
94
+    }
95
+
96
+    /**
97
+     * @return ICacheEntry
98
+     */
99
+    private function getSourceRootInfo() {
100
+        if (is_null($this->sourceRootInfo)) {
101
+            if (is_null($this->superShare->getNodeCacheEntry())) {
102
+                $this->init();
103
+                $this->sourceRootInfo = $this->nonMaskedStorage->getCache()->get($this->rootPath);
104
+            } else {
105
+                $this->sourceRootInfo = $this->superShare->getNodeCacheEntry();
106
+            }
107
+        }
108
+        return $this->sourceRootInfo;
109
+    }
110
+
111
+    private function init() {
112
+        if ($this->initialized) {
113
+            return;
114
+        }
115
+        $this->initialized = true;
116
+        try {
117
+            Filesystem::initMountPoints($this->superShare->getShareOwner());
118
+            $sourcePath = $this->ownerView->getPath($this->superShare->getNodeId());
119
+            list($this->nonMaskedStorage, $this->rootPath) = $this->ownerView->resolvePath($sourcePath);
120
+            $this->storage = new PermissionsMask([
121
+                'storage' => $this->nonMaskedStorage,
122
+                'mask' => $this->superShare->getPermissions()
123
+            ]);
124
+        } catch (NotFoundException $e) {
125
+            // original file not accessible or deleted, set FailedStorage
126
+            $this->storage = new FailedStorage(['exception' => $e]);
127
+            $this->cache = new FailedCache();
128
+            $this->rootPath = '';
129
+        } catch (NoUserException $e) {
130
+            // sharer user deleted, set FailedStorage
131
+            $this->storage = new FailedStorage(['exception' => $e]);
132
+            $this->cache = new FailedCache();
133
+            $this->rootPath = '';
134
+        } catch (\Exception $e) {
135
+            $this->storage = new FailedStorage(['exception' => $e]);
136
+            $this->cache = new FailedCache();
137
+            $this->rootPath = '';
138
+            $this->logger->logException($e);
139
+        }
140
+
141
+        if (!$this->nonMaskedStorage) {
142
+            $this->nonMaskedStorage = $this->storage;
143
+        }
144
+    }
145
+
146
+    /**
147
+     * @inheritdoc
148
+     */
149
+    public function instanceOfStorage($class) {
150
+        if ($class === '\OC\Files\Storage\Common') {
151
+            return true;
152
+        }
153
+        if (in_array($class, ['\OC\Files\Storage\Home', '\OC\Files\ObjectStore\HomeObjectStoreStorage'])) {
154
+            return false;
155
+        }
156
+        return parent::instanceOfStorage($class);
157
+    }
158
+
159
+    /**
160
+     * @return string
161
+     */
162
+    public function getShareId() {
163
+        return $this->superShare->getId();
164
+    }
165
+
166
+    private function isValid() {
167
+        return $this->getSourceRootInfo() && ($this->getSourceRootInfo()->getPermissions() & Constants::PERMISSION_SHARE) === Constants::PERMISSION_SHARE;
168
+    }
169
+
170
+    /**
171
+     * get id of the mount point
172
+     *
173
+     * @return string
174
+     */
175
+    public function getId() {
176
+        return 'shared::' . $this->getMountPoint();
177
+    }
178
+
179
+    /**
180
+     * Get the permissions granted for a shared file
181
+     *
182
+     * @param string $target Shared target file path
183
+     * @return int CRUDS permissions granted
184
+     */
185
+    public function getPermissions($target = '') {
186
+        if (!$this->isValid()) {
187
+            return 0;
188
+        }
189
+        $permissions = $this->superShare->getPermissions();
190
+        // part files and the mount point always have delete permissions
191
+        if ($target === '' || pathinfo($target, PATHINFO_EXTENSION) === 'part') {
192
+            $permissions |= \OCP\Constants::PERMISSION_DELETE;
193
+        }
194
+
195
+        if (\OCP\Util::isSharingDisabledForUser()) {
196
+            $permissions &= ~\OCP\Constants::PERMISSION_SHARE;
197
+        }
198
+
199
+        return $permissions;
200
+    }
201
+
202
+    public function isCreatable($path) {
203
+        return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_CREATE);
204
+    }
205
+
206
+    public function isReadable($path) {
207
+        if (!$this->isValid()) {
208
+            return false;
209
+        }
210
+        if (!$this->file_exists($path)) {
211
+            return false;
212
+        }
213
+        /** @var IStorage $storage */
214
+        /** @var string $internalPath */
215
+        list($storage, $internalPath) = $this->resolvePath($path);
216
+        return $storage->isReadable($internalPath);
217
+    }
218
+
219
+    public function isUpdatable($path) {
220
+        return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_UPDATE);
221
+    }
222
+
223
+    public function isDeletable($path) {
224
+        return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_DELETE);
225
+    }
226
+
227
+    public function isSharable($path) {
228
+        if (\OCP\Util::isSharingDisabledForUser() || !\OC\Share\Share::isResharingAllowed()) {
229
+            return false;
230
+        }
231
+        return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_SHARE);
232
+    }
233
+
234
+    public function fopen($path, $mode) {
235
+        if ($source = $this->getSourcePath($path)) {
236
+            switch ($mode) {
237
+                case 'r+':
238
+                case 'rb+':
239
+                case 'w+':
240
+                case 'wb+':
241
+                case 'x+':
242
+                case 'xb+':
243
+                case 'a+':
244
+                case 'ab+':
245
+                case 'w':
246
+                case 'wb':
247
+                case 'x':
248
+                case 'xb':
249
+                case 'a':
250
+                case 'ab':
251
+                    $creatable = $this->isCreatable($path);
252
+                    $updatable = $this->isUpdatable($path);
253
+                    // if neither permissions given, no need to continue
254
+                    if (!$creatable && !$updatable) {
255
+                        return false;
256
+                    }
257
+
258
+                    $exists = $this->file_exists($path);
259
+                    // if a file exists, updatable permissions are required
260
+                    if ($exists && !$updatable) {
261
+                        return false;
262
+                    }
263
+
264
+                    // part file is allowed if !$creatable but the final file is $updatable
265
+                    if (pathinfo($path, PATHINFO_EXTENSION) !== 'part') {
266
+                        if (!$exists && !$creatable) {
267
+                            return false;
268
+                        }
269
+                    }
270
+            }
271
+            $info = array(
272
+                'target' => $this->getMountPoint() . $path,
273
+                'source' => $source,
274
+                'mode' => $mode,
275
+            );
276
+            \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'fopen', $info);
277
+            return $this->nonMaskedStorage->fopen($this->getSourcePath($path), $mode);
278
+        }
279
+        return false;
280
+    }
281
+
282
+    /**
283
+     * see http://php.net/manual/en/function.rename.php
284
+     *
285
+     * @param string $path1
286
+     * @param string $path2
287
+     * @return bool
288
+     */
289
+    public function rename($path1, $path2) {
290
+        $this->init();
291
+        $isPartFile = pathinfo($path1, PATHINFO_EXTENSION) === 'part';
292
+        $targetExists = $this->file_exists($path2);
293
+        $sameFodler = dirname($path1) === dirname($path2);
294
+
295
+        if ($targetExists || ($sameFodler && !$isPartFile)) {
296
+            if (!$this->isUpdatable('')) {
297
+                return false;
298
+            }
299
+        } else {
300
+            if (!$this->isCreatable('')) {
301
+                return false;
302
+            }
303
+        }
304
+
305
+        return $this->nonMaskedStorage->rename($this->getSourcePath($path1), $this->getSourcePath($path2));
306
+    }
307
+
308
+    /**
309
+     * return mount point of share, relative to data/user/files
310
+     *
311
+     * @return string
312
+     */
313
+    public function getMountPoint() {
314
+        return $this->superShare->getTarget();
315
+    }
316
+
317
+    /**
318
+     * @param string $path
319
+     */
320
+    public function setMountPoint($path) {
321
+        $this->superShare->setTarget($path);
322
+
323
+        foreach ($this->groupedShares as $share) {
324
+            $share->setTarget($path);
325
+        }
326
+    }
327
+
328
+    /**
329
+     * get the user who shared the file
330
+     *
331
+     * @return string
332
+     */
333
+    public function getSharedFrom() {
334
+        return $this->superShare->getShareOwner();
335
+    }
336
+
337
+    /**
338
+     * @return \OCP\Share\IShare
339
+     */
340
+    public function getShare() {
341
+        return $this->superShare;
342
+    }
343
+
344
+    /**
345
+     * return share type, can be "file" or "folder"
346
+     *
347
+     * @return string
348
+     */
349
+    public function getItemType() {
350
+        return $this->superShare->getNodeType();
351
+    }
352
+
353
+    public function getCache($path = '', $storage = null) {
354
+        if ($this->cache) {
355
+            return $this->cache;
356
+        }
357
+        if (!$storage) {
358
+            $storage = $this;
359
+        }
360
+        if ($this->storage instanceof FailedStorage) {
361
+            return new FailedCache();
362
+        }
363
+        $this->cache = new \OCA\Files_Sharing\Cache($storage, $this->getSourceRootInfo(), $this->superShare);
364
+        return $this->cache;
365
+    }
366
+
367
+    public function getScanner($path = '', $storage = null) {
368
+        if (!$storage) {
369
+            $storage = $this;
370
+        }
371
+        return new \OCA\Files_Sharing\Scanner($storage);
372
+    }
373
+
374
+    public function getPropagator($storage = null) {
375
+        if (isset($this->propagator)) {
376
+            return $this->propagator;
377
+        }
378
+
379
+        if (!$storage) {
380
+            $storage = $this;
381
+        }
382
+        $this->propagator = new \OCA\Files_Sharing\SharedPropagator($storage, \OC::$server->getDatabaseConnection());
383
+        return $this->propagator;
384
+    }
385
+
386
+    public function getOwner($path) {
387
+        return $this->superShare->getShareOwner();
388
+    }
389
+
390
+    /**
391
+     * unshare complete storage, also the grouped shares
392
+     *
393
+     * @return bool
394
+     */
395
+    public function unshareStorage() {
396
+        foreach ($this->groupedShares as $share) {
397
+            \OC::$server->getShareManager()->deleteFromSelf($share, $this->user);
398
+        }
399
+        return true;
400
+    }
401
+
402
+    /**
403
+     * @param string $path
404
+     * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
405
+     * @param \OCP\Lock\ILockingProvider $provider
406
+     * @throws \OCP\Lock\LockedException
407
+     */
408
+    public function acquireLock($path, $type, ILockingProvider $provider) {
409
+        /** @var \OCP\Files\Storage $targetStorage */
410
+        list($targetStorage, $targetInternalPath) = $this->resolvePath($path);
411
+        $targetStorage->acquireLock($targetInternalPath, $type, $provider);
412
+        // lock the parent folders of the owner when locking the share as recipient
413
+        if ($path === '') {
414
+            $sourcePath = $this->ownerView->getPath($this->superShare->getNodeId());
415
+            $this->ownerView->lockFile(dirname($sourcePath), ILockingProvider::LOCK_SHARED, true);
416
+        }
417
+    }
418
+
419
+    /**
420
+     * @param string $path
421
+     * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
422
+     * @param \OCP\Lock\ILockingProvider $provider
423
+     */
424
+    public function releaseLock($path, $type, ILockingProvider $provider) {
425
+        /** @var \OCP\Files\Storage $targetStorage */
426
+        list($targetStorage, $targetInternalPath) = $this->resolvePath($path);
427
+        $targetStorage->releaseLock($targetInternalPath, $type, $provider);
428
+        // unlock the parent folders of the owner when unlocking the share as recipient
429
+        if ($path === '') {
430
+            $sourcePath = $this->ownerView->getPath($this->superShare->getNodeId());
431
+            $this->ownerView->unlockFile(dirname($sourcePath), ILockingProvider::LOCK_SHARED, true);
432
+        }
433
+    }
434
+
435
+    /**
436
+     * @param string $path
437
+     * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
438
+     * @param \OCP\Lock\ILockingProvider $provider
439
+     */
440
+    public function changeLock($path, $type, ILockingProvider $provider) {
441
+        /** @var \OCP\Files\Storage $targetStorage */
442
+        list($targetStorage, $targetInternalPath) = $this->resolvePath($path);
443
+        $targetStorage->changeLock($targetInternalPath, $type, $provider);
444
+    }
445
+
446
+    /**
447
+     * @return array [ available, last_checked ]
448
+     */
449
+    public function getAvailability() {
450
+        // shares do not participate in availability logic
451
+        return [
452
+            'available' => true,
453
+            'last_checked' => 0
454
+        ];
455
+    }
456
+
457
+    /**
458
+     * @param bool $available
459
+     */
460
+    public function setAvailability($available) {
461
+        // shares do not participate in availability logic
462
+    }
463
+
464
+    public function getSourceStorage() {
465
+        $this->init();
466
+        return $this->nonMaskedStorage;
467
+    }
468
+
469
+    public function getWrapperStorage() {
470
+        $this->init();
471
+        return $this->storage;
472
+    }
473
+
474
+    public function file_get_contents($path) {
475
+        $info = [
476
+            'target' => $this->getMountPoint() . '/' . $path,
477
+            'source' => $this->getSourcePath($path),
478
+        ];
479
+        \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info);
480
+        return parent::file_get_contents($path);
481
+    }
482
+
483
+    public function file_put_contents($path, $data) {
484
+        $info = [
485
+            'target' => $this->getMountPoint() . '/' . $path,
486
+            'source' => $this->getSourcePath($path),
487
+        ];
488
+        \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info);
489
+        return parent::file_put_contents($path, $data);
490
+    }
491
+
492
+    public function setMountOptions(array $options) {
493
+        $this->mountOptions = $options;
494
+    }
495 495
 }
Please login to merge, or discard this patch.
apps/files_sharing/lib/SharedPropagator.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -26,19 +26,19 @@
 block discarded – undo
26 26
 use OC\Files\Cache\Propagator;
27 27
 
28 28
 class SharedPropagator extends Propagator {
29
-	/**
30
-	 * @var \OCA\Files_Sharing\SharedStorage
31
-	 */
32
-	protected $storage;
29
+    /**
30
+     * @var \OCA\Files_Sharing\SharedStorage
31
+     */
32
+    protected $storage;
33 33
 
34
-	/**
35
-	 * @param string $internalPath
36
-	 * @param int $time
37
-	 * @param int $sizeDifference
38
-	 */
39
-	public function propagateChange($internalPath, $time, $sizeDifference = 0) {
40
-		/** @var \OC\Files\Storage\Storage $storage */
41
-		list($storage, $sourceInternalPath) = $this->storage->resolvePath($internalPath);
42
-		$storage->getPropagator()->propagateChange($sourceInternalPath, $time, $sizeDifference);
43
-	}
34
+    /**
35
+     * @param string $internalPath
36
+     * @param int $time
37
+     * @param int $sizeDifference
38
+     */
39
+    public function propagateChange($internalPath, $time, $sizeDifference = 0) {
40
+        /** @var \OC\Files\Storage\Storage $storage */
41
+        list($storage, $sourceInternalPath) = $this->storage->resolvePath($internalPath);
42
+        $storage->getPropagator()->propagateChange($sourceInternalPath, $time, $sizeDifference);
43
+    }
44 44
 }
Please login to merge, or discard this patch.
apps/files_sharing/lib/ShareBackend/File.php 2 patches
Indentation   +204 added lines, -204 removed lines patch added patch discarded remove patch
@@ -37,208 +37,208 @@
 block discarded – undo
37 37
 
38 38
 class File implements \OCP\Share_Backend_File_Dependent {
39 39
 
40
-	const FORMAT_SHARED_STORAGE = 0;
41
-	const FORMAT_GET_FOLDER_CONTENTS = 1;
42
-	const FORMAT_FILE_APP_ROOT = 2;
43
-	const FORMAT_OPENDIR = 3;
44
-	const FORMAT_GET_ALL = 4;
45
-	const FORMAT_PERMISSIONS = 5;
46
-	const FORMAT_TARGET_NAMES = 6;
47
-
48
-	private $path;
49
-
50
-	/** @var FederatedShareProvider */
51
-	private $federatedShareProvider;
52
-
53
-	public function __construct(FederatedShareProvider $federatedShareProvider = null) {
54
-		if ($federatedShareProvider) {
55
-			$this->federatedShareProvider = $federatedShareProvider;
56
-		} else {
57
-			$federatedSharingApp = new \OCA\FederatedFileSharing\AppInfo\Application();
58
-			$this->federatedShareProvider = $federatedSharingApp->getFederatedShareProvider();
59
-		}
60
-	}
61
-
62
-	public function isValidSource($itemSource, $uidOwner) {
63
-		try {
64
-			$path = \OC\Files\Filesystem::getPath($itemSource);
65
-			// FIXME: attributes should not be set here,
66
-			// keeping this pattern for now to avoid unexpected
67
-			// regressions
68
-			$this->path = \OC\Files\Filesystem::normalizePath(basename($path));
69
-			return true;
70
-		} catch (\OCP\Files\NotFoundException $e) {
71
-			return false;
72
-		}
73
-	}
74
-
75
-	public function getFilePath($itemSource, $uidOwner) {
76
-		if (isset($this->path)) {
77
-			$path = $this->path;
78
-			$this->path = null;
79
-			return $path;
80
-		} else {
81
-			try {
82
-				$path = \OC\Files\Filesystem::getPath($itemSource);
83
-				return $path;
84
-			} catch (\OCP\Files\NotFoundException $e) {
85
-				return false;
86
-			}
87
-		}
88
-	}
89
-
90
-	/**
91
-	 * create unique target
92
-	 * @param string $filePath
93
-	 * @param string $shareWith
94
-	 * @param array $exclude (optional)
95
-	 * @return string
96
-	 */
97
-	public function generateTarget($filePath, $shareWith, $exclude = null) {
98
-		$shareFolder = \OCA\Files_Sharing\Helper::getShareFolder();
99
-		$target = \OC\Files\Filesystem::normalizePath($shareFolder . '/' . basename($filePath));
100
-
101
-		// for group shares we return the target right away
102
-		if ($shareWith === false) {
103
-			return $target;
104
-		}
105
-
106
-		\OC\Files\Filesystem::initMountPoints($shareWith);
107
-		$view = new \OC\Files\View('/' . $shareWith . '/files');
108
-
109
-		if (!$view->is_dir($shareFolder)) {
110
-			$dir = '';
111
-			$subdirs = explode('/', $shareFolder);
112
-			foreach ($subdirs as $subdir) {
113
-				$dir = $dir . '/' . $subdir;
114
-				if (!$view->is_dir($dir)) {
115
-					$view->mkdir($dir);
116
-				}
117
-			}
118
-		}
119
-
120
-		$excludeList = (is_array($exclude)) ? $exclude : array();
121
-
122
-		return \OCA\Files_Sharing\Helper::generateUniqueTarget($target, $excludeList, $view);
123
-	}
124
-
125
-	public function formatItems($items, $format, $parameters = null) {
126
-		if ($format == self::FORMAT_SHARED_STORAGE) {
127
-			// Only 1 item should come through for this format call
128
-			$item = array_shift($items);
129
-			return array(
130
-				'parent' => $item['parent'],
131
-				'path' => $item['path'],
132
-				'storage' => $item['storage'],
133
-				'permissions' => $item['permissions'],
134
-				'uid_owner' => $item['uid_owner'],
135
-			);
136
-		} else if ($format == self::FORMAT_GET_FOLDER_CONTENTS) {
137
-			$files = array();
138
-			foreach ($items as $item) {
139
-				$file = array();
140
-				$file['fileid'] = $item['file_source'];
141
-				$file['storage'] = $item['storage'];
142
-				$file['path'] = $item['file_target'];
143
-				$file['parent'] = $item['file_parent'];
144
-				$file['name'] = basename($item['file_target']);
145
-				$file['mimetype'] = $item['mimetype'];
146
-				$file['mimepart'] = $item['mimepart'];
147
-				$file['mtime'] = $item['mtime'];
148
-				$file['encrypted'] = $item['encrypted'];
149
-				$file['etag'] = $item['etag'];
150
-				$file['uid_owner'] = $item['uid_owner'];
151
-				$file['displayname_owner'] = $item['displayname_owner'];
152
-
153
-				$storage = \OC\Files\Filesystem::getStorage('/');
154
-				$cache = $storage->getCache();
155
-				$file['size'] = $item['size'];
156
-				$files[] = $file;
157
-			}
158
-			return $files;
159
-		} else if ($format == self::FORMAT_OPENDIR) {
160
-			$files = array();
161
-			foreach ($items as $item) {
162
-				$files[] = basename($item['file_target']);
163
-			}
164
-			return $files;
165
-		} else if ($format == self::FORMAT_GET_ALL) {
166
-			$ids = array();
167
-			foreach ($items as $item) {
168
-				$ids[] = $item['file_source'];
169
-			}
170
-			return $ids;
171
-		} else if ($format === self::FORMAT_PERMISSIONS) {
172
-			$filePermissions = array();
173
-			foreach ($items as $item) {
174
-				$filePermissions[$item['file_source']] = $item['permissions'];
175
-			}
176
-			return $filePermissions;
177
-		} else if ($format === self::FORMAT_TARGET_NAMES) {
178
-			$targets = array();
179
-			foreach ($items as $item) {
180
-				$targets[] = $item['file_target'];
181
-			}
182
-			return $targets;
183
-		}
184
-		return array();
185
-	}
186
-
187
-	/**
188
-	 * check if server2server share is enabled
189
-	 *
190
-	 * @param int $shareType
191
-	 * @return boolean
192
-	 */
193
-	public function isShareTypeAllowed($shareType) {
194
-		if ($shareType === \OCP\Share::SHARE_TYPE_REMOTE) {
195
-			return $this->federatedShareProvider->isOutgoingServer2serverShareEnabled();
196
-		}
197
-
198
-		return true;
199
-	}
200
-
201
-	/**
202
-	 * resolve reshares to return the correct source item
203
-	 * @param array $source
204
-	 * @return array source item
205
-	 */
206
-	protected static function resolveReshares($source) {
207
-		if (isset($source['parent'])) {
208
-			$parent = $source['parent'];
209
-			while (isset($parent)) {
210
-				$query = \OCP\DB::prepare('SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1);
211
-				$item = $query->execute(array($parent))->fetchRow();
212
-				if (isset($item['parent'])) {
213
-					$parent = $item['parent'];
214
-				} else {
215
-					$fileOwner = $item['uid_owner'];
216
-					break;
217
-				}
218
-			}
219
-		} else {
220
-			$fileOwner = $source['uid_owner'];
221
-		}
222
-		if (isset($fileOwner)) {
223
-			$source['fileOwner'] = $fileOwner;
224
-		} else {
225
-			\OCP\Util::writeLog('files_sharing', "No owner found for reshare", \OCP\Util::ERROR);
226
-		}
227
-
228
-		return $source;
229
-	}
230
-
231
-	/**
232
-	 * @param string $target
233
-	 * @param array $share
234
-	 * @return array|false source item
235
-	 */
236
-	public static function getSource($target, $share) {
237
-		if ($share['item_type'] === 'folder' && $target !== '') {
238
-			// note: in case of ext storage mount points the path might be empty
239
-			// which would cause a leading slash to appear
240
-			$share['path'] = ltrim($share['path'] . '/' . $target, '/');
241
-		}
242
-		return self::resolveReshares($share);
243
-	}
40
+    const FORMAT_SHARED_STORAGE = 0;
41
+    const FORMAT_GET_FOLDER_CONTENTS = 1;
42
+    const FORMAT_FILE_APP_ROOT = 2;
43
+    const FORMAT_OPENDIR = 3;
44
+    const FORMAT_GET_ALL = 4;
45
+    const FORMAT_PERMISSIONS = 5;
46
+    const FORMAT_TARGET_NAMES = 6;
47
+
48
+    private $path;
49
+
50
+    /** @var FederatedShareProvider */
51
+    private $federatedShareProvider;
52
+
53
+    public function __construct(FederatedShareProvider $federatedShareProvider = null) {
54
+        if ($federatedShareProvider) {
55
+            $this->federatedShareProvider = $federatedShareProvider;
56
+        } else {
57
+            $federatedSharingApp = new \OCA\FederatedFileSharing\AppInfo\Application();
58
+            $this->federatedShareProvider = $federatedSharingApp->getFederatedShareProvider();
59
+        }
60
+    }
61
+
62
+    public function isValidSource($itemSource, $uidOwner) {
63
+        try {
64
+            $path = \OC\Files\Filesystem::getPath($itemSource);
65
+            // FIXME: attributes should not be set here,
66
+            // keeping this pattern for now to avoid unexpected
67
+            // regressions
68
+            $this->path = \OC\Files\Filesystem::normalizePath(basename($path));
69
+            return true;
70
+        } catch (\OCP\Files\NotFoundException $e) {
71
+            return false;
72
+        }
73
+    }
74
+
75
+    public function getFilePath($itemSource, $uidOwner) {
76
+        if (isset($this->path)) {
77
+            $path = $this->path;
78
+            $this->path = null;
79
+            return $path;
80
+        } else {
81
+            try {
82
+                $path = \OC\Files\Filesystem::getPath($itemSource);
83
+                return $path;
84
+            } catch (\OCP\Files\NotFoundException $e) {
85
+                return false;
86
+            }
87
+        }
88
+    }
89
+
90
+    /**
91
+     * create unique target
92
+     * @param string $filePath
93
+     * @param string $shareWith
94
+     * @param array $exclude (optional)
95
+     * @return string
96
+     */
97
+    public function generateTarget($filePath, $shareWith, $exclude = null) {
98
+        $shareFolder = \OCA\Files_Sharing\Helper::getShareFolder();
99
+        $target = \OC\Files\Filesystem::normalizePath($shareFolder . '/' . basename($filePath));
100
+
101
+        // for group shares we return the target right away
102
+        if ($shareWith === false) {
103
+            return $target;
104
+        }
105
+
106
+        \OC\Files\Filesystem::initMountPoints($shareWith);
107
+        $view = new \OC\Files\View('/' . $shareWith . '/files');
108
+
109
+        if (!$view->is_dir($shareFolder)) {
110
+            $dir = '';
111
+            $subdirs = explode('/', $shareFolder);
112
+            foreach ($subdirs as $subdir) {
113
+                $dir = $dir . '/' . $subdir;
114
+                if (!$view->is_dir($dir)) {
115
+                    $view->mkdir($dir);
116
+                }
117
+            }
118
+        }
119
+
120
+        $excludeList = (is_array($exclude)) ? $exclude : array();
121
+
122
+        return \OCA\Files_Sharing\Helper::generateUniqueTarget($target, $excludeList, $view);
123
+    }
124
+
125
+    public function formatItems($items, $format, $parameters = null) {
126
+        if ($format == self::FORMAT_SHARED_STORAGE) {
127
+            // Only 1 item should come through for this format call
128
+            $item = array_shift($items);
129
+            return array(
130
+                'parent' => $item['parent'],
131
+                'path' => $item['path'],
132
+                'storage' => $item['storage'],
133
+                'permissions' => $item['permissions'],
134
+                'uid_owner' => $item['uid_owner'],
135
+            );
136
+        } else if ($format == self::FORMAT_GET_FOLDER_CONTENTS) {
137
+            $files = array();
138
+            foreach ($items as $item) {
139
+                $file = array();
140
+                $file['fileid'] = $item['file_source'];
141
+                $file['storage'] = $item['storage'];
142
+                $file['path'] = $item['file_target'];
143
+                $file['parent'] = $item['file_parent'];
144
+                $file['name'] = basename($item['file_target']);
145
+                $file['mimetype'] = $item['mimetype'];
146
+                $file['mimepart'] = $item['mimepart'];
147
+                $file['mtime'] = $item['mtime'];
148
+                $file['encrypted'] = $item['encrypted'];
149
+                $file['etag'] = $item['etag'];
150
+                $file['uid_owner'] = $item['uid_owner'];
151
+                $file['displayname_owner'] = $item['displayname_owner'];
152
+
153
+                $storage = \OC\Files\Filesystem::getStorage('/');
154
+                $cache = $storage->getCache();
155
+                $file['size'] = $item['size'];
156
+                $files[] = $file;
157
+            }
158
+            return $files;
159
+        } else if ($format == self::FORMAT_OPENDIR) {
160
+            $files = array();
161
+            foreach ($items as $item) {
162
+                $files[] = basename($item['file_target']);
163
+            }
164
+            return $files;
165
+        } else if ($format == self::FORMAT_GET_ALL) {
166
+            $ids = array();
167
+            foreach ($items as $item) {
168
+                $ids[] = $item['file_source'];
169
+            }
170
+            return $ids;
171
+        } else if ($format === self::FORMAT_PERMISSIONS) {
172
+            $filePermissions = array();
173
+            foreach ($items as $item) {
174
+                $filePermissions[$item['file_source']] = $item['permissions'];
175
+            }
176
+            return $filePermissions;
177
+        } else if ($format === self::FORMAT_TARGET_NAMES) {
178
+            $targets = array();
179
+            foreach ($items as $item) {
180
+                $targets[] = $item['file_target'];
181
+            }
182
+            return $targets;
183
+        }
184
+        return array();
185
+    }
186
+
187
+    /**
188
+     * check if server2server share is enabled
189
+     *
190
+     * @param int $shareType
191
+     * @return boolean
192
+     */
193
+    public function isShareTypeAllowed($shareType) {
194
+        if ($shareType === \OCP\Share::SHARE_TYPE_REMOTE) {
195
+            return $this->federatedShareProvider->isOutgoingServer2serverShareEnabled();
196
+        }
197
+
198
+        return true;
199
+    }
200
+
201
+    /**
202
+     * resolve reshares to return the correct source item
203
+     * @param array $source
204
+     * @return array source item
205
+     */
206
+    protected static function resolveReshares($source) {
207
+        if (isset($source['parent'])) {
208
+            $parent = $source['parent'];
209
+            while (isset($parent)) {
210
+                $query = \OCP\DB::prepare('SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1);
211
+                $item = $query->execute(array($parent))->fetchRow();
212
+                if (isset($item['parent'])) {
213
+                    $parent = $item['parent'];
214
+                } else {
215
+                    $fileOwner = $item['uid_owner'];
216
+                    break;
217
+                }
218
+            }
219
+        } else {
220
+            $fileOwner = $source['uid_owner'];
221
+        }
222
+        if (isset($fileOwner)) {
223
+            $source['fileOwner'] = $fileOwner;
224
+        } else {
225
+            \OCP\Util::writeLog('files_sharing', "No owner found for reshare", \OCP\Util::ERROR);
226
+        }
227
+
228
+        return $source;
229
+    }
230
+
231
+    /**
232
+     * @param string $target
233
+     * @param array $share
234
+     * @return array|false source item
235
+     */
236
+    public static function getSource($target, $share) {
237
+        if ($share['item_type'] === 'folder' && $target !== '') {
238
+            // note: in case of ext storage mount points the path might be empty
239
+            // which would cause a leading slash to appear
240
+            $share['path'] = ltrim($share['path'] . '/' . $target, '/');
241
+        }
242
+        return self::resolveReshares($share);
243
+    }
244 244
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
 	 */
97 97
 	public function generateTarget($filePath, $shareWith, $exclude = null) {
98 98
 		$shareFolder = \OCA\Files_Sharing\Helper::getShareFolder();
99
-		$target = \OC\Files\Filesystem::normalizePath($shareFolder . '/' . basename($filePath));
99
+		$target = \OC\Files\Filesystem::normalizePath($shareFolder.'/'.basename($filePath));
100 100
 
101 101
 		// for group shares we return the target right away
102 102
 		if ($shareWith === false) {
@@ -104,13 +104,13 @@  discard block
 block discarded – undo
104 104
 		}
105 105
 
106 106
 		\OC\Files\Filesystem::initMountPoints($shareWith);
107
-		$view = new \OC\Files\View('/' . $shareWith . '/files');
107
+		$view = new \OC\Files\View('/'.$shareWith.'/files');
108 108
 
109 109
 		if (!$view->is_dir($shareFolder)) {
110 110
 			$dir = '';
111 111
 			$subdirs = explode('/', $shareFolder);
112 112
 			foreach ($subdirs as $subdir) {
113
-				$dir = $dir . '/' . $subdir;
113
+				$dir = $dir.'/'.$subdir;
114 114
 				if (!$view->is_dir($dir)) {
115 115
 					$view->mkdir($dir);
116 116
 				}
@@ -237,7 +237,7 @@  discard block
 block discarded – undo
237 237
 		if ($share['item_type'] === 'folder' && $target !== '') {
238 238
 			// note: in case of ext storage mount points the path might be empty
239 239
 			// which would cause a leading slash to appear
240
-			$share['path'] = ltrim($share['path'] . '/' . $target, '/');
240
+			$share['path'] = ltrim($share['path'].'/'.$target, '/');
241 241
 		}
242 242
 		return self::resolveReshares($share);
243 243
 	}
Please login to merge, or discard this patch.
apps/files_sharing/lib/ShareBackend/Folder.php 1 patch
Indentation   +69 added lines, -69 removed lines patch added patch discarded remove patch
@@ -29,79 +29,79 @@
 block discarded – undo
29 29
 
30 30
 class Folder extends File implements \OCP\Share_Backend_Collection {
31 31
 
32
-	/**
33
-	 * get shared parents
34
-	 *
35
-	 * @param int $itemSource item source ID
36
-	 * @param string $shareWith with whom should the item be shared
37
-	 * @param string $owner owner of the item
38
-	 * @return array with shares
39
-	 */
40
-	public function getParents($itemSource, $shareWith = null, $owner = null) {
41
-		$result = array();
42
-		$parent = $this->getParentId($itemSource);
43
-		while ($parent) {
44
-			$shares = \OCP\Share::getItemSharedWithUser('folder', $parent, $shareWith, $owner);
45
-			if ($shares) {
46
-				foreach ($shares as $share) {
47
-					$name = basename($share['path']);
48
-					$share['collection']['path'] = $name;
49
-					$share['collection']['item_type'] = 'folder';
50
-					$share['file_path'] = $name;
51
-					$displayNameOwner = \OCP\User::getDisplayName($share['uid_owner']);
52
-					$displayNameShareWith = \OCP\User::getDisplayName($share['share_with']);
53
-					$share['displayname_owner'] = ($displayNameOwner) ? $displayNameOwner : $share['uid_owner'];
54
-					$share['share_with_displayname'] = ($displayNameShareWith) ? $displayNameShareWith : $share['uid_owner'];
32
+    /**
33
+     * get shared parents
34
+     *
35
+     * @param int $itemSource item source ID
36
+     * @param string $shareWith with whom should the item be shared
37
+     * @param string $owner owner of the item
38
+     * @return array with shares
39
+     */
40
+    public function getParents($itemSource, $shareWith = null, $owner = null) {
41
+        $result = array();
42
+        $parent = $this->getParentId($itemSource);
43
+        while ($parent) {
44
+            $shares = \OCP\Share::getItemSharedWithUser('folder', $parent, $shareWith, $owner);
45
+            if ($shares) {
46
+                foreach ($shares as $share) {
47
+                    $name = basename($share['path']);
48
+                    $share['collection']['path'] = $name;
49
+                    $share['collection']['item_type'] = 'folder';
50
+                    $share['file_path'] = $name;
51
+                    $displayNameOwner = \OCP\User::getDisplayName($share['uid_owner']);
52
+                    $displayNameShareWith = \OCP\User::getDisplayName($share['share_with']);
53
+                    $share['displayname_owner'] = ($displayNameOwner) ? $displayNameOwner : $share['uid_owner'];
54
+                    $share['share_with_displayname'] = ($displayNameShareWith) ? $displayNameShareWith : $share['uid_owner'];
55 55
 
56
-					$result[] = $share;
57
-				}
58
-			}
59
-			$parent = $this->getParentId($parent);
60
-		}
56
+                    $result[] = $share;
57
+                }
58
+            }
59
+            $parent = $this->getParentId($parent);
60
+        }
61 61
 
62
-		return $result;
63
-	}
62
+        return $result;
63
+    }
64 64
 
65
-	/**
66
-	 * get file cache ID of parent
67
-	 *
68
-	 * @param int $child file cache ID of child
69
-	 * @return mixed parent ID or null
70
-	 */
71
-	private function getParentId($child) {
72
-		$query = \OCP\DB::prepare('SELECT `parent` FROM `*PREFIX*filecache` WHERE `fileid` = ?');
73
-		$result = $query->execute(array($child));
74
-		$row = $result->fetchRow();
75
-		$parent = ($row) ? $row['parent'] : null;
65
+    /**
66
+     * get file cache ID of parent
67
+     *
68
+     * @param int $child file cache ID of child
69
+     * @return mixed parent ID or null
70
+     */
71
+    private function getParentId($child) {
72
+        $query = \OCP\DB::prepare('SELECT `parent` FROM `*PREFIX*filecache` WHERE `fileid` = ?');
73
+        $result = $query->execute(array($child));
74
+        $row = $result->fetchRow();
75
+        $parent = ($row) ? $row['parent'] : null;
76 76
 
77
-		return $parent;
78
-	}
77
+        return $parent;
78
+    }
79 79
 
80
-	public function getChildren($itemSource) {
81
-		$children = array();
82
-		$parents = array($itemSource);
83
-		$query = \OCP\DB::prepare('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?');
84
-		$result = $query->execute(array('httpd/unix-directory'));
85
-		if ($row = $result->fetchRow()) {
86
-			$mimetype = $row['id'];
87
-		} else {
88
-			$mimetype = -1;
89
-		}
90
-		while (!empty($parents)) {
91
-			$parents = "'".implode("','", $parents)."'";
92
-			$query = \OCP\DB::prepare('SELECT `fileid`, `name`, `mimetype` FROM `*PREFIX*filecache`'
93
-				.' WHERE `parent` IN ('.$parents.')');
94
-			$result = $query->execute();
95
-			$parents = array();
96
-			while ($file = $result->fetchRow()) {
97
-				$children[] = array('source' => $file['fileid'], 'file_path' => $file['name']);
98
-				// If a child folder is found look inside it
99
-				if ($file['mimetype'] == $mimetype) {
100
-					$parents[] = $file['fileid'];
101
-				}
102
-			}
103
-		}
104
-		return $children;
105
-	}
80
+    public function getChildren($itemSource) {
81
+        $children = array();
82
+        $parents = array($itemSource);
83
+        $query = \OCP\DB::prepare('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?');
84
+        $result = $query->execute(array('httpd/unix-directory'));
85
+        if ($row = $result->fetchRow()) {
86
+            $mimetype = $row['id'];
87
+        } else {
88
+            $mimetype = -1;
89
+        }
90
+        while (!empty($parents)) {
91
+            $parents = "'".implode("','", $parents)."'";
92
+            $query = \OCP\DB::prepare('SELECT `fileid`, `name`, `mimetype` FROM `*PREFIX*filecache`'
93
+                .' WHERE `parent` IN ('.$parents.')');
94
+            $result = $query->execute();
95
+            $parents = array();
96
+            while ($file = $result->fetchRow()) {
97
+                $children[] = array('source' => $file['fileid'], 'file_path' => $file['name']);
98
+                // If a child folder is found look inside it
99
+                if ($file['mimetype'] == $mimetype) {
100
+                    $parents[] = $file['fileid'];
101
+                }
102
+            }
103
+        }
104
+        return $children;
105
+    }
106 106
 
107 107
 }
Please login to merge, or discard this patch.
apps/files_sharing/public.php 2 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -28,9 +28,9 @@
 block discarded – undo
28 28
 $route = isset($_GET['download']) ? 'files_sharing.sharecontroller.downloadShare' : 'files_sharing.sharecontroller.showShare';
29 29
 
30 30
 if($token !== '') {
31
-	OC_Response::redirect($urlGenerator->linkToRoute($route, array('token' => $token)));
31
+    OC_Response::redirect($urlGenerator->linkToRoute($route, array('token' => $token)));
32 32
 } else {
33
-	header('HTTP/1.0 404 Not Found');
34
-	$tmpl = new OCP\Template('', '404', 'guest');
35
-	print_unescaped($tmpl->fetchPage());
33
+    header('HTTP/1.0 404 Not Found');
34
+    $tmpl = new OCP\Template('', '404', 'guest');
35
+    print_unescaped($tmpl->fetchPage());
36 36
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@
 block discarded – undo
27 27
 $token = isset($_GET['t']) ? $_GET['t'] : '';
28 28
 $route = isset($_GET['download']) ? 'files_sharing.sharecontroller.downloadShare' : 'files_sharing.sharecontroller.showShare';
29 29
 
30
-if($token !== '') {
30
+if ($token !== '') {
31 31
 	OC_Response::redirect($urlGenerator->linkToRoute($route, array('token' => $token)));
32 32
 } else {
33 33
 	header('HTTP/1.0 404 Not Found');
Please login to merge, or discard this patch.
apps/files_sharing/appinfo/update.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -26,11 +26,11 @@
 block discarded – undo
26 26
 
27 27
 // Migration OC8.2 -> OC9
28 28
 if (version_compare($installedVersion, '0.9.1', '<')) {
29
-	$m = new Migration(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig());
30
-	$m->removeReShares();
31
-	$m->updateInitiatorInfo();
29
+    $m = new Migration(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig());
30
+    $m->removeReShares();
31
+    $m->updateInitiatorInfo();
32 32
 }
33 33
 
34 34
 if (version_compare($installedVersion, '1.1.1', '<')) {
35
-	$m = new Migration(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig());
35
+    $m = new Migration(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig());
36 36
 }
Please login to merge, or discard this patch.
apps/files_sharing/appinfo/routes.php 1 patch
Indentation   +87 added lines, -87 removed lines patch added patch discarded remove patch
@@ -30,105 +30,105 @@
 block discarded – undo
30 30
 
31 31
 $application = new \OCA\Files_Sharing\AppInfo\Application();
32 32
 $application->registerRoutes($this, [
33
-	'resources' => [
34
-		'ExternalShares' => ['url' => '/api/externalShares'],
35
-	],
36
-	'routes' => [
37
-		[
38
-			'name' => 'externalShares#testRemote',
39
-			'url' => '/testremote',
40
-			'verb' => 'GET'
41
-		],
42
-		[
43
-			'name' => 'PublicPreview#getPreview',
44
-			'url' => '/publicpreview',
45
-			'verb' => 'GET',
46
-		],
33
+    'resources' => [
34
+        'ExternalShares' => ['url' => '/api/externalShares'],
35
+    ],
36
+    'routes' => [
37
+        [
38
+            'name' => 'externalShares#testRemote',
39
+            'url' => '/testremote',
40
+            'verb' => 'GET'
41
+        ],
42
+        [
43
+            'name' => 'PublicPreview#getPreview',
44
+            'url' => '/publicpreview',
45
+            'verb' => 'GET',
46
+        ],
47 47
 
48
-		[
49
-			'name' => 'PublicPreview#getPreview',
50
-			'url' => '/ajax/publicpreview.php',
51
-			'verb' => 'GET',
52
-		],
53
-	],
54
-	'ocs' => [
55
-		/*
48
+        [
49
+            'name' => 'PublicPreview#getPreview',
50
+            'url' => '/ajax/publicpreview.php',
51
+            'verb' => 'GET',
52
+        ],
53
+    ],
54
+    'ocs' => [
55
+        /*
56 56
 		 * OCS Share API
57 57
 		 */
58
-		[
59
-			'name' => 'ShareAPI#getShares',
60
-			'url'  => '/api/v1/shares',
61
-			'verb' => 'GET',
62
-		],
63
-		[
64
-			'name' => 'ShareAPI#createShare',
65
-			'url'  => '/api/v1/shares',
66
-			'verb' => 'POST',
67
-		],
68
-		[
69
-			'name' => 'ShareAPI#getShare',
70
-			'url'  => '/api/v1/shares/{id}',
71
-			'verb' => 'GET',
72
-		],
73
-		[
74
-			'name' => 'ShareAPI#updateShare',
75
-			'url'  => '/api/v1/shares/{id}',
76
-			'verb' => 'PUT',
77
-		],
78
-		[
79
-			'name' => 'ShareAPI#deleteShare',
80
-			'url'  => '/api/v1/shares/{id}',
81
-			'verb' => 'DELETE',
82
-		],
83
-		/*
58
+        [
59
+            'name' => 'ShareAPI#getShares',
60
+            'url'  => '/api/v1/shares',
61
+            'verb' => 'GET',
62
+        ],
63
+        [
64
+            'name' => 'ShareAPI#createShare',
65
+            'url'  => '/api/v1/shares',
66
+            'verb' => 'POST',
67
+        ],
68
+        [
69
+            'name' => 'ShareAPI#getShare',
70
+            'url'  => '/api/v1/shares/{id}',
71
+            'verb' => 'GET',
72
+        ],
73
+        [
74
+            'name' => 'ShareAPI#updateShare',
75
+            'url'  => '/api/v1/shares/{id}',
76
+            'verb' => 'PUT',
77
+        ],
78
+        [
79
+            'name' => 'ShareAPI#deleteShare',
80
+            'url'  => '/api/v1/shares/{id}',
81
+            'verb' => 'DELETE',
82
+        ],
83
+        /*
84 84
 		 * OCS Sharee API
85 85
 		 */
86
-		[
87
-			'name' => 'ShareesAPI#search',
88
-			'url' => '/api/v1/sharees',
89
-			'verb' => 'GET',
90
-		],
91
-		/*
86
+        [
87
+            'name' => 'ShareesAPI#search',
88
+            'url' => '/api/v1/sharees',
89
+            'verb' => 'GET',
90
+        ],
91
+        /*
92 92
 		 * Remote Shares
93 93
 		 */
94
-		[
95
-			'name' => 'Remote#getShares',
96
-			'url' => '/api/v1/remote_shares',
97
-			'verb' => 'GET',
98
-		],
99
-		[
100
-			'name' => 'Remote#getOpenShares',
101
-			'url' => '/api/v1/remote_shares/pending',
102
-			'verb' => 'GET',
103
-		],
104
-		[
105
-			'name' => 'Remote#acceptShare',
106
-			'url' => '/api/v1/remote_shares/pending/{id}',
107
-			'verb' => 'POST',
108
-		],
109
-		[
110
-			'name' => 'Remote#declineShare',
111
-			'url' => '/api/v1/remote_shares/pending/{id}',
112
-			'verb' => 'DELETE',
113
-		],
114
-		[
115
-			'name' => 'Remote#getShare',
116
-			'url' => '/api/v1/remote_shares/{id}',
117
-			'verb' => 'GET',
118
-		],
119
-		[
120
-			'name' => 'Remote#unshare',
121
-			'url' => '/api/v1/remote_shares/{id}',
122
-			'verb' => 'DELETE',
123
-		],
124
-	],
94
+        [
95
+            'name' => 'Remote#getShares',
96
+            'url' => '/api/v1/remote_shares',
97
+            'verb' => 'GET',
98
+        ],
99
+        [
100
+            'name' => 'Remote#getOpenShares',
101
+            'url' => '/api/v1/remote_shares/pending',
102
+            'verb' => 'GET',
103
+        ],
104
+        [
105
+            'name' => 'Remote#acceptShare',
106
+            'url' => '/api/v1/remote_shares/pending/{id}',
107
+            'verb' => 'POST',
108
+        ],
109
+        [
110
+            'name' => 'Remote#declineShare',
111
+            'url' => '/api/v1/remote_shares/pending/{id}',
112
+            'verb' => 'DELETE',
113
+        ],
114
+        [
115
+            'name' => 'Remote#getShare',
116
+            'url' => '/api/v1/remote_shares/{id}',
117
+            'verb' => 'GET',
118
+        ],
119
+        [
120
+            'name' => 'Remote#unshare',
121
+            'url' => '/api/v1/remote_shares/{id}',
122
+            'verb' => 'DELETE',
123
+        ],
124
+    ],
125 125
 ]);
126 126
 
127 127
 /** @var $this \OCP\Route\IRouter */
128 128
 $this->create('files_sharing_ajax_list', 'ajax/list.php')
129
-	->actionInclude('files_sharing/ajax/list.php');
129
+    ->actionInclude('files_sharing/ajax/list.php');
130 130
 $this->create('sharing_external_shareinfo', '/shareinfo')
131
-	->actionInclude('files_sharing/ajax/shareinfo.php');
131
+    ->actionInclude('files_sharing/ajax/shareinfo.php');
132 132
 
133 133
 // OCS API
134 134
 
Please login to merge, or discard this patch.
apps/provisioning_api/lib/Controller/AppsController.php 3 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -59,11 +59,11 @@  discard block
 block discarded – undo
59 59
 	public function getApps($filter = null) {
60 60
 		$apps = (new OC_App())->listAllApps();
61 61
 		$list = [];
62
-		foreach($apps as $app) {
62
+		foreach ($apps as $app) {
63 63
 			$list[] = $app['id'];
64 64
 		}
65
-		if($filter){
66
-			switch($filter){
65
+		if ($filter) {
66
+			switch ($filter) {
67 67
 				case 'enabled':
68 68
 					return new DataResponse(['apps' => \OC_App::getEnabledApps()]);
69 69
 					break;
@@ -88,7 +88,7 @@  discard block
 block discarded – undo
88 88
 	 */
89 89
 	public function getAppInfo($app) {
90 90
 		$info = \OCP\App::getAppInfo($app);
91
-		if(!is_null($info)) {
91
+		if (!is_null($info)) {
92 92
 			return new DataResponse(OC_App::getAppInfo($app));
93 93
 		} else {
94 94
 			throw new OCSException('The request app was not found', \OCP\API::RESPOND_NOT_FOUND);
Please login to merge, or discard this patch.
Unused Use Statements   -1 removed lines patch added patch discarded remove patch
@@ -28,7 +28,6 @@
 block discarded – undo
28 28
 use \OC_App;
29 29
 use OCP\App\AppPathNotFoundException;
30 30
 use OCP\App\IAppManager;
31
-use OCP\AppFramework\Http;
32 31
 use OCP\AppFramework\Http\DataResponse;
33 32
 use OCP\AppFramework\OCS\OCSException;
34 33
 use OCP\AppFramework\OCSController;
Please login to merge, or discard this patch.
Indentation   +79 added lines, -79 removed lines patch added patch discarded remove patch
@@ -35,91 +35,91 @@
 block discarded – undo
35 35
 use OCP\IRequest;
36 36
 
37 37
 class AppsController extends OCSController {
38
-	/** @var \OCP\App\IAppManager */
39
-	private $appManager;
38
+    /** @var \OCP\App\IAppManager */
39
+    private $appManager;
40 40
 
41
-	/**
42
-	 * @param string $appName
43
-	 * @param IRequest $request
44
-	 * @param IAppManager $appManager
45
-	 */
46
-	public function __construct(
47
-		$appName,
48
-		IRequest $request,
49
-		IAppManager $appManager
50
-	) {
51
-		parent::__construct($appName, $request);
41
+    /**
42
+     * @param string $appName
43
+     * @param IRequest $request
44
+     * @param IAppManager $appManager
45
+     */
46
+    public function __construct(
47
+        $appName,
48
+        IRequest $request,
49
+        IAppManager $appManager
50
+    ) {
51
+        parent::__construct($appName, $request);
52 52
 
53
-		$this->appManager = $appManager;
54
-	}
53
+        $this->appManager = $appManager;
54
+    }
55 55
 
56
-	/**
57
-	 * @param string $filter
58
-	 * @return DataResponse
59
-	 * @throws OCSException
60
-	 */
61
-	public function getApps($filter = null) {
62
-		$apps = (new OC_App())->listAllApps();
63
-		$list = [];
64
-		foreach($apps as $app) {
65
-			$list[] = $app['id'];
66
-		}
67
-		if($filter){
68
-			switch($filter){
69
-				case 'enabled':
70
-					return new DataResponse(['apps' => \OC_App::getEnabledApps()]);
71
-					break;
72
-				case 'disabled':
73
-					$enabled = OC_App::getEnabledApps();
74
-					return new DataResponse(['apps' => array_diff($list, $enabled)]);
75
-					break;
76
-				default:
77
-					// Invalid filter variable
78
-					throw new OCSException('', 101);
79
-			}
56
+    /**
57
+     * @param string $filter
58
+     * @return DataResponse
59
+     * @throws OCSException
60
+     */
61
+    public function getApps($filter = null) {
62
+        $apps = (new OC_App())->listAllApps();
63
+        $list = [];
64
+        foreach($apps as $app) {
65
+            $list[] = $app['id'];
66
+        }
67
+        if($filter){
68
+            switch($filter){
69
+                case 'enabled':
70
+                    return new DataResponse(['apps' => \OC_App::getEnabledApps()]);
71
+                    break;
72
+                case 'disabled':
73
+                    $enabled = OC_App::getEnabledApps();
74
+                    return new DataResponse(['apps' => array_diff($list, $enabled)]);
75
+                    break;
76
+                default:
77
+                    // Invalid filter variable
78
+                    throw new OCSException('', 101);
79
+            }
80 80
 
81
-		} else {
82
-			return new DataResponse(['apps' => $list]);
83
-		}
84
-	}
81
+        } else {
82
+            return new DataResponse(['apps' => $list]);
83
+        }
84
+    }
85 85
 
86
-	/**
87
-	 * @param string $app
88
-	 * @return DataResponse
89
-	 * @throws OCSException
90
-	 */
91
-	public function getAppInfo($app) {
92
-		$info = \OCP\App::getAppInfo($app);
93
-		if(!is_null($info)) {
94
-			return new DataResponse(OC_App::getAppInfo($app));
95
-		} else {
96
-			throw new OCSException('The request app was not found', \OCP\API::RESPOND_NOT_FOUND);
97
-		}
98
-	}
86
+    /**
87
+     * @param string $app
88
+     * @return DataResponse
89
+     * @throws OCSException
90
+     */
91
+    public function getAppInfo($app) {
92
+        $info = \OCP\App::getAppInfo($app);
93
+        if(!is_null($info)) {
94
+            return new DataResponse(OC_App::getAppInfo($app));
95
+        } else {
96
+            throw new OCSException('The request app was not found', \OCP\API::RESPOND_NOT_FOUND);
97
+        }
98
+    }
99 99
 
100
-	/**
101
-	 * @PasswordConfirmationRequired
102
-	 * @param string $app
103
-	 * @return DataResponse
104
-	 * @throws OCSException
105
-	 */
106
-	public function enable($app) {
107
-		try {
108
-			$this->appManager->enableApp($app);
109
-		} catch (AppPathNotFoundException $e) {
110
-			throw new OCSException('The request app was not found', \OCP\API::RESPOND_NOT_FOUND);
111
-		}
112
-		return new DataResponse();
113
-	}
100
+    /**
101
+     * @PasswordConfirmationRequired
102
+     * @param string $app
103
+     * @return DataResponse
104
+     * @throws OCSException
105
+     */
106
+    public function enable($app) {
107
+        try {
108
+            $this->appManager->enableApp($app);
109
+        } catch (AppPathNotFoundException $e) {
110
+            throw new OCSException('The request app was not found', \OCP\API::RESPOND_NOT_FOUND);
111
+        }
112
+        return new DataResponse();
113
+    }
114 114
 
115
-	/**
116
-	 * @PasswordConfirmationRequired
117
-	 * @param string $app
118
-	 * @return DataResponse
119
-	 */
120
-	public function disable($app) {
121
-		$this->appManager->disableApp($app);
122
-		return new DataResponse();
123
-	}
115
+    /**
116
+     * @PasswordConfirmationRequired
117
+     * @param string $app
118
+     * @return DataResponse
119
+     */
120
+    public function disable($app) {
121
+        $this->appManager->disableApp($app);
122
+        return new DataResponse();
123
+    }
124 124
 
125 125
 }
Please login to merge, or discard this patch.