diff options
author | Lukas Reschke <lukas@owncloud.com> | 2015-03-26 19:55:13 +0100 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2015-03-26 19:55:13 +0100 |
commit | c8c722bc6de3a58e10ba42a55a178d3ba9308bae (patch) | |
tree | 6d62aa73cc72596b1bf385cca20e4d8bd9563525 /lib/private/command | |
parent | 3e57e9d3e557100ba0b51f08a3de7a7e8f79f4bd (diff) | |
parent | 6447962f2a3bd845be9ee494f400958371f6e2f9 (diff) | |
download | nextcloud-server-c8c722bc6de3a58e10ba42a55a178d3ba9308bae.tar.gz nextcloud-server-c8c722bc6de3a58e10ba42a55a178d3ba9308bae.zip |
Merge pull request #15129 from owncloud/version-command-bus
expire versions in a background command
Diffstat (limited to 'lib/private/command')
-rw-r--r-- | lib/private/command/fileaccess.php | 6 | ||||
-rw-r--r-- | lib/private/command/queuebus.php | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/lib/private/command/fileaccess.php b/lib/private/command/fileaccess.php index 10fd00fb243..b4af557153e 100644 --- a/lib/private/command/fileaccess.php +++ b/lib/private/command/fileaccess.php @@ -24,8 +24,12 @@ namespace OC\Command; use OCP\IUser; trait FileAccess { - protected function getUserFolder(IUser $user) { + protected function setupFS(IUser $user){ \OC_Util::setupFS($user->getUID()); + } + + protected function getUserFolder(IUser $user) { + $this->setupFS($user); return \OC::$server->getUserFolder($user->getUID()); } } diff --git a/lib/private/command/queuebus.php b/lib/private/command/queuebus.php index ac69f8b0d55..76caf76a575 100644 --- a/lib/private/command/queuebus.php +++ b/lib/private/command/queuebus.php @@ -28,7 +28,7 @@ class QueueBus implements IBus { /** * @var (ICommand|callable)[] */ - private $queue; + private $queue = []; /** * Schedule a command to be fired @@ -52,7 +52,13 @@ class QueueBus implements IBus { */ private function runCommand($command) { if ($command instanceof ICommand) { - $command->handle(); + // ensure the command can be serialized + $serialized = serialize($command); + if(strlen($serialized) > 4000) { + throw new \InvalidArgumentException('Trying to push a command which serialized form can not be stored in the database (>4000 character)'); + } + $unserialized = unserialize($serialized); + $unserialized->handle(); } else { $command(); } |