Hack to prevent warning for read-only wrapper in public links

Storage wrappers should normally always be registered inside a presetup
hook. However in the public link scenario this is not possible and
there is currently no good alternative with the current architecture.

Instead of logging a warning every time, this fix prevents the warning
to be shown but also adds a FIXME in the code for the future. This is
ok because this app is already using private/internal APIs at the
moment and should be reworked properly in the future.
This commit is contained in:
Vincent Petry 2016-11-02 10:22:36 +01:00 committed by Joas Schilling
parent cc8750ca30
commit e7b1196dd6
No known key found for this signature in database
GPG Key ID: E166FD8976B3BAC8
2 changed files with 7 additions and 6 deletions

View File

@ -73,14 +73,12 @@ $server = $serverFactory->createServer($baseuri, $requestUri, $authBackend, func
$isReadable = $share->getPermissions() & \OCP\Constants::PERMISSION_READ; $isReadable = $share->getPermissions() & \OCP\Constants::PERMISSION_READ;
$fileId = $share->getNodeId(); $fileId = $share->getNodeId();
/* // FIXME: should not add storage wrappers outside of preSetup, need to find a better way
if (!$isReadable) { $previousLog = \OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(false);
return false;
}*/
\OC\Files\Filesystem::addStorageWrapper('sharePermissions', function ($mountPoint, $storage) use ($share) { \OC\Files\Filesystem::addStorageWrapper('sharePermissions', function ($mountPoint, $storage) use ($share) {
return new \OC\Files\Storage\Wrapper\PermissionsMask(array('storage' => $storage, 'mask' => $share->getPermissions() | \OCP\Constants::PERMISSION_SHARE)); return new \OC\Files\Storage\Wrapper\PermissionsMask(array('storage' => $storage, 'mask' => $share->getPermissions() | \OCP\Constants::PERMISSION_SHARE));
}); });
\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper($previousLog);
OC_Util::setupFS($owner); OC_Util::setupFS($owner);
$ownerView = \OC\Files\Filesystem::getView(); $ownerView = \OC\Files\Filesystem::getView();

View File

@ -214,10 +214,13 @@ class Filesystem {
/** /**
* @param bool $shouldLog * @param bool $shouldLog
* @return bool previous value
* @internal * @internal
*/ */
public static function logWarningWhenAddingStorageWrapper($shouldLog) { public static function logWarningWhenAddingStorageWrapper($shouldLog) {
self::$logWarningWhenAddingStorageWrapper = (bool)$shouldLog; $previousValue = self::$logWarningWhenAddingStorageWrapper;
self::$logWarningWhenAddingStorageWrapper = (bool) $shouldLog;
return $previousValue;
} }
/** /**