diff options
Diffstat (limited to 'apps/dav/lib/Upload/RootCollection.php')
-rw-r--r-- | apps/dav/lib/Upload/RootCollection.php | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/apps/dav/lib/Upload/RootCollection.php b/apps/dav/lib/Upload/RootCollection.php new file mode 100644 index 00000000000..cd7ab7f5e0a --- /dev/null +++ b/apps/dav/lib/Upload/RootCollection.php @@ -0,0 +1,50 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCA\DAV\Upload; + +use OCP\Files\IRootFolder; +use OCP\IUserSession; +use OCP\Share\IManager; +use Sabre\DAVACL\AbstractPrincipalCollection; +use Sabre\DAVACL\PrincipalBackend; + +class RootCollection extends AbstractPrincipalCollection { + + public function __construct( + PrincipalBackend\BackendInterface $principalBackend, + string $principalPrefix, + private CleanupService $cleanupService, + private IRootFolder $rootFolder, + private IUserSession $userSession, + private IManager $shareManager, + ) { + parent::__construct($principalBackend, $principalPrefix); + } + + /** + * @inheritdoc + */ + public function getChildForPrincipal(array $principalInfo): UploadHome { + return new UploadHome( + $principalInfo, + $this->cleanupService, + $this->rootFolder, + $this->userSession, + $this->shareManager, + ); + } + + /** + * @inheritdoc + */ + public function getName(): string { + return 'uploads'; + } +} |