]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix propagating changes within jail wrapper 5687/head
authorRobin Appelman <robin@icewind.nl>
Tue, 11 Jul 2017 15:55:04 +0000 (17:55 +0200)
committerRobin Appelman <robin@icewind.nl>
Tue, 11 Jul 2017 17:20:51 +0000 (19:20 +0200)
Signed-off-by: Robin Appelman <robin@icewind.nl>
apps/files_sharing/lib/SharedPropagator.php [deleted file]
apps/files_sharing/lib/SharedStorage.php
lib/private/Files/Cache/Wrapper/JailPropagator.php [new file with mode: 0644]
lib/private/Files/Storage/Wrapper/Jail.php

diff --git a/apps/files_sharing/lib/SharedPropagator.php b/apps/files_sharing/lib/SharedPropagator.php
deleted file mode 100644 (file)
index f35a5b1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program.  If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_Sharing;
-
-use OC\Files\Cache\Propagator;
-
-class SharedPropagator extends Propagator {
-       /**
-        * @var \OCA\Files_Sharing\SharedStorage
-        */
-       protected $storage;
-
-       /**
-        * @param string $internalPath
-        * @param int $time
-        * @param int $sizeDifference
-        */
-       public function propagateChange($internalPath, $time, $sizeDifference = 0) {
-               /** @var \OC\Files\Storage\Storage $storage */
-               list($storage, $sourceInternalPath) = $this->storage->resolvePath($internalPath);
-               $storage->getPropagator()->propagateChange($sourceInternalPath, $time, $sizeDifference);
-       }
-}
index df613bf86bbe5057fca94a13320c216de4adb7d6..32304afea01e591d98d96d01c638dbbb04b182de 100644 (file)
@@ -376,18 +376,6 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
                return new \OCA\Files_Sharing\Scanner($storage);
        }
 
-       public function getPropagator($storage = null) {
-               if (isset($this->propagator)) {
-                       return $this->propagator;
-               }
-
-               if (!$storage) {
-                       $storage = $this;
-               }
-               $this->propagator = new \OCA\Files_Sharing\SharedPropagator($storage, \OC::$server->getDatabaseConnection());
-               return $this->propagator;
-       }
-
        public function getOwner($path) {
                return $this->superShare->getShareOwner();
        }
diff --git a/lib/private/Files/Cache/Wrapper/JailPropagator.php b/lib/private/Files/Cache/Wrapper/JailPropagator.php
new file mode 100644 (file)
index 0000000..297dfce
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OC\Files\Cache\Wrapper;
+
+
+use OC\Files\Cache\Propagator;
+use OC\Files\Storage\Wrapper\Jail;
+
+class JailPropagator extends Propagator {
+       /**
+        * @var Jail
+        */
+       protected $storage;
+
+       /**
+        * @param string $internalPath
+        * @param int $time
+        * @param int $sizeDifference
+        */
+       public function propagateChange($internalPath, $time, $sizeDifference = 0) {
+               /** @var \OC\Files\Storage\Storage $storage */
+               list($storage, $sourceInternalPath) = $this->storage->resolvePath($internalPath);
+               $storage->getPropagator()->propagateChange($sourceInternalPath, $time, $sizeDifference);
+       }
+}
index 91e8e5ed3c92985c71f5becb0988828f0a1b8560..4fa2428c968c7e28268abfa46ce1460388127072 100644 (file)
@@ -25,6 +25,7 @@
 namespace OC\Files\Storage\Wrapper;
 
 use OC\Files\Cache\Wrapper\CacheJail;
+use OC\Files\Cache\Wrapper\JailPropagator;
 use OCP\Lock\ILockingProvider;
 
 /**
@@ -488,4 +489,16 @@ class Jail extends Wrapper {
                }
                return $this->getWrapperStorage()->moveFromStorage($sourceStorage, $sourceInternalPath, $this->getUnjailedPath($targetInternalPath));
        }
+
+       public function getPropagator($storage = null) {
+               if (isset($this->propagator)) {
+                       return $this->propagator;
+               }
+
+               if (!$storage) {
+                       $storage = $this;
+               }
+               $this->propagator = new JailPropagator($storage, \OC::$server->getDatabaseConnection());
+               return $this->propagator;
+       }
 }