From adddd1085cfd60a08182c07a9acf841ac19eda4a Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Thu, 12 Apr 2012 18:00:38 +0200 Subject: [PATCH] CC-3592 : Calendar-> Recorded Shows do not get Rebroadcasted at the moment added a flag whether to check user permissions or not. --- airtime_mvc/application/models/Scheduler.php | 11 +++++++++-- airtime_mvc/application/models/ShowInstance.php | 7 ++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/airtime_mvc/application/models/Scheduler.php b/airtime_mvc/application/models/Scheduler.php index ea179af4e..7515ac0b4 100644 --- a/airtime_mvc/application/models/Scheduler.php +++ b/airtime_mvc/application/models/Scheduler.php @@ -16,8 +16,10 @@ class Application_Model_Scheduler { private $epochNow; private $nowDT; private $user; + + private $checkUserPermissions = true; - public function __construct($id = null) { + public function __construct() { $this->con = Propel::getConnection(CcSchedulePeer::DATABASE_NAME); @@ -27,6 +29,11 @@ class Application_Model_Scheduler { $this->user = Application_Model_User::GetCurrentUser(); } + public function setCheckUserPermissions($value) { + $this->checkUserPermissions = $value; + } + + /* * make sure any incoming requests for scheduling are ligit. * @@ -83,7 +90,7 @@ class Application_Model_Scheduler { $id = $instance->getDbId(); $show = $instance->getCcShow($this->con); - if ($this->user->canSchedule($show->getDbId()) === false) { + if ($this->checkUserPermissions && $this->user->canSchedule($show->getDbId()) === false) { throw new Exception("You are not allowed to schedule show {$show->getDbName()}."); } diff --git a/airtime_mvc/application/models/ShowInstance.php b/airtime_mvc/application/models/ShowInstance.php index 142b2998c..8e096aad3 100644 --- a/airtime_mvc/application/models/ShowInstance.php +++ b/airtime_mvc/application/models/ShowInstance.php @@ -352,7 +352,7 @@ class Application_Model_ShowInstance { * @param int $plId * Playlist ID. */ - public function addPlaylistToShow($pl_id) + public function addPlaylistToShow($pl_id, $checkUserPerm = true) { $ts = intval($this->_showInstance->getDbLastScheduled("U")) ? : 0; $id = $this->_showInstance->getDbId(); @@ -369,12 +369,13 @@ class Application_Model_ShowInstance { * * @param int $file_id */ - public function addFileToShow($file_id) + public function addFileToShow($file_id, $checkUserPerm = true) { $ts = intval($this->_showInstance->getDbLastScheduled("U")) ? : 0; $id = $this->_showInstance->getDbId(); $scheduler = new Application_Model_Scheduler(); + $scheduler->setCheckUserPermissions($checkUserPerm); $scheduler->scheduleAfter( array(array("id" => 0, "instance" => $id, "timestamp" => $ts)), array(array("id" => $file_id, "type" => "audioclip")) @@ -553,7 +554,7 @@ class Application_Model_ShowInstance { try { $rebroad = new Application_Model_ShowInstance($rebroadcast->getDbId()); - $rebroad->addFileToShow($file_id); + $rebroad->addFileToShow($file_id, false); } catch (Exception $e) { Logging::log("{$e->getFile()}");