From 1fc1e6a1996c4a09d41775facb193f4892804cf0 Mon Sep 17 00:00:00 2001 From: Lucas Bickel Date: Wed, 22 Mar 2017 12:26:18 +0100 Subject: [PATCH] Get rid of session use in auto playlist The user object was triggering the creation of a user context that tried to grab something from the session. The later code never tried to use this due to the checkPerm flag. I'm assuming the user model used to have a sane constructor w/o side effects in the times where this code had it's heyday. --- .../common/AutoPlaylistManager.php | 19 ++++++++----------- airtime_mvc/application/models/Scheduler.php | 10 +++++++--- .../application/models/ShowInstance.php | 3 +-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/airtime_mvc/application/common/AutoPlaylistManager.php b/airtime_mvc/application/common/AutoPlaylistManager.php index 7137619a9..eefc6377f 100644 --- a/airtime_mvc/application/common/AutoPlaylistManager.php +++ b/airtime_mvc/application/common/AutoPlaylistManager.php @@ -23,21 +23,18 @@ class AutoPlaylistManager { * */ public static function buildAutoPlaylist() { - // Starting a session - Zend_Session::start(); - Logging::info("Checking to run Auto Playlist"); - $autoPlaylists = static::_upcomingAutoPlaylistShows(); - foreach ($autoPlaylists as $autoplaylist) { - // creates a ShowInstance object to build the playlist in from the ShowInstancesQuery Object - $si = new Application_Model_ShowInstance($autoplaylist->getDbId()); - $playlistid = $si->GetAutoPlaylistId(); + Logging::info("Checking to run Auto Playlist"); + $autoPlaylists = static::_upcomingAutoPlaylistShows(); + foreach ($autoPlaylists as $autoplaylist) { + // creates a ShowInstance object to build the playlist in from the ShowInstancesQuery Object + $si = new Application_Model_ShowInstance($autoplaylist->getDbId()); + $playlistid = $si->GetAutoPlaylistId(); Logging::info("Scheduling $playlistid"); // call the addPlaylist to show function and don't check for user permission to avoid call to non-existant user object $si->addPlaylistToShow($playlistid, false); $si->setAutoPlaylistBuilt(true); - } - Application_Model_Preference::setAutoPlaylistPollLock(microtime(true)); - Zend_Session::stop(); + } + Application_Model_Preference::setAutoPlaylistPollLock(microtime(true)); } /** diff --git a/airtime_mvc/application/models/Scheduler.php b/airtime_mvc/application/models/Scheduler.php index 42fcecb34..cf542dce5 100644 --- a/airtime_mvc/application/models/Scheduler.php +++ b/airtime_mvc/application/models/Scheduler.php @@ -1,6 +1,6 @@ con = Propel::getConnection(CcSchedulePeer::DATABASE_NAME); @@ -40,7 +40,11 @@ class Application_Model_Scheduler $this->nowDT = DateTime::createFromFormat("U", time(), new DateTimeZone("UTC")); } - $this->user = Application_Model_User::getCurrentUser(); + $this->setCheckUserPermissions($checkUserPermissions); + + if ($this->checkUserPermissions) { + $this->user = Application_Model_User::getCurrentUser(); + } $this->crossfadeDuration = Application_Model_Preference::GetDefaultCrossfadeDuration(); } diff --git a/airtime_mvc/application/models/ShowInstance.php b/airtime_mvc/application/models/ShowInstance.php index 25f5e906f..a87d53951 100644 --- a/airtime_mvc/application/models/ShowInstance.php +++ b/airtime_mvc/application/models/ShowInstance.php @@ -229,8 +229,7 @@ SQL; $ts = intval($this->_showInstance->getDbLastScheduled("U")) ? : 0; $id = $this->_showInstance->getDbId(); - $scheduler = new Application_Model_Scheduler(); - $scheduler->setCheckUserPermissions($checkUserPerm); + $scheduler = new Application_Model_Scheduler($checkUserPerm); $scheduler->scheduleAfter( array(array("id" => 0, "instance" => $id, "timestamp" => $ts)), array(array("id" => $pl_id, "type" => "playlist"))