From 57a7218a793d30d82dbbb1143938e3f81de27217 Mon Sep 17 00:00:00 2001
From: drigato <denise.rigato@sourcefabric.org>
Date: Fri, 16 Jan 2015 11:09:13 -0500
Subject: [PATCH] SAAS-540: Change the Provisioning Controller's terminate
 endpoint to reflect new S3 file prefix

---
 airtime_mvc/application/cloud_storage/Amazon_S3.php    | 10 +++++++++-
 .../application/controllers/ProvisioningController.php |  8 --------
 .../application/controllers/plugins/Acl_plugin.php     |  2 +-
 airtime_mvc/application/models/RabbitMq.php            |  6 ++----
 4 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/airtime_mvc/application/cloud_storage/Amazon_S3.php b/airtime_mvc/application/cloud_storage/Amazon_S3.php
index de236faf5..994dd249b 100644
--- a/airtime_mvc/application/cloud_storage/Amazon_S3.php
+++ b/airtime_mvc/application/cloud_storage/Amazon_S3.php
@@ -1,6 +1,7 @@
 <?php
 
 require_once 'StorageBackend.php';
+require_once 'BillingController.php';
 
 use Aws\S3\S3Client;
 
@@ -67,7 +68,14 @@ class Amazon_S3 extends StorageBackend
     {
         $this->s3Client->deleteMatchingObjects(
             $bucket = $this->getBucket(),
-            $prefix = Application_Model_Preference::GetStationName());
+            $prefix = self::getAmazonS3FilePrefix());
 
     }
+    
+    public static function getAmazonS3FilePrefix()
+    {
+        $clientCurrentAirtimeProduct = BillingController::getClientCurrentAirtimeProduct();
+        $hostingId = $clientCurrentAirtimeProduct["id"];
+        return substr($hostingId, -2)."/".$hostingId;
+    }
 }
diff --git a/airtime_mvc/application/controllers/ProvisioningController.php b/airtime_mvc/application/controllers/ProvisioningController.php
index 3039df7a4..e847ff661 100644
--- a/airtime_mvc/application/controllers/ProvisioningController.php
+++ b/airtime_mvc/application/controllers/ProvisioningController.php
@@ -28,14 +28,6 @@ class ProvisioningController extends Zend_Controller_Action
             $proxyStorageBackend->deleteAllCloudFileObjects();
         }
         
-        //check at to make sure cloud_file table is empty
-        if (CloudFileQuery::create()->count() > 0) {
-            $this->getResponse()
-                ->setHttpResponseCode(400)
-                ->appendBody("ERROR: Not all cloud files were deleted.");
-            return;
-        }
-        
         $this->getResponse()
             ->setHttpResponseCode(200)
             ->appendBody("OK");
diff --git a/airtime_mvc/application/controllers/plugins/Acl_plugin.php b/airtime_mvc/application/controllers/plugins/Acl_plugin.php
index 533429e47..564c0af82 100644
--- a/airtime_mvc/application/controllers/plugins/Acl_plugin.php
+++ b/airtime_mvc/application/controllers/plugins/Acl_plugin.php
@@ -118,7 +118,7 @@ class Zend_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
             return;
         }
 
-        if (in_array($controller, array("api", "auth", "locale", "upgrade", 'whmcs-login'))) {
+        if (in_array($controller, array("api", "auth", "locale", "upgrade", 'whmcs-login', "provisioning"))) {
             $this->setRoleName("G");
         } elseif (!Zend_Auth::getInstance()->hasIdentity()) {
 
diff --git a/airtime_mvc/application/models/RabbitMq.php b/airtime_mvc/application/models/RabbitMq.php
index ae3fe3fe3..b461d7099 100644
--- a/airtime_mvc/application/models/RabbitMq.php
+++ b/airtime_mvc/application/models/RabbitMq.php
@@ -1,6 +1,6 @@
 <?php
 require_once 'php-amqplib/amqp.inc';
-require_once 'BillingController.php';
+require_once 'Amazon_S3.php';
 
 class Application_Model_RabbitMq
 {
@@ -118,9 +118,7 @@ class Application_Model_RabbitMq
         // customer's file/s; File restoration is done via the S3 Browser
         // client. The client will hang if there are too many files under the
         // same folder.
-        $clientCurrentAirtimeProduct = BillingController::getClientCurrentAirtimeProduct();
-        $hostingId = $clientCurrentAirtimeProduct["id"];
-        $data['file_prefix'] = substr($hostingId, -2)."/".$hostingId;
+        $data['file_prefix'] = Amazon_S3::getAmazonS3FilePrefix();
         
         $jsonData = json_encode($data);
         //self::sendMessage($exchange, 'topic', false, $jsonData, 'airtime-uploads');