diff options
Diffstat (limited to 'apps/dav/lib/Upload/UploadHome.php')
-rw-r--r-- | apps/dav/lib/Upload/UploadHome.php | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/apps/dav/lib/Upload/UploadHome.php b/apps/dav/lib/Upload/UploadHome.php index 6976ece9943..fcfd978b33d 100644 --- a/apps/dav/lib/Upload/UploadHome.php +++ b/apps/dav/lib/Upload/UploadHome.php @@ -30,51 +30,56 @@ use Sabre\DAV\Exception\Forbidden; use Sabre\DAV\ICollection; class UploadHome implements ICollection { - /** - * UploadHome constructor. - * - * @param array $principalInfo - */ - public function __construct($principalInfo) { + + /** @var array */ + private $principalInfo; + /** @var CleanupService */ + private $cleanupService; + + public function __construct(array $principalInfo, CleanupService $cleanupService) { $this->principalInfo = $principalInfo; + $this->cleanupService = $cleanupService; } - function createFile($name, $data = null) { + public function createFile($name, $data = null) { throw new Forbidden('Permission denied to create file (filename ' . $name . ')'); } - function createDirectory($name) { + public function createDirectory($name) { $this->impl()->createDirectory($name); + + // Add a cleanup job + $this->cleanupService->addJob($name); } - function getChild($name) { - return new UploadFolder($this->impl()->getChild($name)); + public function getChild($name): UploadFolder { + return new UploadFolder($this->impl()->getChild($name), $this->cleanupService); } - function getChildren() { + public function getChildren(): array { return array_map(function($node) { - return new UploadFolder($node); + return new UploadFolder($node, $this->cleanupService); }, $this->impl()->getChildren()); } - function childExists($name) { + public function childExists($name): bool { return !is_null($this->getChild($name)); } - function delete() { + public function delete() { $this->impl()->delete(); } - function getName() { + public function getName() { list(,$name) = \Sabre\Uri\split($this->principalInfo['uri']); return $name; } - function setName($name) { + public function setName($name) { throw new Forbidden('Permission denied to rename this folder'); } - function getLastModified() { + public function getLastModified() { return $this->impl()->getLastModified(); } |