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:
parent
2b696dbee5
commit
7800cb1e15
3 changed files with 25 additions and 1 deletions
|
@ -356,6 +356,7 @@ class LibraryController extends Zend_Controller_Action
|
||||||
|
|
||||||
if (isset($file)) {
|
if (isset($file)) {
|
||||||
try {
|
try {
|
||||||
|
Application_Model_Preference::updateDiskUsage(-1 * abs(filesize($file->getFilePath())));
|
||||||
$res = $file->delete();
|
$res = $file->delete();
|
||||||
} catch (FileNoPermissionException $e) {
|
} catch (FileNoPermissionException $e) {
|
||||||
$message = $noPermissionMsg;
|
$message = $noPermissionMsg;
|
||||||
|
|
|
@ -1415,4 +1415,24 @@ class Application_Model_Preference
|
||||||
public static function GetHistoryFileTemplate() {
|
public static function GetHistoryFileTemplate() {
|
||||||
return self::getValue("history_file_template");
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
//our internal schema. Internally, file path is stored relative to a directory, with the directory
|
||||||
//as a foreign key to cc_music_dirs.
|
//as a foreign key to cc_music_dirs.
|
||||||
if ($requestData["full_path"]) {
|
if ($requestData["full_path"]) {
|
||||||
|
Application_Model_Preference::updateDiskUsage(filesize($requestData["full_path"]));
|
||||||
|
|
||||||
$fullPath = $requestData["full_path"];
|
$fullPath = $requestData["full_path"];
|
||||||
$storDir = Application_Model_MusicDir::getStorDir()->getDirectory();
|
$storDir = Application_Model_MusicDir::getStorDir()->getDirectory();
|
||||||
|
@ -196,6 +197,7 @@ class Rest_MediaController extends Zend_Rest_Controller
|
||||||
$file = CcFilesQuery::create()->findPk($id);
|
$file = CcFilesQuery::create()->findPk($id);
|
||||||
if ($file) {
|
if ($file) {
|
||||||
$storedFile = Application_Model_StoredFile($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?
|
$storedFile->delete(); //TODO: This checks your session permissions... Make it work without a session?
|
||||||
$file->delete();
|
$file->delete();
|
||||||
$this->getResponse()
|
$this->getResponse()
|
||||||
|
@ -373,5 +375,6 @@ class Rest_MediaController extends Zend_Rest_Controller
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue