Passed
Push — master ( 0bf72a...f349d5 )
by Robin
14:20 queued 12s
created
apps/files_versions/lib/Controller/PreviewController.php 1 patch
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -38,70 +38,70 @@
 block discarded – undo
38 38
 
39 39
 class PreviewController extends Controller {
40 40
 
41
-	/** @var IRootFolder */
42
-	private $rootFolder;
41
+    /** @var IRootFolder */
42
+    private $rootFolder;
43 43
 
44
-	/** @var IUserSession */
45
-	private $userSession;
44
+    /** @var IUserSession */
45
+    private $userSession;
46 46
 
47
-	/** @var IMimeTypeDetector */
48
-	private $mimeTypeDetector;
47
+    /** @var IMimeTypeDetector */
48
+    private $mimeTypeDetector;
49 49
 
50
-	/** @var IVersionManager */
51
-	private $versionManager;
50
+    /** @var IVersionManager */
51
+    private $versionManager;
52 52
 
53
-	/** @var IPreview */
54
-	private $previewManager;
53
+    /** @var IPreview */
54
+    private $previewManager;
55 55
 
56
-	public function __construct(
57
-		$appName,
58
-		IRequest $request,
59
-		IRootFolder $rootFolder,
60
-		IUserSession $userSession,
61
-		IMimeTypeDetector $mimeTypeDetector,
62
-		IVersionManager $versionManager,
63
-		IPreview $previewManager
64
-	) {
65
-		parent::__construct($appName, $request);
56
+    public function __construct(
57
+        $appName,
58
+        IRequest $request,
59
+        IRootFolder $rootFolder,
60
+        IUserSession $userSession,
61
+        IMimeTypeDetector $mimeTypeDetector,
62
+        IVersionManager $versionManager,
63
+        IPreview $previewManager
64
+    ) {
65
+        parent::__construct($appName, $request);
66 66
 
67
-		$this->rootFolder = $rootFolder;
68
-		$this->userSession = $userSession;
69
-		$this->mimeTypeDetector = $mimeTypeDetector;
70
-		$this->versionManager = $versionManager;
71
-		$this->previewManager = $previewManager;
72
-	}
67
+        $this->rootFolder = $rootFolder;
68
+        $this->userSession = $userSession;
69
+        $this->mimeTypeDetector = $mimeTypeDetector;
70
+        $this->versionManager = $versionManager;
71
+        $this->previewManager = $previewManager;
72
+    }
73 73
 
74
-	/**
75
-	 * @NoAdminRequired
76
-	 * @NoCSRFRequired
77
-	 *
78
-	 * @param string $file
79
-	 * @param int $x
80
-	 * @param int $y
81
-	 * @param string $version
82
-	 * @return DataResponse|FileDisplayResponse
83
-	 */
84
-	public function getPreview(
85
-		$file = '',
86
-		$x = 44,
87
-		$y = 44,
88
-		$version = ''
89
-	) {
90
-		if ($file === '' || $version === '' || $x === 0 || $y === 0) {
91
-			return new DataResponse([], Http::STATUS_BAD_REQUEST);
92
-		}
74
+    /**
75
+     * @NoAdminRequired
76
+     * @NoCSRFRequired
77
+     *
78
+     * @param string $file
79
+     * @param int $x
80
+     * @param int $y
81
+     * @param string $version
82
+     * @return DataResponse|FileDisplayResponse
83
+     */
84
+    public function getPreview(
85
+        $file = '',
86
+        $x = 44,
87
+        $y = 44,
88
+        $version = ''
89
+    ) {
90
+        if ($file === '' || $version === '' || $x === 0 || $y === 0) {
91
+            return new DataResponse([], Http::STATUS_BAD_REQUEST);
92
+        }
93 93
 
94
-		try {
95
-			$user = $this->userSession->getUser();
96
-			$userFolder = $this->rootFolder->getUserFolder($user->getUID());
97
-			$file = $userFolder->get($file);
98
-			$versionFile = $this->versionManager->getVersionFile($user, $file, $version);
99
-			$preview = $this->previewManager->getPreview($versionFile, $x, $y, true, IPreview::MODE_FILL, $versionFile->getMimetype());
100
-			return new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => $preview->getMimeType()]);
101
-		} catch (NotFoundException $e) {
102
-			return new DataResponse([], Http::STATUS_NOT_FOUND);
103
-		} catch (\InvalidArgumentException $e) {
104
-			return new DataResponse([], Http::STATUS_BAD_REQUEST);
105
-		}
106
-	}
94
+        try {
95
+            $user = $this->userSession->getUser();
96
+            $userFolder = $this->rootFolder->getUserFolder($user->getUID());
97
+            $file = $userFolder->get($file);
98
+            $versionFile = $this->versionManager->getVersionFile($user, $file, $version);
99
+            $preview = $this->previewManager->getPreview($versionFile, $x, $y, true, IPreview::MODE_FILL, $versionFile->getMimetype());
100
+            return new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => $preview->getMimeType()]);
101
+        } catch (NotFoundException $e) {
102
+            return new DataResponse([], Http::STATUS_NOT_FOUND);
103
+        } catch (\InvalidArgumentException $e) {
104
+            return new DataResponse([], Http::STATUS_BAD_REQUEST);
105
+        }
106
+    }
107 107
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Versions/Version.php 1 patch
Indentation   +84 added lines, -84 removed lines patch added patch discarded remove patch
@@ -26,88 +26,88 @@
 block discarded – undo
26 26
 use OCP\IUser;
27 27
 
28 28
 class Version implements IVersion {
29
-	/** @var int */
30
-	private $timestamp;
31
-
32
-	/** @var int|string */
33
-	private $revisionId;
34
-
35
-	/** @var string */
36
-	private $name;
37
-
38
-	/** @var int */
39
-	private $size;
40
-
41
-	/** @var string */
42
-	private $mimetype;
43
-
44
-	/** @var string */
45
-	private $path;
46
-
47
-	/** @var FileInfo */
48
-	private $sourceFileInfo;
49
-
50
-	/** @var IVersionBackend */
51
-	private $backend;
52
-
53
-	/** @var IUser */
54
-	private $user;
55
-
56
-	public function __construct(
57
-		int $timestamp,
58
-		$revisionId,
59
-		string $name,
60
-		int $size,
61
-		string $mimetype,
62
-		string $path,
63
-		FileInfo $sourceFileInfo,
64
-		IVersionBackend $backend,
65
-		IUser $user
66
-	) {
67
-		$this->timestamp = $timestamp;
68
-		$this->revisionId = $revisionId;
69
-		$this->name = $name;
70
-		$this->size = $size;
71
-		$this->mimetype = $mimetype;
72
-		$this->path = $path;
73
-		$this->sourceFileInfo = $sourceFileInfo;
74
-		$this->backend = $backend;
75
-		$this->user = $user;
76
-	}
77
-
78
-	public function getBackend(): IVersionBackend {
79
-		return $this->backend;
80
-	}
81
-
82
-	public function getSourceFile(): FileInfo {
83
-		return $this->sourceFileInfo;
84
-	}
85
-
86
-	public function getRevisionId() {
87
-		return $this->revisionId;
88
-	}
89
-
90
-	public function getTimestamp(): int {
91
-		return $this->timestamp;
92
-	}
93
-
94
-	public function getSize(): int {
95
-		return $this->size;
96
-	}
97
-
98
-	public function getSourceFileName(): string {
99
-		return $this->name;
100
-	}
101
-
102
-	public function getMimeType(): string {
103
-		return $this->mimetype;
104
-	}
105
-
106
-	public function getVersionPath(): string {
107
-		return $this->path;
108
-	}
109
-
110
-	public function getUser(): IUser {
111
-		return $this->user;
112
-	}
29
+    /** @var int */
30
+    private $timestamp;
31
+
32
+    /** @var int|string */
33
+    private $revisionId;
34
+
35
+    /** @var string */
36
+    private $name;
37
+
38
+    /** @var int */
39
+    private $size;
40
+
41
+    /** @var string */
42
+    private $mimetype;
43
+
44
+    /** @var string */
45
+    private $path;
46
+
47
+    /** @var FileInfo */
48
+    private $sourceFileInfo;
49
+
50
+    /** @var IVersionBackend */
51
+    private $backend;
52
+
53
+    /** @var IUser */
54
+    private $user;
55
+
56
+    public function __construct(
57
+        int $timestamp,
58
+        $revisionId,
59
+        string $name,
60
+        int $size,
61
+        string $mimetype,
62
+        string $path,
63
+        FileInfo $sourceFileInfo,
64
+        IVersionBackend $backend,
65
+        IUser $user
66
+    ) {
67
+        $this->timestamp = $timestamp;
68
+        $this->revisionId = $revisionId;
69
+        $this->name = $name;
70
+        $this->size = $size;
71
+        $this->mimetype = $mimetype;
72
+        $this->path = $path;
73
+        $this->sourceFileInfo = $sourceFileInfo;
74
+        $this->backend = $backend;
75
+        $this->user = $user;
76
+    }
77
+
78
+    public function getBackend(): IVersionBackend {
79
+        return $this->backend;
80
+    }
81
+
82
+    public function getSourceFile(): FileInfo {
83
+        return $this->sourceFileInfo;
84
+    }
85
+
86
+    public function getRevisionId() {
87
+        return $this->revisionId;
88
+    }
89
+
90
+    public function getTimestamp(): int {
91
+        return $this->timestamp;
92
+    }
93
+
94
+    public function getSize(): int {
95
+        return $this->size;
96
+    }
97
+
98
+    public function getSourceFileName(): string {
99
+        return $this->name;
100
+    }
101
+
102
+    public function getMimeType(): string {
103
+        return $this->mimetype;
104
+    }
105
+
106
+    public function getVersionPath(): string {
107
+        return $this->path;
108
+    }
109
+
110
+    public function getUser(): IUser {
111
+        return $this->user;
112
+    }
113 113
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Versions/IVersion.php 1 patch
Indentation   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -29,71 +29,71 @@
 block discarded – undo
29 29
  * @since 15.0.0
30 30
  */
31 31
 interface IVersion {
32
-	/**
33
-	 * @return IVersionBackend
34
-	 * @since 15.0.0
35
-	 */
36
-	public function getBackend(): IVersionBackend;
32
+    /**
33
+     * @return IVersionBackend
34
+     * @since 15.0.0
35
+     */
36
+    public function getBackend(): IVersionBackend;
37 37
 
38
-	/**
39
-	 * Get the file info of the source file
40
-	 *
41
-	 * @return FileInfo
42
-	 * @since 15.0.0
43
-	 */
44
-	public function getSourceFile(): FileInfo;
38
+    /**
39
+     * Get the file info of the source file
40
+     *
41
+     * @return FileInfo
42
+     * @since 15.0.0
43
+     */
44
+    public function getSourceFile(): FileInfo;
45 45
 
46
-	/**
47
-	 * Get the id of the revision for the file
48
-	 *
49
-	 * @return int|string
50
-	 * @since 15.0.0
51
-	 */
52
-	public function getRevisionId();
46
+    /**
47
+     * Get the id of the revision for the file
48
+     *
49
+     * @return int|string
50
+     * @since 15.0.0
51
+     */
52
+    public function getRevisionId();
53 53
 
54
-	/**
55
-	 * Get the timestamp this version was created
56
-	 *
57
-	 * @return int
58
-	 * @since 15.0.0
59
-	 */
60
-	public function getTimestamp(): int;
54
+    /**
55
+     * Get the timestamp this version was created
56
+     *
57
+     * @return int
58
+     * @since 15.0.0
59
+     */
60
+    public function getTimestamp(): int;
61 61
 
62
-	/**
63
-	 * Get the size of this version
64
-	 *
65
-	 * @return int
66
-	 * @since 15.0.0
67
-	 */
68
-	public function getSize(): int;
62
+    /**
63
+     * Get the size of this version
64
+     *
65
+     * @return int
66
+     * @since 15.0.0
67
+     */
68
+    public function getSize(): int;
69 69
 
70
-	/**
71
-	 * Get the name of the source file at the time of making this version
72
-	 *
73
-	 * @return string
74
-	 * @since 15.0.0
75
-	 */
76
-	public function getSourceFileName(): string;
70
+    /**
71
+     * Get the name of the source file at the time of making this version
72
+     *
73
+     * @return string
74
+     * @since 15.0.0
75
+     */
76
+    public function getSourceFileName(): string;
77 77
 
78
-	/**
79
-	 * Get the mimetype of this version
80
-	 *
81
-	 * @return string
82
-	 * @since 15.0.0
83
-	 */
84
-	public function getMimeType(): string;
78
+    /**
79
+     * Get the mimetype of this version
80
+     *
81
+     * @return string
82
+     * @since 15.0.0
83
+     */
84
+    public function getMimeType(): string;
85 85
 
86
-	/**
87
-	 * Get the path of this version
88
-	 *
89
-	 * @return string
90
-	 * @since 15.0.0
91
-	 */
92
-	public function getVersionPath(): string;
86
+    /**
87
+     * Get the path of this version
88
+     *
89
+     * @return string
90
+     * @since 15.0.0
91
+     */
92
+    public function getVersionPath(): string;
93 93
 
94
-	/**
95
-	 * @return IUser
96
-	 * @since 15.0.0
97
-	 */
98
-	public function getUser(): IUser;
94
+    /**
95
+     * @return IUser
96
+     * @since 15.0.0
97
+     */
98
+    public function getUser(): IUser;
99 99
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Versions/IVersionBackend.php 1 patch
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -32,62 +32,62 @@
 block discarded – undo
32 32
  * @since 15.0.0
33 33
  */
34 34
 interface IVersionBackend {
35
-	/**
36
-	 * Whether or not this version backend should be used for a storage
37
-	 *
38
-	 * If false is returned then the next applicable backend will be used
39
-	 *
40
-	 * @param IStorage $storage
41
-	 * @return bool
42
-	 * @since 17.0.0
43
-	 */
44
-	public function useBackendForStorage(IStorage $storage): bool;
35
+    /**
36
+     * Whether or not this version backend should be used for a storage
37
+     *
38
+     * If false is returned then the next applicable backend will be used
39
+     *
40
+     * @param IStorage $storage
41
+     * @return bool
42
+     * @since 17.0.0
43
+     */
44
+    public function useBackendForStorage(IStorage $storage): bool;
45 45
 
46
-	/**
47
-	 * Get all versions for a file
48
-	 *
49
-	 * @param IUser $user
50
-	 * @param FileInfo $file
51
-	 * @return IVersion[]
52
-	 * @since 15.0.0
53
-	 */
54
-	public function getVersionsForFile(IUser $user, FileInfo $file): array;
46
+    /**
47
+     * Get all versions for a file
48
+     *
49
+     * @param IUser $user
50
+     * @param FileInfo $file
51
+     * @return IVersion[]
52
+     * @since 15.0.0
53
+     */
54
+    public function getVersionsForFile(IUser $user, FileInfo $file): array;
55 55
 
56
-	/**
57
-	 * Create a new version for a file
58
-	 *
59
-	 * @param IUser $user
60
-	 * @param FileInfo $file
61
-	 * @since 15.0.0
62
-	 */
63
-	public function createVersion(IUser $user, FileInfo $file);
56
+    /**
57
+     * Create a new version for a file
58
+     *
59
+     * @param IUser $user
60
+     * @param FileInfo $file
61
+     * @since 15.0.0
62
+     */
63
+    public function createVersion(IUser $user, FileInfo $file);
64 64
 
65
-	/**
66
-	 * Restore this version
67
-	 *
68
-	 * @param IVersion $version
69
-	 * @since 15.0.0
70
-	 */
71
-	public function rollback(IVersion $version);
65
+    /**
66
+     * Restore this version
67
+     *
68
+     * @param IVersion $version
69
+     * @since 15.0.0
70
+     */
71
+    public function rollback(IVersion $version);
72 72
 
73
-	/**
74
-	 * Open the file for reading
75
-	 *
76
-	 * @param IVersion $version
77
-	 * @return resource
78
-	 * @throws NotFoundException
79
-	 * @since 15.0.0
80
-	 */
81
-	public function read(IVersion $version);
73
+    /**
74
+     * Open the file for reading
75
+     *
76
+     * @param IVersion $version
77
+     * @return resource
78
+     * @throws NotFoundException
79
+     * @since 15.0.0
80
+     */
81
+    public function read(IVersion $version);
82 82
 
83
-	/**
84
-	 * Get the preview for a specific version of a file
85
-	 *
86
-	 * @param IUser $user
87
-	 * @param FileInfo $sourceFile
88
-	 * @param int|string $revision
89
-	 * @return ISimpleFile
90
-	 * @since 15.0.0
91
-	 */
92
-	public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File;
83
+    /**
84
+     * Get the preview for a specific version of a file
85
+     *
86
+     * @param IUser $user
87
+     * @param FileInfo $sourceFile
88
+     * @param int|string $revision
89
+     * @return ISimpleFile
90
+     * @since 15.0.0
91
+     */
92
+    public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File;
93 93
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Versions/VersionManager.php 1 patch
Indentation   +67 added lines, -67 removed lines patch added patch discarded remove patch
@@ -27,83 +27,83 @@
 block discarded – undo
27 27
 use OCP\IUser;
28 28
 
29 29
 class VersionManager implements IVersionManager {
30
-	/** @var (IVersionBackend[])[] */
31
-	private $backends = [];
30
+    /** @var (IVersionBackend[])[] */
31
+    private $backends = [];
32 32
 
33
-	public function registerBackend(string $storageType, IVersionBackend $backend) {
34
-		if (!isset($this->backends[$storageType])) {
35
-			$this->backends[$storageType] = [];
36
-		}
37
-		$this->backends[$storageType][] = $backend;
38
-	}
33
+    public function registerBackend(string $storageType, IVersionBackend $backend) {
34
+        if (!isset($this->backends[$storageType])) {
35
+            $this->backends[$storageType] = [];
36
+        }
37
+        $this->backends[$storageType][] = $backend;
38
+    }
39 39
 
40
-	/**
41
-	 * @return (IVersionBackend[])[]
42
-	 */
43
-	private function getBackends(): array {
44
-		return $this->backends;
45
-	}
40
+    /**
41
+     * @return (IVersionBackend[])[]
42
+     */
43
+    private function getBackends(): array {
44
+        return $this->backends;
45
+    }
46 46
 
47
-	/**
48
-	 * @param IStorage $storage
49
-	 * @return IVersionBackend
50
-	 * @throws BackendNotFoundException
51
-	 */
52
-	public function getBackendForStorage(IStorage $storage): IVersionBackend {
53
-		$fullType = get_class($storage);
54
-		$backends = $this->getBackends();
47
+    /**
48
+     * @param IStorage $storage
49
+     * @return IVersionBackend
50
+     * @throws BackendNotFoundException
51
+     */
52
+    public function getBackendForStorage(IStorage $storage): IVersionBackend {
53
+        $fullType = get_class($storage);
54
+        $backends = $this->getBackends();
55 55
 
56
-		$foundType = '';
57
-		$foundBackend = null;
56
+        $foundType = '';
57
+        $foundBackend = null;
58 58
 
59
-		foreach ($backends as $type => $backendsForType) {
60
-			if (
61
-				$storage->instanceOfStorage($type) &&
62
-				($foundType === '' || is_subclass_of($type, $foundType))
63
-			) {
64
-				foreach ($backendsForType as $backend) {
65
-					/** @var IVersionBackend $backend */
66
-					if ($backend->useBackendForStorage($storage)) {
67
-						$foundBackend = $backend;
68
-						$foundType = $type;
69
-					}
70
-				}
71
-			}
72
-		}
59
+        foreach ($backends as $type => $backendsForType) {
60
+            if (
61
+                $storage->instanceOfStorage($type) &&
62
+                ($foundType === '' || is_subclass_of($type, $foundType))
63
+            ) {
64
+                foreach ($backendsForType as $backend) {
65
+                    /** @var IVersionBackend $backend */
66
+                    if ($backend->useBackendForStorage($storage)) {
67
+                        $foundBackend = $backend;
68
+                        $foundType = $type;
69
+                    }
70
+                }
71
+            }
72
+        }
73 73
 
74
-		if ($foundType === '' || $foundBackend === null) {
75
-			throw new BackendNotFoundException("Version backend for $fullType not found");
76
-		} else {
77
-			return $foundBackend;
78
-		}
79
-	}
74
+        if ($foundType === '' || $foundBackend === null) {
75
+            throw new BackendNotFoundException("Version backend for $fullType not found");
76
+        } else {
77
+            return $foundBackend;
78
+        }
79
+    }
80 80
 
81
-	public function getVersionsForFile(IUser $user, FileInfo $file): array {
82
-		$backend = $this->getBackendForStorage($file->getStorage());
83
-		return $backend->getVersionsForFile($user, $file);
84
-	}
81
+    public function getVersionsForFile(IUser $user, FileInfo $file): array {
82
+        $backend = $this->getBackendForStorage($file->getStorage());
83
+        return $backend->getVersionsForFile($user, $file);
84
+    }
85 85
 
86
-	public function createVersion(IUser $user, FileInfo $file) {
87
-		$backend = $this->getBackendForStorage($file->getStorage());
88
-		$backend->createVersion($user, $file);
89
-	}
86
+    public function createVersion(IUser $user, FileInfo $file) {
87
+        $backend = $this->getBackendForStorage($file->getStorage());
88
+        $backend->createVersion($user, $file);
89
+    }
90 90
 
91
-	public function rollback(IVersion $version) {
92
-		$backend = $version->getBackend();
93
-		return $backend->rollback($version);
94
-	}
91
+    public function rollback(IVersion $version) {
92
+        $backend = $version->getBackend();
93
+        return $backend->rollback($version);
94
+    }
95 95
 
96
-	public function read(IVersion $version) {
97
-		$backend = $version->getBackend();
98
-		return $backend->read($version);
99
-	}
96
+    public function read(IVersion $version) {
97
+        $backend = $version->getBackend();
98
+        return $backend->read($version);
99
+    }
100 100
 
101
-	public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File {
102
-		$backend = $this->getBackendForStorage($sourceFile->getStorage());
103
-		return $backend->getVersionFile($user, $sourceFile, $revision);
104
-	}
101
+    public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File {
102
+        $backend = $this->getBackendForStorage($sourceFile->getStorage());
103
+        return $backend->getVersionFile($user, $sourceFile, $revision);
104
+    }
105 105
 
106
-	public function useBackendForStorage(IStorage $storage): bool {
107
-		return false;
108
-	}
106
+    public function useBackendForStorage(IStorage $storage): bool {
107
+        return false;
108
+    }
109 109
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Versions/LegacyVersionsBackend.php 1 patch
Indentation   +74 added lines, -74 removed lines patch added patch discarded remove patch
@@ -34,90 +34,90 @@
 block discarded – undo
34 34
 use OCP\IUserManager;
35 35
 
36 36
 class LegacyVersionsBackend implements IVersionBackend {
37
-	/** @var IRootFolder */
38
-	private $rootFolder;
39
-	/** @var IUserManager */
40
-	private $userManager;
37
+    /** @var IRootFolder */
38
+    private $rootFolder;
39
+    /** @var IUserManager */
40
+    private $userManager;
41 41
 
42
-	public function __construct(IRootFolder $rootFolder, IUserManager $userManager) {
43
-		$this->rootFolder = $rootFolder;
44
-		$this->userManager = $userManager;
45
-	}
42
+    public function __construct(IRootFolder $rootFolder, IUserManager $userManager) {
43
+        $this->rootFolder = $rootFolder;
44
+        $this->userManager = $userManager;
45
+    }
46 46
 
47
-	public function useBackendForStorage(IStorage $storage): bool {
48
-		return true;
49
-	}
47
+    public function useBackendForStorage(IStorage $storage): bool {
48
+        return true;
49
+    }
50 50
 
51
-	public function getVersionsForFile(IUser $user, FileInfo $file): array {
52
-		$storage = $file->getStorage();
53
-		if ($storage->instanceOfStorage(SharedStorage::class)) {
54
-			$owner = $storage->getOwner('');
55
-			$user = $this->userManager->get($owner);
56
-		}
51
+    public function getVersionsForFile(IUser $user, FileInfo $file): array {
52
+        $storage = $file->getStorage();
53
+        if ($storage->instanceOfStorage(SharedStorage::class)) {
54
+            $owner = $storage->getOwner('');
55
+            $user = $this->userManager->get($owner);
56
+        }
57 57
 
58
-		$userFolder = $this->rootFolder->getUserFolder($user->getUID());
59
-		$nodes = $userFolder->getById($file->getId());
60
-		$file2 = array_pop($nodes);
61
-		$versions = Storage::getVersions($user->getUID(), $userFolder->getRelativePath($file2->getPath()));
58
+        $userFolder = $this->rootFolder->getUserFolder($user->getUID());
59
+        $nodes = $userFolder->getById($file->getId());
60
+        $file2 = array_pop($nodes);
61
+        $versions = Storage::getVersions($user->getUID(), $userFolder->getRelativePath($file2->getPath()));
62 62
 
63
-		return array_map(function (array $data) use ($file, $user) {
64
-			return new Version(
65
-				(int)$data['version'],
66
-				(int)$data['version'],
67
-				$data['name'],
68
-				(int)$data['size'],
69
-				$data['mimetype'],
70
-				$data['path'],
71
-				$file,
72
-				$this,
73
-				$user
74
-			);
75
-		}, $versions);
76
-	}
63
+        return array_map(function (array $data) use ($file, $user) {
64
+            return new Version(
65
+                (int)$data['version'],
66
+                (int)$data['version'],
67
+                $data['name'],
68
+                (int)$data['size'],
69
+                $data['mimetype'],
70
+                $data['path'],
71
+                $file,
72
+                $this,
73
+                $user
74
+            );
75
+        }, $versions);
76
+    }
77 77
 
78
-	public function createVersion(IUser $user, FileInfo $file) {
79
-		$userFolder = $this->rootFolder->getUserFolder($user->getUID());
80
-		$relativePath = $userFolder->getRelativePath($file->getPath());
81
-		$userView = new View('/' . $user->getUID());
82
-		// create all parent folders
83
-		Storage::createMissingDirectories($relativePath, $userView);
78
+    public function createVersion(IUser $user, FileInfo $file) {
79
+        $userFolder = $this->rootFolder->getUserFolder($user->getUID());
80
+        $relativePath = $userFolder->getRelativePath($file->getPath());
81
+        $userView = new View('/' . $user->getUID());
82
+        // create all parent folders
83
+        Storage::createMissingDirectories($relativePath, $userView);
84 84
 
85
-		Storage::scheduleExpire($user->getUID(), $relativePath);
85
+        Storage::scheduleExpire($user->getUID(), $relativePath);
86 86
 
87
-		// store a new version of a file
88
-		$userView->copy('files/' . $relativePath, 'files_versions/' . $relativePath . '.v' . $file->getMtime());
89
-		// ensure the file is scanned
90
-		$userView->getFileInfo('files_versions/' . $relativePath . '.v' . $file->getMtime());
91
-	}
87
+        // store a new version of a file
88
+        $userView->copy('files/' . $relativePath, 'files_versions/' . $relativePath . '.v' . $file->getMtime());
89
+        // ensure the file is scanned
90
+        $userView->getFileInfo('files_versions/' . $relativePath . '.v' . $file->getMtime());
91
+    }
92 92
 
93
-	public function rollback(IVersion $version) {
94
-		return Storage::rollback($version->getVersionPath(), $version->getRevisionId());
95
-	}
93
+    public function rollback(IVersion $version) {
94
+        return Storage::rollback($version->getVersionPath(), $version->getRevisionId());
95
+    }
96 96
 
97
-	private function getVersionFolder(IUser $user): Folder {
98
-		$userRoot = $this->rootFolder->getUserFolder($user->getUID())
99
-			->getParent();
100
-		try {
101
-			/** @var Folder $folder */
102
-			$folder = $userRoot->get('files_versions');
103
-			return $folder;
104
-		} catch (NotFoundException $e) {
105
-			return $userRoot->newFolder('files_versions');
106
-		}
107
-	}
97
+    private function getVersionFolder(IUser $user): Folder {
98
+        $userRoot = $this->rootFolder->getUserFolder($user->getUID())
99
+            ->getParent();
100
+        try {
101
+            /** @var Folder $folder */
102
+            $folder = $userRoot->get('files_versions');
103
+            return $folder;
104
+        } catch (NotFoundException $e) {
105
+            return $userRoot->newFolder('files_versions');
106
+        }
107
+    }
108 108
 
109
-	public function read(IVersion $version) {
110
-		$versions = $this->getVersionFolder($version->getUser());
111
-		/** @var File $file */
112
-		$file = $versions->get($version->getVersionPath() . '.v' . $version->getRevisionId());
113
-		return $file->fopen('r');
114
-	}
109
+    public function read(IVersion $version) {
110
+        $versions = $this->getVersionFolder($version->getUser());
111
+        /** @var File $file */
112
+        $file = $versions->get($version->getVersionPath() . '.v' . $version->getRevisionId());
113
+        return $file->fopen('r');
114
+    }
115 115
 
116
-	public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File {
117
-		$userFolder = $this->rootFolder->getUserFolder($user->getUID());
118
-		$versionFolder = $this->getVersionFolder($user);
119
-		/** @var File $file */
120
-		$file = $versionFolder->get($userFolder->getRelativePath($sourceFile->getPath()) . '.v' . $revision);
121
-		return $file;
122
-	}
116
+    public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File {
117
+        $userFolder = $this->rootFolder->getUserFolder($user->getUID());
118
+        $versionFolder = $this->getVersionFolder($user);
119
+        /** @var File $file */
120
+        $file = $versionFolder->get($userFolder->getRelativePath($sourceFile->getPath()) . '.v' . $revision);
121
+        return $file;
122
+    }
123 123
 }
Please login to merge, or discard this patch.