]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix shared storage working with user backend defined data directories
authorMichael Gapczynski <mtgap@owncloud.com>
Wed, 29 Aug 2012 18:36:51 +0000 (14:36 -0400)
committerMichael Gapczynski <mtgap@owncloud.com>
Wed, 29 Aug 2012 18:39:13 +0000 (14:39 -0400)
apps/files_sharing/lib/sharedstorage.php
lib/util.php

index df5d4d20aed94d86cc20687f518e5f4604742f50..6a2905b52c91265a4342797631ed90feddac0db3 100644 (file)
@@ -30,7 +30,6 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
 
        public function __construct($arguments) {
                $this->sharedFolder = $arguments['sharedFolder'];
-               OC_Util::setupFS4all();
        }
 
        /**
@@ -78,6 +77,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
        private function getSourcePath($target) {
                $file = $this->getFile($target);
                if (isset($file['path'])) {
+                       $uid = substr($file['path'], 1, strpos($file['path'], '/', 1) - 1);
+                       OC_Filesystem::mount('OC_Filestorage_Local', array('datadir' => OC_User::getHome($uid)), $uid);
                        return $file['path'];
                }
                return false;
index 24f80b9389698768bb0954bd8210352b48aeaf7f..b77d6cb1b65e89467fe8d313f9b9cfd1975bcf92 100755 (executable)
@@ -35,13 +35,11 @@ class OC_Util {
                        $user_dir = '/'.$user.'/files';
                        $user_root = OC_User::getHome($user);
                        $userdirectory = $user_root . '/files';
-                       OC_Filesystem::mount('OC_Filestorage_Local',array('datadir'=>$user_root), $user);
                        if( !is_dir( $userdirectory )){
                                mkdir( $userdirectory, 0755, true );
                        }
-                       OC_Filesystem::mount('OC_Filestorage_Local',array('datadir'=>$user_root), $user);
-
                        //jail the user into his "home" directory
+                       OC_Filesystem::mount('OC_Filestorage_Local', array('datadir' => $user_root), $user);
                        OC_Filesystem::init($user_dir);
                        $quotaProxy=new OC_FileProxy_Quota();
                        OC_FileProxy::register($quotaProxy);
@@ -59,12 +57,6 @@ class OC_Util {
                }
        }
 
-       public static function setupFS4all(){
-               foreach(OC_User::getUsers() as $user){
-                       OC_Filesystem::mount('OC_Filestorage_Local',array('datadir'=>OC_User::getHome($singleuser)), $user);
-               }
-       }
-
        public static function tearDownFS(){
                OC_Filesystem::tearDown();
                self::$fsSetup=false;