]> source.dussan.org Git - nextcloud-server.git/commitdiff
allow non integer version ids 15866/head
authorRobin Appelman <robin@icewind.nl>
Tue, 4 Jun 2019 11:39:23 +0000 (13:39 +0200)
committerRobin Appelman <robin@icewind.nl>
Tue, 4 Jun 2019 12:15:20 +0000 (14:15 +0200)
currently version ids are timestamps, but for storage provided versions
this is not always the case and they might be strings

Signed-off-by: Robin Appelman <robin@icewind.nl>
apps/files_versions/lib/Controller/PreviewController.php
apps/files_versions/lib/Versions/IVersion.php
apps/files_versions/lib/Versions/IVersionBackend.php
apps/files_versions/lib/Versions/LegacyVersionsBackend.php
apps/files_versions/lib/Versions/Version.php
apps/files_versions/lib/Versions/VersionManager.php

index f41250a89710fcf48bcac38e683126abd4288228..28d16b8a96b0831f858a678021b0c3d136acefe1 100644 (file)
@@ -95,7 +95,7 @@ class PreviewController extends Controller {
                        $user = $this->userSession->getUser();
                        $userFolder = $this->rootFolder->getUserFolder($user->getUID());
                        $file = $userFolder->get($file);
-                       $versionFile = $this->versionManager->getVersionFile($user, $file, (int)$version);
+                       $versionFile = $this->versionManager->getVersionFile($user, $file, $version);
                        $preview = $this->previewManager->getPreview($versionFile, $x, $y, true, IPreview::MODE_FILL, $versionFile->getMimetype());
                        return new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => $preview->getMimeType()]);
                } catch (NotFoundException $e) {
index b6fc95814d84b9c32ba20066d909b5e82592dd0b..d12bdc9d0ba0240eba64c512857e71284e63d31e 100644 (file)
@@ -46,10 +46,10 @@ interface IVersion {
        /**
         * Get the id of the revision for the file
         *
-        * @return int
+        * @return int|string
         * @since 15.0.0
         */
-       public function getRevisionId(): int;
+       public function getRevisionId();
 
        /**
         * Get the timestamp this version was created
index 913745c9850b329a8f591b366f8c8bfb0f3bb094..055d2eab174cb031f350aac2fcaa7ba88ae7f2f1 100644 (file)
@@ -85,9 +85,9 @@ interface IVersionBackend {
         *
         * @param IUser $user
         * @param FileInfo $sourceFile
-        * @param int $revision
+        * @param int|string $revision
         * @return ISimpleFile
         * @since 15.0.0
         */
-       public function getVersionFile(IUser $user, FileInfo $sourceFile, int $revision): File;
+       public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File;
 }
index aceddef29d29e09daf6ef17612c3d1e3a4d37723..46bd2ea8d467f00bf10cbe0dc3dd1ae0b41e4058 100644 (file)
@@ -113,7 +113,7 @@ class LegacyVersionsBackend implements IVersionBackend {
                return $file->fopen('r');
        }
 
-       public function getVersionFile(IUser $user, FileInfo $sourceFile, int $revision): File {
+       public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File {
                $userFolder = $this->rootFolder->getUserFolder($user->getUID());
                $versionFolder = $this->getVersionFolder($user);
                /** @var File $file */
index 5988234db6140495e2b71ca17864fc291c37217c..3a60dc0731c6093cff247d87e068fa29c6f9a698 100644 (file)
@@ -29,7 +29,7 @@ class Version implements IVersion {
        /** @var int */
        private $timestamp;
 
-       /** @var int */
+       /** @var int|string */
        private $revisionId;
 
        /** @var string */
@@ -55,7 +55,7 @@ class Version implements IVersion {
 
        public function __construct(
                int $timestamp,
-               int $revisionId,
+               $revisionId,
                string $name,
                int $size,
                string $mimetype,
@@ -83,7 +83,7 @@ class Version implements IVersion {
                return $this->sourceFileInfo;
        }
 
-       public function getRevisionId(): int {
+       public function getRevisionId() {
                return $this->revisionId;
        }
 
index 99fa9f62bc853746601feec314795ec50ad14ba1..23cf43ba357a0ee4439aaedfcc68909a2fb93716 100644 (file)
@@ -98,7 +98,7 @@ class VersionManager implements IVersionManager {
                return $backend->read($version);
        }
 
-       public function getVersionFile(IUser $user, FileInfo $sourceFile, int $revision): File {
+       public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File {
                $backend = $this->getBackendForStorage($sourceFile->getStorage());
                return $backend->getVersionFile($user, $sourceFile, $revision);
        }