Merge branch 'saas' of github.com:sourcefabric/Airtime into saas
This commit is contained in:
commit
ddd75cb8e3
|
@ -37,7 +37,7 @@ require_once (APPLICATION_PATH."/logging/Logging.php");
|
|||
Logging::setLogPath('/var/log/airtime/zendphp.log');
|
||||
|
||||
// We need to manually route because we can't load Zend without the database being initialized first.
|
||||
if (array_key_exists("REQUEST_URI", $_SERVER) && (strpos($_SERVER["REQUEST_URI"], "/provisioning/create") !== false)) {
|
||||
if (array_key_exists("REQUEST_URI", $_SERVER) && (stripos($_SERVER["REQUEST_URI"], "/provisioning/create") !== false)) {
|
||||
$provisioningHelper = new ProvisioningHelper($CC_CONFIG["apiKey"][0]);
|
||||
$provisioningHelper->createAction();
|
||||
die();
|
||||
|
|
|
@ -10,6 +10,7 @@ class ProvisioningHelper
|
|||
// Parameter values
|
||||
private $dbuser, $dbpass, $dbname, $dbhost, $dbowner, $apikey;
|
||||
private $instanceId;
|
||||
private $station_name, $description;
|
||||
|
||||
public function __construct($apikey)
|
||||
{
|
||||
|
@ -36,6 +37,7 @@ class ProvisioningHelper
|
|||
$this->parsePostParams();
|
||||
|
||||
//For security, the Airtime Pro provisioning system creates the database for the user.
|
||||
if ($this->dbhost && !empty($this->dbhost)) {
|
||||
$this->setNewDatabaseConnection();
|
||||
|
||||
//if ($this->checkDatabaseExists()) {
|
||||
|
@ -52,16 +54,18 @@ class ProvisioningHelper
|
|||
throw new Exception("ERROR: airtime tables already exists");
|
||||
}
|
||||
|
||||
$this->createDatabaseTables();
|
||||
$this->initializeMusicDirsTable($this->instanceId);
|
||||
}
|
||||
|
||||
//$this->createDatabase();
|
||||
|
||||
//All we need to do is create the database tables.
|
||||
|
||||
$this->createDatabaseTables();
|
||||
$this->initializeMusicDirsTable($this->instanceId);
|
||||
$this->initializePrefs();
|
||||
} catch (Exception $e) {
|
||||
http_response_code(400);
|
||||
Logging::error($e->getMessage()
|
||||
);
|
||||
Logging::error($e->getMessage());
|
||||
echo $e->getMessage() . PHP_EOL;
|
||||
return;
|
||||
}
|
||||
|
@ -94,6 +98,7 @@ class ProvisioningHelper
|
|||
// Result is either boolean FALSE (no table found) or PDOStatement Object (table found)
|
||||
return $result !== FALSE;
|
||||
}
|
||||
|
||||
private function parsePostParams()
|
||||
{
|
||||
$this->dbuser = $_POST['dbuser'];
|
||||
|
@ -102,6 +107,9 @@ class ProvisioningHelper
|
|||
$this->dbhost = $_POST['dbhost'];
|
||||
$this->dbowner = $_POST['dbowner'];
|
||||
$this->instanceId = $_POST['instanceid'];
|
||||
|
||||
$this->station_name = $_POST['station_name'];
|
||||
$this->description = $_POST['description'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -182,5 +190,16 @@ class ProvisioningHelper
|
|||
$musicDir->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize preference values passed from the dashboard (if any exist)
|
||||
*/
|
||||
private function initializePrefs() {
|
||||
if ($this->station_name) {
|
||||
Application_Model_Preference::SetStationName($this->station_name);
|
||||
}
|
||||
if ($this->description) {
|
||||
Application_Model_Preference::SetStationDescription($this->description);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -18,6 +18,40 @@ class ProvisioningController extends Zend_Controller_Action
|
|||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Endpoint to change Airtime preferences remotely.
|
||||
* Mainly for use with the dashboard right now.
|
||||
*/
|
||||
public function changeAction() {
|
||||
$this->view->layout()->disableLayout();
|
||||
$this->_helper->viewRenderer->setNoRender(true);
|
||||
|
||||
if (!RestAuth::verifyAuth(true, true, $this)) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// This is hacky and should be genericized
|
||||
if ($_POST['station_name']) {
|
||||
Application_Model_Preference::SetStationName($_POST['station_name']);
|
||||
}
|
||||
if ($_POST['description']) {
|
||||
Application_Model_Preference::SetStationDescription($_POST['description']);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$this->getResponse()
|
||||
->setHttpResponseCode(400)
|
||||
->appendBody("ERROR: " . $e->getMessage());
|
||||
Logging::error($e->getMessage());
|
||||
echo $e->getMessage() . PHP_EOL;
|
||||
return;
|
||||
}
|
||||
|
||||
$this->getResponse()
|
||||
->setHttpResponseCode(200)
|
||||
->appendBody("OK");
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the Airtime Pro station's files from Amazon S3
|
||||
*/
|
||||
|
|
|
@ -326,6 +326,11 @@ class Application_Model_Preference
|
|||
return self::getValue("station_name");
|
||||
}
|
||||
|
||||
public static function SetStationName($station_name)
|
||||
{
|
||||
self::setValue("station_name", $station_name);
|
||||
}
|
||||
|
||||
public static function SetAutoUploadRecordedShowToSoundcloud($upload)
|
||||
{
|
||||
self::setValue("soundcloud_auto_upload_recorded_show", $upload);
|
||||
|
|
Loading…
Reference in New Issue