diff options
Diffstat (limited to 'apps/files_sharing/lib/Controller/ExternalSharesController.php')
-rw-r--r-- | apps/files_sharing/lib/Controller/ExternalSharesController.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/apps/files_sharing/lib/Controller/ExternalSharesController.php b/apps/files_sharing/lib/Controller/ExternalSharesController.php new file mode 100644 index 00000000000..fa828a9d2c2 --- /dev/null +++ b/apps/files_sharing/lib/Controller/ExternalSharesController.php @@ -0,0 +1,62 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCA\Files_Sharing\Controller; + +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\Attribute\NoAdminRequired; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; + +/** + * Class ExternalSharesController + * + * @package OCA\Files_Sharing\Controller + */ +class ExternalSharesController extends Controller { + public function __construct( + string $appName, + IRequest $request, + private \OCA\Files_Sharing\External\Manager $externalManager, + ) { + parent::__construct($appName, $request); + } + + /** + * @NoOutgoingFederatedSharingRequired + * + * @return JSONResponse + */ + #[NoAdminRequired] + public function index() { + return new JSONResponse($this->externalManager->getOpenShares()); + } + + /** + * @NoOutgoingFederatedSharingRequired + * + * @param int $id + * @return JSONResponse + */ + #[NoAdminRequired] + public function create($id) { + $this->externalManager->acceptShare($id); + return new JSONResponse(); + } + + /** + * @NoOutgoingFederatedSharingRequired + * + * @param integer $id + * @return JSONResponse + */ + #[NoAdminRequired] + public function destroy($id) { + $this->externalManager->declineShare($id); + return new JSONResponse(); + } +} |