From f63f0aa1ae338b6599a591faf9d35d82e9f78457 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 21 Sep 2016 18:55:58 +0200 Subject: [PATCH] get node by path as fallback Signed-off-by: Robin Appelman --- apps/files_sharing/lib/API/Share20OCS.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/files_sharing/lib/API/Share20OCS.php b/apps/files_sharing/lib/API/Share20OCS.php index d5a6d8bc9d..ac9ddc1fff 100644 --- a/apps/files_sharing/lib/API/Share20OCS.php +++ b/apps/files_sharing/lib/API/Share20OCS.php @@ -140,10 +140,14 @@ class Share20OCS extends OCSController { $nodes = $userFolder->getById($share->getNodeId()); if (empty($nodes)) { - throw new NotFoundException(); + // fallback to guessing the path + $node = $userFolder->get($share->getTarget()); + if ($node === null) { + throw new NotFoundException(); + } + } else { + $node = $nodes[0]; } - - $node = $nodes[0]; } $result['path'] = $userFolder->getRelativePath($node->getPath()); @@ -405,8 +409,6 @@ class Share20OCS extends OCSController { try { $share = $this->shareManager->createShare($share); - $userFolder = $this->rootFolder->getUserFolder($this->currentUser->getUID()); - $recipientNode = $userFolder->get($share->getTarget()); } catch (GenericShareException $e) { $code = $e->getCode() === 0 ? 403 : $e->getCode(); throw new OCSException($e->getHint(), $code); @@ -416,7 +418,7 @@ class Share20OCS extends OCSController { $share->getNode()->unlock(ILockingProvider::LOCK_SHARED); } - $output = $this->formatShare($share, $recipientNode); + $output = $this->formatShare($share); return new DataResponse($output); }