diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-08-15 20:37:50 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-08-15 21:09:13 +0200 |
commit | 6173c0fbc262f0d02c45d9cf4e81b020ad839145 (patch) | |
tree | 7c453e5dce300051efbcc3721eec4d7306c6000d /lib/fileproxy | |
parent | 2f1a06b2ee8b2022e71d8903fd5ce0ccf2f8c22f (diff) | |
download | nextcloud-server-6173c0fbc262f0d02c45d9cf4e81b020ad839145.tar.gz nextcloud-server-6173c0fbc262f0d02c45d9cf4e81b020ad839145.zip |
a bit of refactoring for oc_filesystem and implement user quota
Diffstat (limited to 'lib/fileproxy')
-rw-r--r-- | lib/fileproxy/quota.php | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/fileproxy/quota.php b/lib/fileproxy/quota.php new file mode 100644 index 00000000000..af8ddee1473 --- /dev/null +++ b/lib/fileproxy/quota.php @@ -0,0 +1,61 @@ +<?php + +/** +* ownCloud +* +* @author Robin Appelman +* @copyright 2011 Robin Appelman icewind1991@gmail.com +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Affero General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +/** + * user quota managment + */ + +class OC_FileProxy_Quota extends OC_FileProxy{ + private function getFreeSpace(){ + $usedSpace=OC_Filesystem::filesize(''); + $totalSpace=OC_Preferences::getValue(OC_User::getUser(),'files','quota',0); + if($totalSpace==0){ + return 0; + } + return $totalSpace-$usedSpace; + } + + public function postFree_space($path,$space){ + $free=$this->getFreeSpace(); + if($free==0){ + return $space; + } + return min($free,$space); + } + + public function preFile_put_contents($path,$data){ + return (strlen($data)<$this->getFreeSpace() or $this->getFreeSpace()==0); + } + + public function preCopy($path1,$path2){ + return (OC_Filesystem::filesize($path1)<$this->getFreeSpace() or $this->getFreeSpace()==0); + } + + public function preFromTmpFile($tmpfile,$path){ + return (filesize($tmpfile)<$this->getFreeSpace() or $this->getFreeSpace()==0); + } + + public function preFromUploadedFile($tmpfile,$path){ + return (filesize($tmpfile)<$this->getFreeSpace() or $this->getFreeSpace()==0); + } +}
\ No newline at end of file |