From 176fba83eae36f39b987d1076fbad72be901add0 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 24 Mar 2015 10:19:54 +0100 Subject: [PATCH] Setup the filesystem in the expire command --- apps/files_versions/command/expire.php | 13 +++++++++++-- apps/files_versions/lib/storage.php | 2 +- apps/files_versions/tests/versions.php | 13 ++++++++++++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/apps/files_versions/command/expire.php b/apps/files_versions/command/expire.php index 1036741c79..a934b0f715 100644 --- a/apps/files_versions/command/expire.php +++ b/apps/files_versions/command/expire.php @@ -11,6 +11,7 @@ namespace OCA\Files_Versions\Command; use OC\Command\FileAccess; use OCA\Files_Versions\Storage; use OCP\Command\ICommand; +use OCP\IUser; class Expire implements ICommand { use FileAccess; @@ -31,18 +32,26 @@ class Expire implements ICommand { private $neededSpace = 0; /** + * @var int + */ + private $user; + + /** + * @param IUser $user * @param string $fileName * @param int|null $versionsSize * @param int $neededSpace */ - function __construct($fileName, $versionsSize = null, $neededSpace = 0) { + function __construct(IUser $user, $fileName, $versionsSize = null, $neededSpace = 0) { + $this->user = $user; $this->fileName = $fileName; $this->versionsSize = $versionsSize; $this->neededSpace = $neededSpace; } - public function handle(){ + public function handle() { + $this->setupFS($this->user); Storage::expire($this->fileName, $this->versionsSize, $this->neededSpace); } } diff --git a/apps/files_versions/lib/storage.php b/apps/files_versions/lib/storage.php index 40f6ad7e77..34ed812f4b 100644 --- a/apps/files_versions/lib/storage.php +++ b/apps/files_versions/lib/storage.php @@ -483,7 +483,7 @@ class Storage { * @param int $neededSpace */ private static function scheduleExpire($fileName, $versionsSize = null, $neededSpace = 0) { - $command = new Expire($fileName, $versionsSize, $neededSpace); + $command = new Expire(\OC::$server->getUserSession()->getUser(), $fileName, $versionsSize, $neededSpace); \OC::$server->getCommandBus()->push($command); } diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php index cf0ffb320e..3690057355 100644 --- a/apps/files_versions/tests/versions.php +++ b/apps/files_versions/tests/versions.php @@ -243,6 +243,8 @@ class Test_Files_Versioning extends \Test\TestCase { // execute rename hook of versions app \OC\Files\Filesystem::rename("test.txt", "test2.txt"); + $this->runCommands(); + $this->assertFalse($this->rootView->file_exists($v1)); $this->assertFalse($this->rootView->file_exists($v2)); @@ -285,8 +287,11 @@ class Test_Files_Versioning extends \Test\TestCase { // execute rename hook of versions app \OC\Files\Filesystem::rename('/folder1/test.txt', '/folder1/folder2/test.txt'); + self::loginHelper(self::TEST_VERSIONS_USER2); + $this->runCommands(); + $this->assertFalse($this->rootView->file_exists($v1)); $this->assertFalse($this->rootView->file_exists($v2)); @@ -330,6 +335,8 @@ class Test_Files_Versioning extends \Test\TestCase { self::loginHelper(self::TEST_VERSIONS_USER); + $this->runCommands(); + $this->assertTrue($this->rootView->file_exists($v1)); $this->assertTrue($this->rootView->file_exists($v2)); @@ -361,6 +368,8 @@ class Test_Files_Versioning extends \Test\TestCase { // execute copy hook of versions app \OC\Files\Filesystem::copy("test.txt", "test2.txt"); + $this->runCommands(); + $this->assertTrue($this->rootView->file_exists($v1)); $this->assertTrue($this->rootView->file_exists($v2)); @@ -414,7 +423,9 @@ class Test_Files_Versioning extends \Test\TestCase { public static function loginHelper($user, $create = false) { if ($create) { - \OC_User::createUser($user, $user); + $backend = new \OC_User_Dummy(); + $backend->createUser($user, $user); + \OC::$server->getUserManager()->registerBackend($backend); } \OC_Util::tearDownFS();