diff options
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(); } |