diff options
author | Vincent Petry <pvince81@owncloud.com> | 2016-06-10 16:49:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-10 16:49:50 +0200 |
commit | 14fde6650c4b70e53999c21048ed58aa5981afb2 (patch) | |
tree | 00531b6289db83303e3a81fa2caf0271fc9197c7 /apps/files_sharing/lib | |
parent | ffb2838dd89cc1eb4121f82c0954d6785b4448bb (diff) | |
parent | 72c5535492f10024f25f4b641c4c481f203a2872 (diff) | |
download | nextcloud-server-14fde6650c4b70e53999c21048ed58aa5981afb2.tar.gz nextcloud-server-14fde6650c4b70e53999c21048ed58aa5981afb2.zip |
Merge pull request #25003 from owncloud/fix_ocs_path_response
Fix OCS Share API path response
Diffstat (limited to 'apps/files_sharing/lib')
-rw-r--r-- | apps/files_sharing/lib/API/Share20OCS.php | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/apps/files_sharing/lib/API/Share20OCS.php b/apps/files_sharing/lib/API/Share20OCS.php index 90e1f19130c..53b27aae0b8 100644 --- a/apps/files_sharing/lib/API/Share20OCS.php +++ b/apps/files_sharing/lib/API/Share20OCS.php @@ -100,15 +100,8 @@ class Share20OCS { */ protected function formatShare(\OCP\Share\IShare $share) { $sharedBy = $this->userManager->get($share->getSharedBy()); - // for federated shares the owner can be a remote user, in this - // case we use the initiator - if ($this->userManager->userExists($share->getShareOwner())) { - $shareOwner = $this->userManager->get($share->getShareOwner()); - $localUser = $share->getShareOwner(); - } else { - $shareOwner = $this->userManager->get($share->getSharedBy()); - $localUser = $share->getSharedBy(); - } + $shareOwner = $this->userManager->get($share->getShareOwner()); + $result = [ 'id' => $share->getId(), 'share_type' => $share->getShareType(), @@ -123,8 +116,16 @@ class Share20OCS { 'displayname_file_owner' => $shareOwner !== null ? $shareOwner->getDisplayName() : $share->getShareOwner(), ]; - $node = $share->getNode(); - $result['path'] = $this->rootFolder->getUserFolder($localUser)->getRelativePath($node->getPath()); + $userFolder = $this->rootFolder->getUserFolder($this->currentUser->getUID()); + $nodes = $userFolder->getById($share->getNodeId()); + + if (empty($nodes)) { + throw new NotFoundException(); + } + + $node = $nodes[0]; + + $result['path'] = $userFolder->getRelativePath($node->getPath()); if ($node instanceOf \OCP\Files\Folder) { $result['item_type'] = 'folder'; } else { @@ -536,7 +537,6 @@ class Share20OCS { $shares = array_merge($shares, $federatedShares); } - $formatted = []; foreach ($shares as $share) { try { |