From 6624fa212a4627217c9c95771f7bb933baaddbc1 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Fri, 30 Oct 2015 13:10:08 +0100 Subject: The new sharing code now handles deletion OCS -> ShareManager -> DefaultShareProvider --- apps/files_sharing/api/share20ocs.php | 73 +++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 apps/files_sharing/api/share20ocs.php (limited to 'apps/files_sharing/api/share20ocs.php') diff --git a/apps/files_sharing/api/share20ocs.php b/apps/files_sharing/api/share20ocs.php new file mode 100644 index 00000000000..aeeb3ee25b3 --- /dev/null +++ b/apps/files_sharing/api/share20ocs.php @@ -0,0 +1,73 @@ + + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ +namespace OCA\Files_Sharing\API; + +class Share20OCS { + + /** @var OC\Share20\Manager */ + private $shareManager; + + /** @var OCP\IGroupManager */ + private $groupManager; + + /** @var OCP\IUserManager */ + private $userManager; + + /** @var OCP\IRequest */ + private $request; + + /** @var OCP\Files\Folder */ + private $userFolder; + + public function __construct(\OC\Share20\Manager $shareManager, + \OCP\IGroupManager $groupManager, + \OCP\IUserManager $userManager, + \OCP\IRequest $request, + \OCP\Files\Folder $userFolder) { + $this->shareManager = $shareManager; + $this->userManager = $userManager; + $this->groupManager = $groupManager; + $this->request = $request; + $this->userFolder = $userFolder; + } + + /** + * Delete a share + * + * @param int $id + * @return \OC_OCS_Result + */ + public function deleteShare($id) { + try { + $share = $this->shareManager->getShareById($id); + } catch (\OC\Share20\Exception\ShareNotFound $e) { + return new \OC_OCS_Result(null, 404, 'wrong share ID, share doesn\'t exist.'); + } + + try { + $this->shareManager->deleteShare($share); + } catch (\OC\Share20\Exception\BackendError $e) { + return new \OC_OCS_Result(null, 404, 'could not delete share'); + } + + return new \OC_OCS_Result(); + } +} -- cgit v1.2.3 From 0c566698a161b0385ddce34293f98e040ba4d660 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Mon, 2 Nov 2015 19:49:39 +0100 Subject: Use the old code for remote shares for now --- apps/files_sharing/api/share20ocs.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'apps/files_sharing/api/share20ocs.php') diff --git a/apps/files_sharing/api/share20ocs.php b/apps/files_sharing/api/share20ocs.php index aeeb3ee25b3..8a7f90c0023 100644 --- a/apps/files_sharing/api/share20ocs.php +++ b/apps/files_sharing/api/share20ocs.php @@ -62,6 +62,14 @@ class Share20OCS { return new \OC_OCS_Result(null, 404, 'wrong share ID, share doesn\'t exist.'); } + /* + * FIXME + * User the old code path for remote shares until we have our remoteshareprovider + */ + if ($share->getShareType() === \OCP\Share::SHARE_TYPE_REMOTE) { + \OCA\Files_Sharing\API\Local::deleteShare(['id' => $id]); + } + try { $this->shareManager->deleteShare($share); } catch (\OC\Share20\Exception\BackendError $e) { -- cgit v1.2.3