Skip to content
Snippets Groups Projects
Commit 960ff4f1 authored by Robin Appelman's avatar Robin Appelman
Browse files

Apply wrappers to existing mounts before registering it

parent 67f1534e
Branches
No related tags found
No related merge requests found
......@@ -175,15 +175,11 @@ class Filesystem {
* @param callable $wrapper
*/
public static function addStorageWrapper($wrapperName, $wrapper) {
if (!self::getLoader()->addStorageWrapper($wrapperName, $wrapper)) {
$mounts = self::getMountManager()->getAll();
if (!self::getLoader()->addStorageWrapper($wrapperName, $wrapper, $mounts)) {
// do not re-wrap if storage with this name already existed
return;
}
$mounts = self::getMountManager()->getAll();
foreach ($mounts as $mount) {
$mount->wrapStorage($wrapper);
}
}
/**
......@@ -201,7 +197,7 @@ class Filesystem {
/**
* Returns the mount manager
*
* @return \OC\Files\Filesystem\Mount\Manager
* @return \OC\Files\Mount\Manager
*/
public static function getMountManager() {
if (!self::$mounts) {
......
......@@ -23,13 +23,20 @@ class StorageFactory implements IStorageFactory {
*
* @param string $wrapperName name of the wrapper
* @param callable $callback callback
* @param \OCP\Files\Mount\IMountPoint[] $existingMounts existing mount points to apply the wrapper to
* @return bool true if the wrapper was added, false if there was already a wrapper with this
* name registered
*/
public function addStorageWrapper($wrapperName, $callback) {
public function addStorageWrapper($wrapperName, $callback, $existingMounts = []) {
if (isset($this->storageWrappers[$wrapperName])) {
return false;
}
// apply to existing mounts before registering it to prevent applying it double in MountPoint::createStorage
foreach ($existingMounts as $mount) {
$mount->wrapStorage($callback);
}
$this->storageWrappers[$wrapperName] = $callback;
return true;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment