aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_versions
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_versions')
-rw-r--r--apps/files_versions/l10n/mk.js2
-rw-r--r--apps/files_versions/l10n/mk.json2
-rw-r--r--apps/files_versions/l10n/tr.js3
-rw-r--r--apps/files_versions/l10n/tr.json3
-rw-r--r--apps/files_versions/lib/AppInfo/Application.php3
-rw-r--r--apps/files_versions/lib/Listener/FileEventsListener.php16
-rw-r--r--apps/files_versions/tests/VersioningTest.php18
7 files changed, 30 insertions, 17 deletions
diff --git a/apps/files_versions/l10n/mk.js b/apps/files_versions/l10n/mk.js
index 69789889290..d183f9ead5f 100644
--- a/apps/files_versions/l10n/mk.js
+++ b/apps/files_versions/l10n/mk.js
@@ -5,7 +5,7 @@ OC.L10N.register(
"This application automatically maintains older versions of files that are changed." : "Оваа апликација автоматски ги менаџира постарите верзии на датотеките кој се изменети.",
"Current version" : "Моментална верзија",
"Initial version" : "Првична верзија",
- "You" : "Вие",
+ "You" : "Вас",
"Name this version" : "Додај име на оваа верзијата",
"Edit version name" : "Промени име на верзијата",
"Compare to current version" : "Спореди со моменталната верзија",
diff --git a/apps/files_versions/l10n/mk.json b/apps/files_versions/l10n/mk.json
index 06737b098d6..0673758e352 100644
--- a/apps/files_versions/l10n/mk.json
+++ b/apps/files_versions/l10n/mk.json
@@ -3,7 +3,7 @@
"This application automatically maintains older versions of files that are changed." : "Оваа апликација автоматски ги менаџира постарите верзии на датотеките кој се изменети.",
"Current version" : "Моментална верзија",
"Initial version" : "Првична верзија",
- "You" : "Вие",
+ "You" : "Вас",
"Name this version" : "Додај име на оваа верзијата",
"Edit version name" : "Промени име на верзијата",
"Compare to current version" : "Спореди со моменталната верзија",
diff --git a/apps/files_versions/l10n/tr.js b/apps/files_versions/l10n/tr.js
index 968a662dfd0..f73c10ecf45 100644
--- a/apps/files_versions/l10n/tr.js
+++ b/apps/files_versions/l10n/tr.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Version restored" : "Sürüm geri yüklendi",
"Could not restore version" : "Sürüm geri yüklenemedi",
"Could not set version label" : "Sürüm etiketi ayarlanamadı",
- "Could not delete version" : "Sürüm silinemedi"
+ "Could not delete version" : "Sürüm silinemedi",
+ "File versions" : "Dosya sürümleri"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_versions/l10n/tr.json b/apps/files_versions/l10n/tr.json
index 303dbcf8bae..814e9ea7a97 100644
--- a/apps/files_versions/l10n/tr.json
+++ b/apps/files_versions/l10n/tr.json
@@ -21,6 +21,7 @@
"Version restored" : "Sürüm geri yüklendi",
"Could not restore version" : "Sürüm geri yüklenemedi",
"Could not set version label" : "Sürüm etiketi ayarlanamadı",
- "Could not delete version" : "Sürüm silinemedi"
+ "Could not delete version" : "Sürüm silinemedi",
+ "File versions" : "Dosya sürümleri"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_versions/lib/AppInfo/Application.php b/apps/files_versions/lib/AppInfo/Application.php
index dcc446d1ff6..1f35034d820 100644
--- a/apps/files_versions/lib/AppInfo/Application.php
+++ b/apps/files_versions/lib/AppInfo/Application.php
@@ -107,7 +107,8 @@ class Application extends App implements IBootstrap {
$context->registerEventListener(BeforeNodeRenamedEvent::class, FileEventsListener::class);
$context->registerEventListener(BeforeNodeCopiedEvent::class, FileEventsListener::class);
- $context->registerEventListener(NodeWrittenEvent::class, VersionAuthorListener::class);
+ // we add the version author listener with lower priority to make sure new versions already are created by FileEventsListener
+ $context->registerEventListener(NodeWrittenEvent::class, VersionAuthorListener::class, -1);
$context->registerEventListener(VersionRestoredEvent::class, LegacyRollbackListener::class);
}
diff --git a/apps/files_versions/lib/Listener/FileEventsListener.php b/apps/files_versions/lib/Listener/FileEventsListener.php
index c581c61b4ae..d847c60ec64 100644
--- a/apps/files_versions/lib/Listener/FileEventsListener.php
+++ b/apps/files_versions/lib/Listener/FileEventsListener.php
@@ -332,11 +332,19 @@ class FileEventsListener implements IEventListener {
return;
}
- // if we rename a movable mount point, then the versions don't have
- // to be renamed
+ // if we rename a movable mount point, then the versions don't have to be renamed
$oldPath = $this->getPathForNode($source);
$newPath = $this->getPathForNode($target);
- $absOldPath = Filesystem::normalizePath('/' . \OC_User::getUser() . '/files' . $oldPath);
+ if ($oldPath === null || $newPath === null) {
+ return;
+ }
+
+ $user = $this->userSession->getUser()?->getUID();
+ if ($user === null) {
+ return;
+ }
+
+ $absOldPath = Filesystem::normalizePath('/' . $user . '/files' . $oldPath);
$manager = Filesystem::getMountManager();
$mount = $manager->find($absOldPath);
$internalPath = $mount->getInternalPath($absOldPath);
@@ -344,7 +352,7 @@ class FileEventsListener implements IEventListener {
return;
}
- $view = new View(\OC_User::getUser() . '/files');
+ $view = new View($user . '/files');
if ($view->file_exists($newPath)) {
Storage::store($newPath);
} else {
diff --git a/apps/files_versions/tests/VersioningTest.php b/apps/files_versions/tests/VersioningTest.php
index 13ea133097f..f294390a593 100644
--- a/apps/files_versions/tests/VersioningTest.php
+++ b/apps/files_versions/tests/VersioningTest.php
@@ -16,9 +16,11 @@ use OC\User\NoUserException;
use OCA\Files_Sharing\AppInfo\Application;
use OCA\Files_Versions\Db\VersionEntity;
use OCA\Files_Versions\Db\VersionsMapper;
+use OCA\Files_Versions\Events\VersionRestoredEvent;
use OCA\Files_Versions\Storage;
use OCA\Files_Versions\Versions\IVersionManager;
use OCP\Constants;
+use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IMimeTypeLoader;
use OCP\IConfig;
use OCP\IUser;
@@ -804,8 +806,13 @@ class VersioningTest extends \Test\TestCase {
$this->assertEquals('test file', $this->rootView->file_get_contents($filePath));
$info1 = $this->rootView->getFileInfo($filePath);
- $params = [];
- $this->connectMockHooks('rollback', $params);
+ $eventDispatcher = Server::get(IEventDispatcher::class);
+ $eventFired = false;
+ $eventDispatcher->addListener(VersionRestoredEvent::class, function ($event) use (&$eventFired, $t2) {
+ $eventFired = true;
+ $this->assertEquals('/sub/test.txt', $event->getVersion()->getVersionPath());
+ $this->assertTrue($event->getVersion()->getRevisionId() > 0);
+ });
$versionManager = Server::get(IVersionManager::class);
$versions = $versionManager->getVersionsForFile($this->user1, $info1);
@@ -813,13 +820,8 @@ class VersioningTest extends \Test\TestCase {
return $version->getRevisionId() === $t2;
});
$this->assertTrue($versionManager->rollback(current($version)));
- $expectedParams = [
- 'path' => '/sub/test.txt',
- ];
- $this->assertEquals($expectedParams['path'], $params['path']);
- $this->assertTrue(array_key_exists('revision', $params));
- $this->assertTrue($params['revision'] > 0);
+ $this->assertTrue($eventFired, 'VersionRestoredEvent was not fired');
$this->assertEquals('version2', $this->rootView->file_get_contents($filePath));
$info2 = $this->rootView->getFileInfo($filePath);