]> source.dussan.org Git - nextcloud-server.git/commitdiff
Hack to prevent warning for read-only wrapper in public links
authorVincent Petry <pvince81@owncloud.com>
Wed, 2 Nov 2016 09:22:36 +0000 (10:22 +0100)
committerJoas Schilling <coding@schilljs.com>
Wed, 16 Nov 2016 18:04:42 +0000 (19:04 +0100)
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.

apps/dav/appinfo/v1/publicwebdav.php
lib/private/Files/Filesystem.php

index 670eadd5ea9583bccf0803dafb2e916fe820eadd..95fb71032d51b7640d0940952615dc02e9492783 100644 (file)
@@ -73,14 +73,12 @@ $server = $serverFactory->createServer($baseuri, $requestUri, $authBackend, func
        $isReadable = $share->getPermissions() & \OCP\Constants::PERMISSION_READ;
        $fileId = $share->getNodeId();
 
-       /*
-       if (!$isReadable) {
-               return false;
-       }*/
-
+       // FIXME: should not add storage wrappers outside of preSetup, need to find a better way
+       $previousLog = \OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(false);
        \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));
        });
+       \OC\Files\Filesystem::logWarningWhenAddingStorageWrapper($previousLog);
 
        OC_Util::setupFS($owner);
        $ownerView = \OC\Files\Filesystem::getView();
index ac0e66973d41d8b8a502dc2fd1e6d1e8cc9af54f..3f776a1a8099d1fa7b6cec5385444e23b5108970 100644 (file)
@@ -214,10 +214,13 @@ class Filesystem {
 
        /**
         * @param bool $shouldLog
+        * @return bool previous value
         * @internal
         */
        public static function logWarningWhenAddingStorageWrapper($shouldLog) {
-               self::$logWarningWhenAddingStorageWrapper = (bool)$shouldLog;
+               $previousValue = self::$logWarningWhenAddingStorageWrapper;
+               self::$logWarningWhenAddingStorageWrapper = (bool) $shouldLog;
+               return $previousValue;
        }
 
        /**