From 9f5bce81b037624099012038f1ebfeb94d3317fd Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 24 Feb 2012 14:10:19 +0100 Subject: [PATCH] add a default user quota --- lib/fileproxy/quota.php | 30 ++++++++++++++++++++++++++++-- settings/ajax/setquota.php | 10 ++++++++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/lib/fileproxy/quota.php b/lib/fileproxy/quota.php index 94a49176ee..9e4c2d0643 100644 --- a/lib/fileproxy/quota.php +++ b/lib/fileproxy/quota.php @@ -26,11 +26,37 @@ */ class OC_FileProxy_Quota extends OC_FileProxy{ + private $userQuota=-1; + + /** + * get the quota for the current user + * @return int + */ + private function getQuota(){ + if($this->userQuota!=-1){ + return $this->userQuota; + } + $userQuota=OC_Preferences::getValue(OC_User::getUser(),'files','quota','default'); + if($userQuota=='default'){ + $userQuota=OC_AppConfig::getValue('files','default_quota','none'); + } + if($userQuota=='none'){ + $this->userQuota=0; + }else{ + $this->userQuota=OC_Helper::computerFileSize($userQuota); + } + return $this->userQuota; + + } + + /** + * get the free space in the users home folder + * @return int + */ private function getFreeSpace(){ $rootInfo=OC_FileCache::get(''); $usedSpace=$rootInfo['size']; - $totalSpace=OC_Preferences::getValue(OC_User::getUser(),'files','quota',0); - $totalSpace=OC_Helper::computerFileSize($totalSpace); + $totalSpace=$this->getQuota(); if($totalSpace==0){ return 0; } diff --git a/settings/ajax/setquota.php b/settings/ajax/setquota.php index d4e3c58ac1..7bfc65102c 100644 --- a/settings/ajax/setquota.php +++ b/settings/ajax/setquota.php @@ -8,8 +8,14 @@ OC_JSON::checkAdminUser(); $username = $_POST["username"]; //make sure the quota is in the expected format -$quota= OC_Helper::computerFileSize($_POST["quota"]); -$quota=OC_Helper::humanFileSize($quota); +$quota=$_POST["quota"]; +if($quota!='none' and $quota!='default'){ + $quota= OC_Helper::computerFileSize($quota); + $quota=OC_Helper::humanFileSize($quota); +} +if($quota==0){ + $quota='default'; +} // Return Success story OC_Preferences::setValue($username,'files','quota',$quota);