Keep user quota into account when the storage backend has unkown free space

This commit is contained in:
Robin Appelman 2013-02-17 20:09:03 +01:00
parent d96146a017
commit 451daf3ab1
1 changed files with 9 additions and 6 deletions

View File

@ -62,21 +62,21 @@ class OC_FileProxy_Quota extends OC_FileProxy{
* @var string $internalPath
*/
list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($path);
$owner=$storage->getOwner($internalPath);
$owner = $storage->getOwner($internalPath);
if (!$owner) {
return -1;
}
$totalSpace=$this->getQuota($owner);
if($totalSpace==-1) {
$totalSpace = $this->getQuota($owner);
if($totalSpace == -1) {
return -1;
}
$view = new \OC\Files\View("/".$owner."/files");
$rootInfo=$view->getFileInfo('/');
$usedSpace=isset($rootInfo['size'])?$rootInfo['size']:0;
return $totalSpace-$usedSpace;
$rootInfo = $view->getFileInfo('/');
$usedSpace = isset($rootInfo['size'])?$rootInfo['size']:0;
return $totalSpace - $usedSpace;
}
public function postFree_space($path, $space) {
@ -84,6 +84,9 @@ class OC_FileProxy_Quota extends OC_FileProxy{
if($free==-1) {
return $space;
}
if ($space < 0){
return $free;
}
return min($free, $space);
}