Merge branch 'cc-5709-airtime-analyzer' into saas
Conflicts: airtime_mvc/application/Bootstrap.php airtime_mvc/application/modules/rest/controllers/MediaController.php
This commit is contained in:
commit
964d7d1326
|
@ -18,6 +18,7 @@ require_once 'Preference.php';
|
||||||
require_once 'Locale.php';
|
require_once 'Locale.php';
|
||||||
require_once "DateHelper.php";
|
require_once "DateHelper.php";
|
||||||
require_once "LocaleHelper.php";
|
require_once "LocaleHelper.php";
|
||||||
|
require_once "FileDataHelper.php";
|
||||||
require_once "HTTPHelper.php";
|
require_once "HTTPHelper.php";
|
||||||
require_once "OsPath.php";
|
require_once "OsPath.php";
|
||||||
require_once "Database.php";
|
require_once "Database.php";
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class FileDataHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We want to throw out invalid data and process the upload successfully
|
||||||
|
* at all costs, so check the data and sanitize it if necessary
|
||||||
|
* @param array $data array containing new file metadata
|
||||||
|
*/
|
||||||
|
public static function sanitizeData(&$data)
|
||||||
|
{
|
||||||
|
if (array_key_exists("track_number", $data)) {
|
||||||
|
// If the track number isn't numeric, this will return 0
|
||||||
|
$data["track_number"] = intval($data["track_number"]);
|
||||||
|
}
|
||||||
|
if (array_key_exists("year", $data)) {
|
||||||
|
// If the track number isn't numeric, this will return 0
|
||||||
|
$data["year"] = intval($data["year"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -77,8 +77,6 @@ class LibraryController extends Zend_Controller_Action
|
||||||
|
|
||||||
$obj_sess = new Zend_Session_Namespace(UI_PLAYLISTCONTROLLER_OBJ_SESSNAME);
|
$obj_sess = new Zend_Session_Namespace(UI_PLAYLISTCONTROLLER_OBJ_SESSNAME);
|
||||||
if (isset($obj_sess->id)) {
|
if (isset($obj_sess->id)) {
|
||||||
$objInfo = Application_Model_Library::getObjInfo($obj_sess->type);
|
|
||||||
|
|
||||||
$objInfo = Application_Model_Library::getObjInfo($obj_sess->type);
|
$objInfo = Application_Model_Library::getObjInfo($obj_sess->type);
|
||||||
$obj = new $objInfo['className']($obj_sess->id);
|
$obj = new $objInfo['className']($obj_sess->id);
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
|
@ -446,22 +444,11 @@ class LibraryController extends Zend_Controller_Action
|
||||||
$serialized[$j["name"]] = $j["value"];
|
$serialized[$j["name"]] = $j["value"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sanitize any wildly incorrect metadata before it goes to be validated.
|
||||||
|
FileDataHelper::sanitizeData($serialized);
|
||||||
|
|
||||||
if ($form->isValid($serialized)) {
|
if ($form->isValid($serialized)) {
|
||||||
|
$file->setDbColMetadata($serialized);
|
||||||
$formValues = $this->_getParam('data', null);
|
|
||||||
$formdata = array();
|
|
||||||
foreach ($formValues as $val) {
|
|
||||||
$formdata[$val["name"]] = $val["value"];
|
|
||||||
}
|
|
||||||
$file->setDbColMetadata($formdata);
|
|
||||||
|
|
||||||
$data = $file->getMetadata();
|
|
||||||
|
|
||||||
// set MDATA_KEY_FILEPATH
|
|
||||||
$data['MDATA_KEY_FILEPATH'] = $file->getFilePath();
|
|
||||||
Logging::info($data['MDATA_KEY_FILEPATH']);
|
|
||||||
Application_Model_RabbitMq::SendMessageToMediaMonitor("md_update", $data);
|
|
||||||
|
|
||||||
$this->_redirect('Library');
|
$this->_redirect('Library');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ class Application_Form_EditAudioMD extends Zend_Form
|
||||||
$track_number->class = 'input_text';
|
$track_number->class = 'input_text';
|
||||||
$track_number->setLabel('Track Number:')
|
$track_number->setLabel('Track Number:')
|
||||||
->setFilters(array('StringTrim'))
|
->setFilters(array('StringTrim'))
|
||||||
->setValidators(array(new Zend_Validate_Digits()));
|
->setValidators(array(new Zend_Validate_Int()));
|
||||||
$this->addElement($track_number);
|
$this->addElement($track_number);
|
||||||
|
|
||||||
// Add genre field
|
// Add genre field
|
||||||
|
|
|
@ -172,6 +172,7 @@ class Rest_MediaController extends Zend_Rest_Controller
|
||||||
$file->save();
|
$file->save();
|
||||||
return;
|
return;
|
||||||
} else if ($file && isset($requestData["resource_id"])) {
|
} else if ($file && isset($requestData["resource_id"])) {
|
||||||
|
|
||||||
$file->fromArray($whiteList, BasePeer::TYPE_FIELDNAME);
|
$file->fromArray($whiteList, BasePeer::TYPE_FIELDNAME);
|
||||||
|
|
||||||
//store the original filename
|
//store the original filename
|
||||||
|
@ -200,6 +201,7 @@ class Rest_MediaController extends Zend_Rest_Controller
|
||||||
->setHttpResponseCode(200)
|
->setHttpResponseCode(200)
|
||||||
->appendBody(json_encode(CcFiles::sanitizeResponse($file)));
|
->appendBody(json_encode(CcFiles::sanitizeResponse($file)));
|
||||||
} else if ($file) {
|
} else if ($file) {
|
||||||
|
|
||||||
//local file storage
|
//local file storage
|
||||||
$file->setDbDirectory(self::MUSIC_DIRS_STOR_PK);
|
$file->setDbDirectory(self::MUSIC_DIRS_STOR_PK);
|
||||||
$file->fromArray($whiteList, BasePeer::TYPE_FIELDNAME);
|
$file->fromArray($whiteList, BasePeer::TYPE_FIELDNAME);
|
||||||
|
@ -294,12 +296,15 @@ class Rest_MediaController extends Zend_Rest_Controller
|
||||||
|
|
||||||
private function validateRequestData($file, &$whiteList)
|
private function validateRequestData($file, &$whiteList)
|
||||||
{
|
{
|
||||||
|
// Sanitize any wildly incorrect metadata before it goes to be validated
|
||||||
|
FileDataHelper::sanitizeData($whiteList);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// EditAudioMD form is used here for validation
|
// EditAudioMD form is used here for validation
|
||||||
$fileForm = new Application_Form_EditAudioMD();
|
$fileForm = new Application_Form_EditAudioMD();
|
||||||
$fileForm->startForm($file->getDbId());
|
$fileForm->startForm($file->getDbId());
|
||||||
$fileForm->populate($whiteList);
|
$fileForm->populate($whiteList);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Here we are truncating metadata of any characters greater than the
|
* Here we are truncating metadata of any characters greater than the
|
||||||
* max string length set in the database. In the rare case a track's
|
* max string length set in the database. In the rare case a track's
|
||||||
|
|
Loading…
Reference in New Issue