SAAS-382: Reimplement Storage Quota

Storing disk usage in cc_pref
Add/subtract filesize to/from disk usage total when a file is uploaded or deleted
TODO: Hook this into the ftp server
This commit is contained in:
drigato 2014-03-21 09:50:03 -04:00
parent 2b696dbee5
commit 7800cb1e15
3 changed files with 25 additions and 1 deletions

View file

@ -356,6 +356,7 @@ class LibraryController extends Zend_Controller_Action
if (isset($file)) {
try {
Application_Model_Preference::updateDiskUsage(-1 * abs(filesize($file->getFilePath())));
$res = $file->delete();
} catch (FileNoPermissionException $e) {
$message = $noPermissionMsg;

View file

@ -1415,4 +1415,24 @@ class Application_Model_Preference
public static function GetHistoryFileTemplate() {
return self::getValue("history_file_template");
}
public static function getDiskUsage()
{
return self::getValue("disk_usage");
}
public static function setDiskUsage($value)
{
self::setValue("disk_usage", $value);
}
public static function updateDiskUsage($filesize)
{
$currentDiskUsage = self::getDiskUsage();
if (empty($currentDiskUsage)) {
$currentDiskUsage = 0;
}
self::setDiskUsage($currentDiskUsage + $filesize);
}
}

View file

@ -156,6 +156,7 @@ class Rest_MediaController extends Zend_Rest_Controller
//our internal schema. Internally, file path is stored relative to a directory, with the directory
//as a foreign key to cc_music_dirs.
if ($requestData["full_path"]) {
Application_Model_Preference::updateDiskUsage(filesize($requestData["full_path"]));
$fullPath = $requestData["full_path"];
$storDir = Application_Model_MusicDir::getStorDir()->getDirectory();
@ -196,6 +197,7 @@ class Rest_MediaController extends Zend_Rest_Controller
$file = CcFilesQuery::create()->findPk($id);
if ($file) {
$storedFile = Application_Model_StoredFile($file);
Application_Model_Preference::updateDiskUsage(-1 * abs(filesize($storedFile->getFilePath())));
$storedFile->delete(); //TODO: This checks your session permissions... Make it work without a session?
$file->delete();
$this->getResponse()
@ -373,5 +375,6 @@ class Rest_MediaController extends Zend_Rest_Controller
return $response;
}
}