Browse Source

Merge pull request #24335 from owncloud/warning-for-wrongly-done-storage-wrappers

Add a warning if a storage wrapper was registered outside of the hook
tags/v9.1.0beta1
Thomas Müller 8 years ago
parent
commit
6c2e94e0b2
2 changed files with 20 additions and 0 deletions
  1. 18
    0
      lib/private/Files/Filesystem.php
  2. 2
    0
      lib/private/util.php

+ 18
- 0
lib/private/Files/Filesystem.php View File

@@ -208,12 +208,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

+ 2
- 0
lib/private/util.php View File

@@ -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);

Loading…
Cancel
Save