diff options
Diffstat (limited to 'apps/files_versions')
-rw-r--r-- | apps/files_versions/l10n/mk.js | 2 | ||||
-rw-r--r-- | apps/files_versions/l10n/mk.json | 2 | ||||
-rw-r--r-- | apps/files_versions/l10n/tr.js | 3 | ||||
-rw-r--r-- | apps/files_versions/l10n/tr.json | 3 | ||||
-rw-r--r-- | apps/files_versions/lib/AppInfo/Application.php | 3 | ||||
-rw-r--r-- | apps/files_versions/lib/Listener/FileEventsListener.php | 16 | ||||
-rw-r--r-- | apps/files_versions/tests/VersioningTest.php | 18 |
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); |