From 5401732cd2aa0a47aa14ee7618b65214d65849ee Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Mon, 30 Apr 2018 21:18:49 +0200 Subject: Allow to read get old versions Signed-off-by: Roeland Jago Douma --- apps/files_versions/lib/Sabre/VersionFile.php | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'apps/files_versions/lib/Sabre/VersionFile.php') diff --git a/apps/files_versions/lib/Sabre/VersionFile.php b/apps/files_versions/lib/Sabre/VersionFile.php index b84215cb3d6..347058448fc 100644 --- a/apps/files_versions/lib/Sabre/VersionFile.php +++ b/apps/files_versions/lib/Sabre/VersionFile.php @@ -24,16 +24,23 @@ declare(strict_types=1); namespace OCA\Files_Versions\Sabre; use OCA\Files_Versions\Storage; -use OCP\Files\FileInfo; +use OCP\Files\File; +use OCP\Files\Folder; +use OCP\Files\NotFoundException; use Sabre\DAV\Exception\Forbidden; +use Sabre\DAV\Exception\NotFound; use Sabre\DAV\IFile; class VersionFile implements IFile { /** @var array */ private $data; - public function __construct(array $data) { + /** @var Folder */ + private $userRoot; + + public function __construct(array $data, Folder $userRoot) { $this->data = $data; + $this->userRoot = $userRoot; } public function put($data) { @@ -41,7 +48,16 @@ class VersionFile implements IFile { } public function get() { - throw new Forbidden(); + try { + /** @var Folder $versions */ + $versions = $this->userRoot->get('files_versions'); + /** @var File $version */ + $version = $versions->get($this->data['path'].'.v'.$this->data['version']); + } catch (NotFoundException $e) { + throw new NotFound(); + } + + return $version->fopen('rb'); } public function getContentType(): string { -- cgit v1.2.3