]> source.dussan.org Git - nextcloud-server.git/commitdiff
setup storage wrappers before setting up the filesystem
authorRobin Appelman <icewind@owncloud.com>
Wed, 1 Apr 2015 15:12:06 +0000 (17:12 +0200)
committerRobin Appelman <icewind@owncloud.com>
Wed, 1 Apr 2015 15:12:06 +0000 (17:12 +0200)
apps/files_trashbin/lib/trashbin.php
lib/private/util.php

index eaf0c705a455309924636853e62842a06786722a..6bdbac49aa707642503daef161526a9967fdd026 100644 (file)
@@ -957,7 +957,7 @@ class Trashbin {
         */
        public static function registerHooks() {
                // create storage wrapper on setup
-               \OCP\Util::connectHook('OC_Filesystem', 'setup', 'OCA\Files_Trashbin\Storage', 'setupStorage');
+               \OCP\Util::connectHook('OC_Filesystem', 'preSetup', 'OCA\Files_Trashbin\Storage', 'setupStorage');
                //Listen to delete user signal
                \OCP\Util::connectHook('OC_User', 'pre_deleteUser', 'OCA\Files_Trashbin\Hooks', 'deleteUser_hook');
                //Listen to post write hook
index e423bb6a7df9f27d327076797fead3f3daefd710..9e70e3ca35f8c5e7dbbfe6894461d9e4ede84691 100644 (file)
@@ -133,6 +133,39 @@ class OC_Util {
                        self::$fsSetup = true;
                }
 
+               \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 */
+                               $storage->setMountOptions($mount->getOptions());
+                       }
+                       return $storage;
+               });
+
+               \OC\Files\Filesystem::addStorageWrapper('oc_quota', function ($mountPoint, $storage) {
+                       // set up quota for home storages, even for other users
+                       // which can happen when using sharing
+
+                       /**
+                        * @var \OC\Files\Storage\Storage $storage
+                        */
+                       if ($storage->instanceOfStorage('\OC\Files\Storage\Home')
+                               || $storage->instanceOfStorage('\OC\Files\ObjectStore\HomeObjectStoreStorage')
+                       ) {
+                               /** @var \OC\Files\Storage\Home $storage */
+                               if (is_object($storage->getUser())) {
+                                       $user = $storage->getUser()->getUID();
+                                       $quota = OC_Util::getUserQuota($user);
+                                       if ($quota !== \OCP\Files\FileInfo::SPACE_UNLIMITED) {
+                                               return new \OC\Files\Storage\Wrapper\Quota(array('storage' => $storage, 'quota' => $quota, 'root' => 'files'));
+                                       }
+                               }
+                       }
+
+                       return $storage;
+               });
+
+               OC_Hook::emit('OC_Filesystem', 'preSetup', array('user' => $user));
+
                //check if we are using an object storage
                $objectStore = OC_Config::getValue('objectstore');
                if (isset($objectStore)) {
@@ -146,37 +179,8 @@ class OC_Util {
                        return 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 */
-                               $storage->setMountOptions($mount->getOptions());
-                       }
-                       return $storage;
-               });
-
                //if we aren't logged in, there is no use to set up the filesystem
                if ($user != "") {
-                       \OC\Files\Filesystem::addStorageWrapper('oc_quota', function ($mountPoint, $storage) {
-                               // set up quota for home storages, even for other users
-                               // which can happen when using sharing
-
-                               /**
-                                * @var \OC\Files\Storage\Storage $storage
-                                */
-                               if ($storage->instanceOfStorage('\OC\Files\Storage\Home')
-                                       || $storage->instanceOfStorage('\OC\Files\ObjectStore\HomeObjectStoreStorage')
-                               ) {
-                                       if (is_object($storage->getUser())) {
-                                               $user = $storage->getUser()->getUID();
-                                               $quota = OC_Util::getUserQuota($user);
-                                               if ($quota !== \OCP\Files\FileInfo::SPACE_UNLIMITED) {
-                                                       return new \OC\Files\Storage\Wrapper\Quota(array('storage' => $storage, 'quota' => $quota, 'root' => 'files'));
-                                               }
-                                       }
-                               }
-
-                               return $storage;
-                       });
 
                        $userDir = '/' . $user . '/files';