diff options
author | Stephan Orbaugh <62374139+sorbaugh@users.noreply.github.com> | 2025-07-07 17:29:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-07 17:29:52 +0200 |
commit | a4879f23a9ff83ea40ec731c15bcf72ea711d8d7 (patch) | |
tree | 480374ddbc01d3a5c04f73996ca6b378136ea4ad /apps/files_versions/lib/Versions | |
parent | 58a37108da99fcc0a8187fcb53b9ba133d240c34 (diff) | |
parent | cdeed5bcbe2816b452fc29390038efa0b699498f (diff) | |
download | nextcloud-server-master.tar.gz nextcloud-server-master.zip |
feat(files_versions): get revision for a node
Diffstat (limited to 'apps/files_versions/lib/Versions')
-rw-r--r-- | apps/files_versions/lib/Versions/IVersionBackend.php | 8 | ||||
-rw-r--r-- | apps/files_versions/lib/Versions/LegacyVersionsBackend.php | 4 | ||||
-rw-r--r-- | apps/files_versions/lib/Versions/VersionManager.php | 5 |
3 files changed, 17 insertions, 0 deletions
diff --git a/apps/files_versions/lib/Versions/IVersionBackend.php b/apps/files_versions/lib/Versions/IVersionBackend.php index 28e3f4dffcf..18f8c17f0ac 100644 --- a/apps/files_versions/lib/Versions/IVersionBackend.php +++ b/apps/files_versions/lib/Versions/IVersionBackend.php @@ -8,6 +8,7 @@ declare(strict_types=1); */ namespace OCA\Files_Versions\Versions; +use OC\Files\Node\Node; use OCP\Files\File; use OCP\Files\FileInfo; use OCP\Files\NotFoundException; @@ -78,4 +79,11 @@ interface IVersionBackend { * @since 15.0.0 */ public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File; + + /** + * Get the revision for a node + * + * @since 32.0.0 + */ + public function getRevision(Node $node): int; } diff --git a/apps/files_versions/lib/Versions/LegacyVersionsBackend.php b/apps/files_versions/lib/Versions/LegacyVersionsBackend.php index 59a10a0775d..40180674b7c 100644 --- a/apps/files_versions/lib/Versions/LegacyVersionsBackend.php +++ b/apps/files_versions/lib/Versions/LegacyVersionsBackend.php @@ -212,6 +212,10 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend return $file; } + public function getRevision(Node $node): int { + return $node->getMTime(); + } + public function deleteVersion(IVersion $version): void { if (!$this->currentUserHasPermissions($version->getSourceFile(), Constants::PERMISSION_DELETE)) { throw new Forbidden('You cannot delete this version because you do not have delete permissions on the source file.'); diff --git a/apps/files_versions/lib/Versions/VersionManager.php b/apps/files_versions/lib/Versions/VersionManager.php index 5f547939213..f72e451f368 100644 --- a/apps/files_versions/lib/Versions/VersionManager.php +++ b/apps/files_versions/lib/Versions/VersionManager.php @@ -110,6 +110,11 @@ class VersionManager implements IVersionManager, IDeletableVersionBackend, INeed return $backend->getVersionFile($user, $sourceFile, $revision); } + public function getRevision(Node $node): int { + $backend = $this->getBackendForStorage($node->getStorage()); + return $backend->getRevision($node); + } + public function useBackendForStorage(IStorage $storage): bool { return false; } |