summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2016-04-29 09:08:40 +0200
committerJoas Schilling <nickvergessen@owncloud.com>2016-04-29 09:08:40 +0200
commitf1b6b0799c6ee3643f9bbb3e9f18e8c65c3405d2 (patch)
tree6651a09389871084046c18125e8450d21a6f7a9d /lib
parentba0099f73abc133cfc88ad2d7a25b86677d1c111 (diff)
downloadnextcloud-server-f1b6b0799c6ee3643f9bbb3e9f18e8c65c3405d2.tar.gz
nextcloud-server-f1b6b0799c6ee3643f9bbb3e9f18e8c65c3405d2.zip
Add a warning if a storage wrapper was registered outside of the hook
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Files/Filesystem.php18
-rw-r--r--lib/private/util.php2
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/private/Files/Filesystem.php b/lib/private/Files/Filesystem.php
index 7283c815c97..d33f9476f22 100644
--- a/lib/private/Files/Filesystem.php
+++ b/lib/private/Files/Filesystem.php
@@ -207,12 +207,30 @@ class Filesystem {
*/
private static $loader;
+ /** @var bool */
+ private static $logWarningWhenAddingStorageWrapper = true;
+
+ /**
+ * @param bool $shouldLog
+ * @internal
+ */
+ public static function logWarningWhenAddingStorageWrapper($shouldLog) {
+ self::$logWarningWhenAddingStorageWrapper = (bool) $shouldLog;
+ }
+
/**
* @param string $wrapperName
* @param callable $wrapper
* @param int $priority
*/
public static function addStorageWrapper($wrapperName, $wrapper, $priority = 50) {
+ if (self::$logWarningWhenAddingStorageWrapper) {
+ \OC::$server->getLogger()->warning("Storage wrapper '{wrapper}' was not registered via the 'OC_Filesystem - preSetup' hook which could cause potential problems.", [
+ 'wrapper' => $wrapperName,
+ 'app' => 'filesystem',
+ ]);
+ }
+
$mounts = self::getMountManager()->getAll();
if (!self::getLoader()->addStorageWrapper($wrapperName, $wrapper, $priority, $mounts)) {
// do not re-wrap if storage with this name already existed
diff --git a/lib/private/util.php b/lib/private/util.php
index 7caa1efcf54..b3432470f03 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -145,6 +145,7 @@ class OC_Util {
\OC\Files\Filesystem::initMountManager();
+ \OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(false);
\OC\Files\Filesystem::addStorageWrapper('mount_options', function ($mountPoint, \OCP\Files\Storage $storage, \OCP\Files\Mount\IMountPoint $mount) {
if ($storage->instanceOfStorage('\OC\Files\Storage\Common')) {
/** @var \OC\Files\Storage\Common $storage */
@@ -195,6 +196,7 @@ class OC_Util {
});
OC_Hook::emit('OC_Filesystem', 'preSetup', array('user' => $user));
+ \OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(true);
//check if we are using an object storage
$objectStore = \OC::$server->getSystemConfig()->getValue('objectstore', null);