Completed
Pull Request — master (#9345)
by Björn
23:58
created
apps/files_sharing/lib/Controller/ExternalSharesController.php 2 patches
Indentation   +100 added lines, -100 removed lines patch added patch discarded remove patch
@@ -39,112 +39,112 @@
 block discarded – undo
39 39
  */
40 40
 class ExternalSharesController extends Controller {
41 41
 
42
-	/** @var \OCA\Files_Sharing\External\Manager */
43
-	private $externalManager;
44
-	/** @var IClientService */
45
-	private $clientService;
42
+    /** @var \OCA\Files_Sharing\External\Manager */
43
+    private $externalManager;
44
+    /** @var IClientService */
45
+    private $clientService;
46 46
 
47
-	/**
48
-	 * @param string $appName
49
-	 * @param IRequest $request
50
-	 * @param \OCA\Files_Sharing\External\Manager $externalManager
51
-	 * @param IClientService $clientService
52
-	 */
53
-	public function __construct($appName,
54
-								IRequest $request,
55
-								\OCA\Files_Sharing\External\Manager $externalManager,
56
-								IClientService $clientService) {
57
-		parent::__construct($appName, $request);
58
-		$this->externalManager = $externalManager;
59
-		$this->clientService = $clientService;
60
-	}
47
+    /**
48
+     * @param string $appName
49
+     * @param IRequest $request
50
+     * @param \OCA\Files_Sharing\External\Manager $externalManager
51
+     * @param IClientService $clientService
52
+     */
53
+    public function __construct($appName,
54
+                                IRequest $request,
55
+                                \OCA\Files_Sharing\External\Manager $externalManager,
56
+                                IClientService $clientService) {
57
+        parent::__construct($appName, $request);
58
+        $this->externalManager = $externalManager;
59
+        $this->clientService = $clientService;
60
+    }
61 61
 
62
-	/**
63
-	 * @NoAdminRequired
64
-	 * @NoOutgoingFederatedSharingRequired
65
-	 *
66
-	 * @return JSONResponse
67
-	 */
68
-	public function index() {
69
-		return new JSONResponse($this->externalManager->getOpenShares());
70
-	}
62
+    /**
63
+     * @NoAdminRequired
64
+     * @NoOutgoingFederatedSharingRequired
65
+     *
66
+     * @return JSONResponse
67
+     */
68
+    public function index() {
69
+        return new JSONResponse($this->externalManager->getOpenShares());
70
+    }
71 71
 
72
-	/**
73
-	 * @NoAdminRequired
74
-	 * @NoOutgoingFederatedSharingRequired
75
-	 *
76
-	 * @param int $id
77
-	 * @return JSONResponse
78
-	 */
79
-	public function create($id) {
80
-		$this->externalManager->acceptShare($id);
81
-		return new JSONResponse();
82
-	}
72
+    /**
73
+     * @NoAdminRequired
74
+     * @NoOutgoingFederatedSharingRequired
75
+     *
76
+     * @param int $id
77
+     * @return JSONResponse
78
+     */
79
+    public function create($id) {
80
+        $this->externalManager->acceptShare($id);
81
+        return new JSONResponse();
82
+    }
83 83
 
84
-	/**
85
-	 * @NoAdminRequired
86
-	 * @NoOutgoingFederatedSharingRequired
87
-	 *
88
-	 * @param integer $id
89
-	 * @return JSONResponse
90
-	 */
91
-	public function destroy($id) {
92
-		$this->externalManager->declineShare($id);
93
-		return new JSONResponse();
94
-	}
84
+    /**
85
+     * @NoAdminRequired
86
+     * @NoOutgoingFederatedSharingRequired
87
+     *
88
+     * @param integer $id
89
+     * @return JSONResponse
90
+     */
91
+    public function destroy($id) {
92
+        $this->externalManager->declineShare($id);
93
+        return new JSONResponse();
94
+    }
95 95
 
96
-	/**
97
-	 * Test whether the specified remote is accessible
98
-	 *
99
-	 * @param string $remote
100
-	 * @param bool $checkVersion
101
-	 * @return bool
102
-	 */
103
-	protected function testUrl($remote, $checkVersion = false) {
104
-		try {
105
-			$client = $this->clientService->newClient();
106
-			$response = json_decode($client->get(
107
-				$remote,
108
-				[
109
-					'timeout' => 3,
110
-					'connect_timeout' => 3,
111
-				]
112
-			)->getBody());
96
+    /**
97
+     * Test whether the specified remote is accessible
98
+     *
99
+     * @param string $remote
100
+     * @param bool $checkVersion
101
+     * @return bool
102
+     */
103
+    protected function testUrl($remote, $checkVersion = false) {
104
+        try {
105
+            $client = $this->clientService->newClient();
106
+            $response = json_decode($client->get(
107
+                $remote,
108
+                [
109
+                    'timeout' => 3,
110
+                    'connect_timeout' => 3,
111
+                ]
112
+            )->getBody());
113 113
 
114
-			if ($checkVersion) {
115
-				return !empty($response->version) && version_compare($response->version, '7.0.0', '>=');
116
-			} else {
117
-				return is_object($response);
118
-			}
119
-		} catch (\Exception $e) {
120
-			return false;
121
-		}
122
-	}
114
+            if ($checkVersion) {
115
+                return !empty($response->version) && version_compare($response->version, '7.0.0', '>=');
116
+            } else {
117
+                return is_object($response);
118
+            }
119
+        } catch (\Exception $e) {
120
+            return false;
121
+        }
122
+    }
123 123
 
124
-	/**
125
-	 * @PublicPage
126
-	 * @NoOutgoingFederatedSharingRequired
127
-	 * @NoIncomingFederatedSharingRequired
128
-	 *
129
-	 * @param string $remote
130
-	 * @return DataResponse
131
-	 */
132
-	public function testRemote($remote) {
133
-		if (
134
-			$this->testUrl('https://' . $remote . '/ocs-provider/') ||
135
-			$this->testUrl('https://' . $remote . '/ocs-provider/index.php') ||
136
-			$this->testUrl('https://' . $remote . '/status.php', true)
137
-		) {
138
-			return new DataResponse('https');
139
-		} elseif (
140
-			$this->testUrl('http://' . $remote . '/ocs-provider/') ||
141
-			$this->testUrl('http://' . $remote . '/ocs-provider/index.php') ||
142
-			$this->testUrl('http://' . $remote . '/status.php', true)
143
-		) {
144
-			return new DataResponse('http');
145
-		} else {
146
-			return new DataResponse(false);
147
-		}
148
-	}
124
+    /**
125
+     * @PublicPage
126
+     * @NoOutgoingFederatedSharingRequired
127
+     * @NoIncomingFederatedSharingRequired
128
+     *
129
+     * @param string $remote
130
+     * @return DataResponse
131
+     */
132
+    public function testRemote($remote) {
133
+        if (
134
+            $this->testUrl('https://' . $remote . '/ocs-provider/') ||
135
+            $this->testUrl('https://' . $remote . '/ocs-provider/index.php') ||
136
+            $this->testUrl('https://' . $remote . '/status.php', true)
137
+        ) {
138
+            return new DataResponse('https');
139
+        } elseif (
140
+            $this->testUrl('http://' . $remote . '/ocs-provider/') ||
141
+            $this->testUrl('http://' . $remote . '/ocs-provider/index.php') ||
142
+            $this->testUrl('http://' . $remote . '/status.php', true)
143
+        ) {
144
+            return new DataResponse('http');
145
+        } else {
146
+            return new DataResponse(false);
147
+        }
148
+    }
149 149
 
150 150
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -131,15 +131,15 @@
 block discarded – undo
131 131
 	 */
132 132
 	public function testRemote($remote) {
133 133
 		if (
134
-			$this->testUrl('https://' . $remote . '/ocs-provider/') ||
135
-			$this->testUrl('https://' . $remote . '/ocs-provider/index.php') ||
136
-			$this->testUrl('https://' . $remote . '/status.php', true)
134
+			$this->testUrl('https://'.$remote.'/ocs-provider/') ||
135
+			$this->testUrl('https://'.$remote.'/ocs-provider/index.php') ||
136
+			$this->testUrl('https://'.$remote.'/status.php', true)
137 137
 		) {
138 138
 			return new DataResponse('https');
139 139
 		} elseif (
140
-			$this->testUrl('http://' . $remote . '/ocs-provider/') ||
141
-			$this->testUrl('http://' . $remote . '/ocs-provider/index.php') ||
142
-			$this->testUrl('http://' . $remote . '/status.php', true)
140
+			$this->testUrl('http://'.$remote.'/ocs-provider/') ||
141
+			$this->testUrl('http://'.$remote.'/ocs-provider/index.php') ||
142
+			$this->testUrl('http://'.$remote.'/status.php', true)
143 143
 		) {
144 144
 			return new DataResponse('http');
145 145
 		} else {
Please login to merge, or discard this patch.
apps/files_sharing/lib/ISharedStorage.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -23,6 +23,6 @@
 block discarded – undo
23 23
 
24 24
 namespace OCA\Files_Sharing;
25 25
 
26
-interface ISharedStorage{
26
+interface ISharedStorage {
27 27
 
28 28
 }
Please login to merge, or discard this patch.
apps/files_sharing/lib/Exceptions/BrokenPath.php 1 patch
Indentation   -1 removed lines patch added patch discarded remove patch
@@ -27,7 +27,6 @@
 block discarded – undo
27 27
  * Expected path with a different root
28 28
  * Possible Error Codes:
29 29
  * 10 - Path not relative to data/ and point to the users file directory
30
-
31 30
  */
32 31
 class BrokenPath extends \Exception {
33 32
 }
Please login to merge, or discard this patch.
apps/files_sharing/lib/External/Scanner.php 2 patches
Indentation   +87 added lines, -87 removed lines patch added patch discarded remove patch
@@ -32,97 +32,97 @@
 block discarded – undo
32 32
 use OCP\Files\StorageNotAvailableException;
33 33
 
34 34
 class Scanner extends \OC\Files\Cache\Scanner {
35
-	/** @var \OCA\Files_Sharing\External\Storage */
36
-	protected $storage;
35
+    /** @var \OCA\Files_Sharing\External\Storage */
36
+    protected $storage;
37 37
 
38
-	/** {@inheritDoc} */
39
-	public function scan($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1, $lock = true) {
40
-		if(!$this->storage->remoteIsOwnCloud()) {
41
-			return parent::scan($path, $recursive, $recursive, $lock);
42
-		}
38
+    /** {@inheritDoc} */
39
+    public function scan($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1, $lock = true) {
40
+        if(!$this->storage->remoteIsOwnCloud()) {
41
+            return parent::scan($path, $recursive, $recursive, $lock);
42
+        }
43 43
 
44
-		$this->scanAll();
45
-	}
44
+        $this->scanAll();
45
+    }
46 46
 
47
-	/**
48
-	 * Scan a single file and store it in the cache.
49
-	 * If an exception happened while accessing the external storage,
50
-	 * the storage will be checked for availability and removed
51
-	 * if it is not available any more.
52
-	 *
53
-	 * @param string $file file to scan
54
-	 * @param int $reuseExisting
55
-	 * @param int $parentId
56
-	 * @param array | null $cacheData existing data in the cache for the file to be scanned
57
-	 * @param bool $lock set to false to disable getting an additional read lock during scanning
58
-	 * @return array an array of metadata of the scanned file
59
-	 */
60
-	public function scanFile($file, $reuseExisting = 0, $parentId = -1, $cacheData = null, $lock = true) {
61
-		try {
62
-			return parent::scanFile($file, $reuseExisting);
63
-		} catch (ForbiddenException $e) {
64
-			$this->storage->checkStorageAvailability();
65
-		} catch (NotFoundException $e) {
66
-			// if the storage isn't found, the call to
67
-			// checkStorageAvailable() will verify it and remove it
68
-			// if appropriate
69
-			$this->storage->checkStorageAvailability();
70
-		} catch (StorageInvalidException $e) {
71
-			$this->storage->checkStorageAvailability();
72
-		} catch (StorageNotAvailableException $e) {
73
-			$this->storage->checkStorageAvailability();
74
-		}
75
-	}
47
+    /**
48
+     * Scan a single file and store it in the cache.
49
+     * If an exception happened while accessing the external storage,
50
+     * the storage will be checked for availability and removed
51
+     * if it is not available any more.
52
+     *
53
+     * @param string $file file to scan
54
+     * @param int $reuseExisting
55
+     * @param int $parentId
56
+     * @param array | null $cacheData existing data in the cache for the file to be scanned
57
+     * @param bool $lock set to false to disable getting an additional read lock during scanning
58
+     * @return array an array of metadata of the scanned file
59
+     */
60
+    public function scanFile($file, $reuseExisting = 0, $parentId = -1, $cacheData = null, $lock = true) {
61
+        try {
62
+            return parent::scanFile($file, $reuseExisting);
63
+        } catch (ForbiddenException $e) {
64
+            $this->storage->checkStorageAvailability();
65
+        } catch (NotFoundException $e) {
66
+            // if the storage isn't found, the call to
67
+            // checkStorageAvailable() will verify it and remove it
68
+            // if appropriate
69
+            $this->storage->checkStorageAvailability();
70
+        } catch (StorageInvalidException $e) {
71
+            $this->storage->checkStorageAvailability();
72
+        } catch (StorageNotAvailableException $e) {
73
+            $this->storage->checkStorageAvailability();
74
+        }
75
+    }
76 76
 
77
-	/**
78
-	 * Checks the remote share for changes.
79
-	 * If changes are available, scan them and update
80
-	 * the cache.
81
-	 * @throws NotFoundException
82
-	 * @throws StorageInvalidException
83
-	 * @throws \Exception
84
-	 */
85
-	public function scanAll() {
86
-		try {
87
-			$data = $this->storage->getShareInfo();
88
-		} catch (\Exception $e) {
89
-			$this->storage->checkStorageAvailability();
90
-			throw new \Exception(
91
-				'Error while scanning remote share: "' .
92
-				$this->storage->getRemote() . '" ' .
93
-				$e->getMessage()
94
-			);
95
-		}
96
-		if ($data['status'] === 'success') {
97
-			$this->addResult($data['data'], '');
98
-		} else {
99
-			throw new \Exception(
100
-				'Error while scanning remote share: "' .
101
-				$this->storage->getRemote() . '"'
102
-			);
103
-		}
104
-	}
77
+    /**
78
+     * Checks the remote share for changes.
79
+     * If changes are available, scan them and update
80
+     * the cache.
81
+     * @throws NotFoundException
82
+     * @throws StorageInvalidException
83
+     * @throws \Exception
84
+     */
85
+    public function scanAll() {
86
+        try {
87
+            $data = $this->storage->getShareInfo();
88
+        } catch (\Exception $e) {
89
+            $this->storage->checkStorageAvailability();
90
+            throw new \Exception(
91
+                'Error while scanning remote share: "' .
92
+                $this->storage->getRemote() . '" ' .
93
+                $e->getMessage()
94
+            );
95
+        }
96
+        if ($data['status'] === 'success') {
97
+            $this->addResult($data['data'], '');
98
+        } else {
99
+            throw new \Exception(
100
+                'Error while scanning remote share: "' .
101
+                $this->storage->getRemote() . '"'
102
+            );
103
+        }
104
+    }
105 105
 
106
-	/**
107
-	 * @param array $data
108
-	 * @param string $path
109
-	 */
110
-	private function addResult($data, $path) {
111
-		$id = $this->cache->put($path, $data);
112
-		if (isset($data['children'])) {
113
-			$children = [];
114
-			foreach ($data['children'] as $child) {
115
-				$children[$child['name']] = true;
116
-				$this->addResult($child, ltrim($path . '/' . $child['name'], '/'));
117
-			}
106
+    /**
107
+     * @param array $data
108
+     * @param string $path
109
+     */
110
+    private function addResult($data, $path) {
111
+        $id = $this->cache->put($path, $data);
112
+        if (isset($data['children'])) {
113
+            $children = [];
114
+            foreach ($data['children'] as $child) {
115
+                $children[$child['name']] = true;
116
+                $this->addResult($child, ltrim($path . '/' . $child['name'], '/'));
117
+            }
118 118
 
119
-			$existingCache = $this->cache->getFolderContentsById($id);
120
-			foreach ($existingCache as $existingChild) {
121
-				// if an existing child is not in the new data, remove it
122
-				if (!isset($children[$existingChild['name']])) {
123
-					$this->cache->remove(ltrim($path . '/' . $existingChild['name'], '/'));
124
-				}
125
-			}
126
-		}
127
-	}
119
+            $existingCache = $this->cache->getFolderContentsById($id);
120
+            foreach ($existingCache as $existingChild) {
121
+                // if an existing child is not in the new data, remove it
122
+                if (!isset($children[$existingChild['name']])) {
123
+                    $this->cache->remove(ltrim($path . '/' . $existingChild['name'], '/'));
124
+                }
125
+            }
126
+        }
127
+    }
128 128
 }
Please login to merge, or discard this patch.
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 
38 38
 	/** {@inheritDoc} */
39 39
 	public function scan($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1, $lock = true) {
40
-		if(!$this->storage->remoteIsOwnCloud()) {
40
+		if (!$this->storage->remoteIsOwnCloud()) {
41 41
 			return parent::scan($path, $recursive, $recursive, $lock);
42 42
 		}
43 43
 
@@ -88,8 +88,8 @@  discard block
 block discarded – undo
88 88
 		} catch (\Exception $e) {
89 89
 			$this->storage->checkStorageAvailability();
90 90
 			throw new \Exception(
91
-				'Error while scanning remote share: "' .
92
-				$this->storage->getRemote() . '" ' .
91
+				'Error while scanning remote share: "'.
92
+				$this->storage->getRemote().'" '.
93 93
 				$e->getMessage()
94 94
 			);
95 95
 		}
@@ -97,8 +97,8 @@  discard block
 block discarded – undo
97 97
 			$this->addResult($data['data'], '');
98 98
 		} else {
99 99
 			throw new \Exception(
100
-				'Error while scanning remote share: "' .
101
-				$this->storage->getRemote() . '"'
100
+				'Error while scanning remote share: "'.
101
+				$this->storage->getRemote().'"'
102 102
 			);
103 103
 		}
104 104
 	}
@@ -113,14 +113,14 @@  discard block
 block discarded – undo
113 113
 			$children = [];
114 114
 			foreach ($data['children'] as $child) {
115 115
 				$children[$child['name']] = true;
116
-				$this->addResult($child, ltrim($path . '/' . $child['name'], '/'));
116
+				$this->addResult($child, ltrim($path.'/'.$child['name'], '/'));
117 117
 			}
118 118
 
119 119
 			$existingCache = $this->cache->getFolderContentsById($id);
120 120
 			foreach ($existingCache as $existingChild) {
121 121
 				// if an existing child is not in the new data, remove it
122 122
 				if (!isset($children[$existingChild['name']])) {
123
-					$this->cache->remove(ltrim($path . '/' . $existingChild['name'], '/'));
123
+					$this->cache->remove(ltrim($path.'/'.$existingChild['name'], '/'));
124 124
 				}
125 125
 			}
126 126
 		}
Please login to merge, or discard this patch.
apps/files_sharing/lib/External/Cache.php 1 patch
Indentation   +37 added lines, -37 removed lines patch added patch discarded remove patch
@@ -27,44 +27,44 @@
 block discarded – undo
27 27
 use OCP\Federation\ICloudId;
28 28
 
29 29
 class Cache extends \OC\Files\Cache\Cache {
30
-	/** @var ICloudId */
31
-	private $cloudId;
32
-	private $remote;
33
-	private $remoteUser;
34
-	private $storage;
30
+    /** @var ICloudId */
31
+    private $cloudId;
32
+    private $remote;
33
+    private $remoteUser;
34
+    private $storage;
35 35
 
36
-	/**
37
-	 * @param \OCA\Files_Sharing\External\Storage $storage
38
-	 * @param ICloudId $cloudId
39
-	 */
40
-	public function __construct($storage, ICloudId $cloudId) {
41
-		$this->cloudId = $cloudId;
42
-		$this->storage = $storage;
43
-		list(, $remote) = explode('://', $cloudId->getRemote(), 2);
44
-		$this->remote = $remote;
45
-		$this->remoteUser = $cloudId->getUser();
46
-		parent::__construct($storage);
47
-	}
36
+    /**
37
+     * @param \OCA\Files_Sharing\External\Storage $storage
38
+     * @param ICloudId $cloudId
39
+     */
40
+    public function __construct($storage, ICloudId $cloudId) {
41
+        $this->cloudId = $cloudId;
42
+        $this->storage = $storage;
43
+        list(, $remote) = explode('://', $cloudId->getRemote(), 2);
44
+        $this->remote = $remote;
45
+        $this->remoteUser = $cloudId->getUser();
46
+        parent::__construct($storage);
47
+    }
48 48
 
49
-	public function get($file) {
50
-		$result = parent::get($file);
51
-		if (!$result) {
52
-			return false;
53
-		}
54
-		$result['displayname_owner'] = $this->cloudId->getDisplayId();
55
-		if (!$file || $file === '') {
56
-			$result['is_share_mount_point'] = true;
57
-			$mountPoint = rtrim($this->storage->getMountPoint());
58
-			$result['name'] = basename($mountPoint);
59
-		}
60
-		return $result;
61
-	}
49
+    public function get($file) {
50
+        $result = parent::get($file);
51
+        if (!$result) {
52
+            return false;
53
+        }
54
+        $result['displayname_owner'] = $this->cloudId->getDisplayId();
55
+        if (!$file || $file === '') {
56
+            $result['is_share_mount_point'] = true;
57
+            $mountPoint = rtrim($this->storage->getMountPoint());
58
+            $result['name'] = basename($mountPoint);
59
+        }
60
+        return $result;
61
+    }
62 62
 
63
-	public function getFolderContentsById($id) {
64
-		$results = parent::getFolderContentsById($id);
65
-		foreach ($results as &$file) {
66
-			$file['displayname_owner'] = $this->cloudId->getDisplayId();
67
-		}
68
-		return $results;
69
-	}
63
+    public function getFolderContentsById($id) {
64
+        $results = parent::getFolderContentsById($id);
65
+        foreach ($results as &$file) {
66
+            $file['displayname_owner'] = $this->cloudId->getDisplayId();
67
+        }
68
+        return $results;
69
+    }
70 70
 }
Please login to merge, or discard this patch.
apps/files_sharing/lib/External/MountProvider.php 2 patches
Indentation   +45 added lines, -45 removed lines patch added patch discarded remove patch
@@ -29,59 +29,59 @@
 block discarded – undo
29 29
 use OCP\IUser;
30 30
 
31 31
 class MountProvider implements IMountProvider {
32
-	const STORAGE = '\OCA\Files_Sharing\External\Storage';
32
+    const STORAGE = '\OCA\Files_Sharing\External\Storage';
33 33
 
34
-	/**
35
-	 * @var \OCP\IDBConnection
36
-	 */
37
-	private $connection;
34
+    /**
35
+     * @var \OCP\IDBConnection
36
+     */
37
+    private $connection;
38 38
 
39
-	/**
40
-	 * @var callable
41
-	 */
42
-	private $managerProvider;
39
+    /**
40
+     * @var callable
41
+     */
42
+    private $managerProvider;
43 43
 
44
-	/**
45
-	 * @var ICloudIdManager
46
-	 */
47
-	private $cloudIdManager;
44
+    /**
45
+     * @var ICloudIdManager
46
+     */
47
+    private $cloudIdManager;
48 48
 
49
-	/**
50
-	 * @param \OCP\IDBConnection $connection
51
-	 * @param callable $managerProvider due to setup order we need a callable that return the manager instead of the manager itself
52
-	 * @param ICloudIdManager $cloudIdManager
53
-	 */
54
-	public function __construct(IDBConnection $connection, callable $managerProvider, ICloudIdManager $cloudIdManager) {
55
-		$this->connection = $connection;
56
-		$this->managerProvider = $managerProvider;
57
-		$this->cloudIdManager = $cloudIdManager;
58
-	}
49
+    /**
50
+     * @param \OCP\IDBConnection $connection
51
+     * @param callable $managerProvider due to setup order we need a callable that return the manager instead of the manager itself
52
+     * @param ICloudIdManager $cloudIdManager
53
+     */
54
+    public function __construct(IDBConnection $connection, callable $managerProvider, ICloudIdManager $cloudIdManager) {
55
+        $this->connection = $connection;
56
+        $this->managerProvider = $managerProvider;
57
+        $this->cloudIdManager = $cloudIdManager;
58
+    }
59 59
 
60
-	public function getMount(IUser $user, $data, IStorageFactory $storageFactory) {
61
-		$managerProvider = $this->managerProvider;
62
-		$manager = $managerProvider();
63
-		$data['manager'] = $manager;
64
-		$mountPoint = '/' . $user->getUID() . '/files/' . ltrim($data['mountpoint'], '/');
65
-		$data['mountpoint'] = $mountPoint;
66
-		$data['cloudId'] = $this->cloudIdManager->getCloudId($data['owner'], $data['remote']);
67
-		$data['certificateManager'] = \OC::$server->getCertificateManager($user->getUID());
68
-		$data['HttpClientService'] = \OC::$server->getHTTPClientService();
69
-		return new Mount(self::STORAGE, $mountPoint, $data, $manager, $storageFactory);
70
-	}
60
+    public function getMount(IUser $user, $data, IStorageFactory $storageFactory) {
61
+        $managerProvider = $this->managerProvider;
62
+        $manager = $managerProvider();
63
+        $data['manager'] = $manager;
64
+        $mountPoint = '/' . $user->getUID() . '/files/' . ltrim($data['mountpoint'], '/');
65
+        $data['mountpoint'] = $mountPoint;
66
+        $data['cloudId'] = $this->cloudIdManager->getCloudId($data['owner'], $data['remote']);
67
+        $data['certificateManager'] = \OC::$server->getCertificateManager($user->getUID());
68
+        $data['HttpClientService'] = \OC::$server->getHTTPClientService();
69
+        return new Mount(self::STORAGE, $mountPoint, $data, $manager, $storageFactory);
70
+    }
71 71
 
72
-	public function getMountsForUser(IUser $user, IStorageFactory $loader) {
73
-		$query = $this->connection->prepare('
72
+    public function getMountsForUser(IUser $user, IStorageFactory $loader) {
73
+        $query = $this->connection->prepare('
74 74
 				SELECT `remote`, `share_token`, `password`, `mountpoint`, `owner`
75 75
 				FROM `*PREFIX*share_external`
76 76
 				WHERE `user` = ? AND `accepted` = ?
77 77
 			');
78
-		$query->execute([$user->getUID(), 1]);
79
-		$mounts = [];
80
-		while ($row = $query->fetch()) {
81
-			$row['manager'] = $this;
82
-			$row['token'] = $row['share_token'];
83
-			$mounts[] = $this->getMount($user, $row, $loader);
84
-		}
85
-		return $mounts;
86
-	}
78
+        $query->execute([$user->getUID(), 1]);
79
+        $mounts = [];
80
+        while ($row = $query->fetch()) {
81
+            $row['manager'] = $this;
82
+            $row['token'] = $row['share_token'];
83
+            $mounts[] = $this->getMount($user, $row, $loader);
84
+        }
85
+        return $mounts;
86
+    }
87 87
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -61,7 +61,7 @@
 block discarded – undo
61 61
 		$managerProvider = $this->managerProvider;
62 62
 		$manager = $managerProvider();
63 63
 		$data['manager'] = $manager;
64
-		$mountPoint = '/' . $user->getUID() . '/files/' . ltrim($data['mountpoint'], '/');
64
+		$mountPoint = '/'.$user->getUID().'/files/'.ltrim($data['mountpoint'], '/');
65 65
 		$data['mountpoint'] = $mountPoint;
66 66
 		$data['cloudId'] = $this->cloudIdManager->getCloudId($data['owner'], $data['remote']);
67 67
 		$data['certificateManager'] = \OC::$server->getCertificateManager($user->getUID());
Please login to merge, or discard this patch.
apps/files_sharing/lib/External/Watcher.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -23,12 +23,12 @@
 block discarded – undo
23 23
 namespace OCA\Files_Sharing\External;
24 24
 
25 25
 class Watcher extends \OC\Files\Cache\Watcher {
26
-	/**
27
-	 * remove deleted files in $path from the cache
28
-	 *
29
-	 * @param string $path
30
-	 */
31
-	public function cleanFolder($path) {
32
-		// not needed, the scanner takes care of this
33
-	}
26
+    /**
27
+     * remove deleted files in $path from the cache
28
+     *
29
+     * @param string $path
30
+     */
31
+    public function cleanFolder($path) {
32
+        // not needed, the scanner takes care of this
33
+    }
34 34
 }
Please login to merge, or discard this patch.
apps/files_sharing/lib/DeleteOrphanedSharesJob.php 2 patches
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -31,36 +31,36 @@
 block discarded – undo
31 31
  */
32 32
 class DeleteOrphanedSharesJob extends TimedJob {
33 33
 
34
-	/**
35
-	 * Default interval in minutes
36
-	 *
37
-	 * @var int $defaultIntervalMin
38
-	 **/
39
-	protected $defaultIntervalMin = 15;
34
+    /**
35
+     * Default interval in minutes
36
+     *
37
+     * @var int $defaultIntervalMin
38
+     **/
39
+    protected $defaultIntervalMin = 15;
40 40
 
41
-	/**
42
-	 * sets the correct interval for this timed job
43
-	 */
44
-	public function __construct(){
45
-		$this->interval = $this->defaultIntervalMin * 60;
46
-	}
41
+    /**
42
+     * sets the correct interval for this timed job
43
+     */
44
+    public function __construct(){
45
+        $this->interval = $this->defaultIntervalMin * 60;
46
+    }
47 47
 
48
-	/**
49
-	 * Makes the background job do its work
50
-	 *
51
-	 * @param array $argument unused argument
52
-	 */
53
-	public function run($argument) {
54
-		$connection = \OC::$server->getDatabaseConnection();
55
-		$logger = \OC::$server->getLogger();
48
+    /**
49
+     * Makes the background job do its work
50
+     *
51
+     * @param array $argument unused argument
52
+     */
53
+    public function run($argument) {
54
+        $connection = \OC::$server->getDatabaseConnection();
55
+        $logger = \OC::$server->getLogger();
56 56
 
57
-		$sql =
58
-			'DELETE FROM `*PREFIX*share` ' .
59
-			'WHERE `item_type` in (\'file\', \'folder\') ' .
60
-			'AND NOT EXISTS (SELECT `fileid` FROM `*PREFIX*filecache` WHERE `file_source` = `fileid`)';
57
+        $sql =
58
+            'DELETE FROM `*PREFIX*share` ' .
59
+            'WHERE `item_type` in (\'file\', \'folder\') ' .
60
+            'AND NOT EXISTS (SELECT `fileid` FROM `*PREFIX*filecache` WHERE `file_source` = `fileid`)';
61 61
 
62
-		$deletedEntries = $connection->executeUpdate($sql);
63
-		$logger->debug("$deletedEntries orphaned share(s) deleted", ['app' => 'DeleteOrphanedSharesJob']);
64
-	}
62
+        $deletedEntries = $connection->executeUpdate($sql);
63
+        $logger->debug("$deletedEntries orphaned share(s) deleted", ['app' => 'DeleteOrphanedSharesJob']);
64
+    }
65 65
 
66 66
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 	/**
42 42
 	 * sets the correct interval for this timed job
43 43
 	 */
44
-	public function __construct(){
44
+	public function __construct() {
45 45
 		$this->interval = $this->defaultIntervalMin * 60;
46 46
 	}
47 47
 
@@ -55,8 +55,8 @@  discard block
 block discarded – undo
55 55
 		$logger = \OC::$server->getLogger();
56 56
 
57 57
 		$sql =
58
-			'DELETE FROM `*PREFIX*share` ' .
59
-			'WHERE `item_type` in (\'file\', \'folder\') ' .
58
+			'DELETE FROM `*PREFIX*share` '.
59
+			'WHERE `item_type` in (\'file\', \'folder\') '.
60 60
 			'AND NOT EXISTS (SELECT `fileid` FROM `*PREFIX*filecache` WHERE `file_source` = `fileid`)';
61 61
 
62 62
 		$deletedEntries = $connection->executeUpdate($sql);
Please login to merge, or discard this patch.
apps/files_sharing/lib/ShareBackend/File.php 2 patches
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.
Indentation   +211 added lines, -211 removed lines patch added patch discarded remove patch
@@ -37,215 +37,215 @@
 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
-				$qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
211
-				$qb->select('parent', 'uid_owner')
212
-					->from('share')
213
-					->where(
214
-						$qb->expr()->eq('id', $qb->createNamedParameter($parent))
215
-					);
216
-				$result = $qb->execute();
217
-				$item = $result->fetch();
218
-				$result->closeCursor();
219
-				if (isset($item['parent'])) {
220
-					$parent = $item['parent'];
221
-				} else {
222
-					$fileOwner = $item['uid_owner'];
223
-					break;
224
-				}
225
-			}
226
-		} else {
227
-			$fileOwner = $source['uid_owner'];
228
-		}
229
-		if (isset($fileOwner)) {
230
-			$source['fileOwner'] = $fileOwner;
231
-		} else {
232
-			\OC::$server->getLogger()->error('No owner found for reshare', ['app' => 'files_sharing']);
233
-		}
234
-
235
-		return $source;
236
-	}
237
-
238
-	/**
239
-	 * @param string $target
240
-	 * @param array $share
241
-	 * @return array|false source item
242
-	 */
243
-	public static function getSource($target, $share) {
244
-		if ($share['item_type'] === 'folder' && $target !== '') {
245
-			// note: in case of ext storage mount points the path might be empty
246
-			// which would cause a leading slash to appear
247
-			$share['path'] = ltrim($share['path'] . '/' . $target, '/');
248
-		}
249
-		return self::resolveReshares($share);
250
-	}
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
+                $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
211
+                $qb->select('parent', 'uid_owner')
212
+                    ->from('share')
213
+                    ->where(
214
+                        $qb->expr()->eq('id', $qb->createNamedParameter($parent))
215
+                    );
216
+                $result = $qb->execute();
217
+                $item = $result->fetch();
218
+                $result->closeCursor();
219
+                if (isset($item['parent'])) {
220
+                    $parent = $item['parent'];
221
+                } else {
222
+                    $fileOwner = $item['uid_owner'];
223
+                    break;
224
+                }
225
+            }
226
+        } else {
227
+            $fileOwner = $source['uid_owner'];
228
+        }
229
+        if (isset($fileOwner)) {
230
+            $source['fileOwner'] = $fileOwner;
231
+        } else {
232
+            \OC::$server->getLogger()->error('No owner found for reshare', ['app' => 'files_sharing']);
233
+        }
234
+
235
+        return $source;
236
+    }
237
+
238
+    /**
239
+     * @param string $target
240
+     * @param array $share
241
+     * @return array|false source item
242
+     */
243
+    public static function getSource($target, $share) {
244
+        if ($share['item_type'] === 'folder' && $target !== '') {
245
+            // note: in case of ext storage mount points the path might be empty
246
+            // which would cause a leading slash to appear
247
+            $share['path'] = ltrim($share['path'] . '/' . $target, '/');
248
+        }
249
+        return self::resolveReshares($share);
250
+    }
251 251
 }
Please login to merge, or discard this patch.