|
|
|
@ -46,6 +46,16 @@ class OC_Util { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if( $user != "" ) { //if we aren't logged in, there is no use to set up the filesystem |
|
|
|
|
$quota = self::getUserQuota($user); |
|
|
|
|
if ($quota !== \OC\Files\SPACE_UNLIMITED) { |
|
|
|
|
\OC\Files\Filesystem::addStorageWrapper(function($mountPoint, $storage) use ($quota, $user) { |
|
|
|
|
if ($mountPoint === '/' . $user . '/'){ |
|
|
|
|
return new \OC\Files\Storage\Wrapper\Quota(array('storage' => $storage, 'quota' => $quota)); |
|
|
|
|
} else { |
|
|
|
|
return $storage; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
$user_dir = '/'.$user.'/files'; |
|
|
|
|
$user_root = OC_User::getHome($user); |
|
|
|
|
$userdirectory = $user_root . '/files'; |
|
|
|
@ -55,9 +65,7 @@ class OC_Util { |
|
|
|
|
//jail the user into his "home" directory |
|
|
|
|
\OC\Files\Filesystem::init($user, $user_dir); |
|
|
|
|
|
|
|
|
|
$quotaProxy=new OC_FileProxy_Quota(); |
|
|
|
|
$fileOperationProxy = new OC_FileProxy_FileOperations(); |
|
|
|
|
OC_FileProxy::register($quotaProxy); |
|
|
|
|
OC_FileProxy::register($fileOperationProxy); |
|
|
|
|
|
|
|
|
|
OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $user_dir)); |
|
|
|
@ -65,6 +73,18 @@ class OC_Util { |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static function getUserQuota($user){ |
|
|
|
|
$userQuota = OC_Preferences::getValue($user, 'files', 'quota', 'default'); |
|
|
|
|
if($userQuota === 'default') { |
|
|
|
|
$userQuota = OC_AppConfig::getValue('files', 'default_quota', 'none'); |
|
|
|
|
} |
|
|
|
|
if($userQuota === 'none') { |
|
|
|
|
return \OC\Files\SPACE_UNLIMITED; |
|
|
|
|
}else{ |
|
|
|
|
return OC_Helper::computerFileSize($userQuota); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static function tearDownFS() { |
|
|
|
|
\OC\Files\Filesystem::tearDown(); |
|
|
|
|
self::$fsSetup=false; |
|
|
|
|