]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix filesystem setup for shared public link with logged in user
authorBart Visscher <bartv@thisnet.nl>
Wed, 29 Aug 2012 19:35:55 +0000 (21:35 +0200)
committerBart Visscher <bartv@thisnet.nl>
Wed, 29 Aug 2012 19:35:55 +0000 (21:35 +0200)
apps/files_sharing/public.php
lib/util.php

index a4bf0230a3a9548e59d0529915375f36a18b081f..7f72ef81bd3f68884f27a290e2d9ae8aa3905f2e 100644 (file)
@@ -5,7 +5,6 @@ if (isset($_GET['file'])) {
        $pos = strpos($_GET['file'], '/', 1);
        $uidOwner = substr($_GET['file'], 1, $pos - 1);
        if (OCP\User::userExists($uidOwner)) {
-               OC_Util::tearDownFS();
                OC_Util::setupFS($uidOwner);
                $file = substr($_GET['file'], $pos);
                $fileSource = OC_Filecache::getId($_GET['file'], '');
@@ -73,4 +72,4 @@ if (isset($_GET['file'])) {
 }
 header('HTTP/1.0 404 Not Found');
 $tmpl = new OCP\Template('', '404', 'guest');
-$tmpl->printPage();
\ No newline at end of file
+$tmpl->printPage();
index b77d6cb1b65e89467fe8d313f9b9cfd1975bcf92..10b88b24438ae2c277084dc92c0343d6e7e01602 100755 (executable)
@@ -19,6 +19,18 @@ class OC_Util {
                        return false;
                }
 
+               // If we are not forced to load a specific user we load the one that is logged in
+               if( $user == "" && OC_User::isLoggedIn()){
+                       $user = OC_User::getUser();
+               }
+
+               // the filesystem will finish when $user is not empty,
+               // mark fs setup here to avoid doing the setup from loading
+               // OC_Filesystem
+               if ($user != '') {
+                       self::$fsSetup=true;
+               }
+
                $CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" );
                //first set up the local "root" storage
                if(!self::$rootMounted){
@@ -26,11 +38,6 @@ class OC_Util {
                        self::$rootMounted=true;
                }
 
-               // If we are not forced to load a specific user we load the one that is logged in
-               if( $user == "" && OC_User::isLoggedIn()){
-                       $user = OC_User::getUser();
-               }
-
                if( $user != "" ){ //if we aren't logged in, there is no use to set up the filesystem
                        $user_dir = '/'.$user.'/files';
                        $user_root = OC_User::getHome($user);
@@ -43,7 +50,6 @@ class OC_Util {
                        OC_Filesystem::init($user_dir);
                        $quotaProxy=new OC_FileProxy_Quota();
                        OC_FileProxy::register($quotaProxy);
-                       self::$fsSetup=true;
                        // Load personal mount config
                        if (is_file($user_root.'/mount.php')) {
                                $mountConfig = include($user_root.'/mount.php');