From c958d5ba808ce64083470f65f11d3f9e8b74f7a1 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 29 Aug 2012 21:35:55 +0200 Subject: [PATCH] Fix filesystem setup for shared public link with logged in user --- apps/files_sharing/public.php | 3 +-- lib/util.php | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index a4bf0230a3..7f72ef81bd 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -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(); diff --git a/lib/util.php b/lib/util.php index b77d6cb1b6..10b88b2443 100755 --- a/lib/util.php +++ b/lib/util.php @@ -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');