diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index d160b600a..e05747200 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -90,9 +90,9 @@ class LibraryController extends Zend_Controller_Action protected function playlistNotFound($p_type) { - $this->view->error = "{$p_type} not found"; + $this->view->error = "$p_type not found"; - Logging::info("{$p_type} not found"); + Logging::info("$p_type not found"); Application_Model_Library::changePlaylist(null, $p_type); $this->createFullResponse(null); } diff --git a/airtime_mvc/application/controllers/UserController.php b/airtime_mvc/application/controllers/UserController.php index 679a20b8e..1ee54fe39 100644 --- a/airtime_mvc/application/controllers/UserController.php +++ b/airtime_mvc/application/controllers/UserController.php @@ -109,7 +109,7 @@ class UserController extends Zend_Controller_Action # TODO : remove this. we only use default for now not to break the UI. if (!$files_action) { # set default action $files_action = "reassign_to"; - $valid_actions = + $delId = 1; } # only delete when valid action is selected for the owned files diff --git a/airtime_mvc/application/controllers/WebstreamController.php b/airtime_mvc/application/controllers/WebstreamController.php index 0521d58b1..9cea83a5e 100644 --- a/airtime_mvc/application/controllers/WebstreamController.php +++ b/airtime_mvc/application/controllers/WebstreamController.php @@ -17,8 +17,9 @@ class WebstreamController extends Zend_Controller_Action $userInfo = Zend_Auth::getInstance()->getStorage()->read(); if (!$this->isAuthorized(-1)) { + // TODO: this header call does not actually print any error message header("Status: 401 Not Authorized"); - + Logging::info("Ain't not Authorized"); return; } @@ -94,30 +95,35 @@ class WebstreamController extends Zend_Controller_Action } + /*TODO : make a user object be passed a parameter into this function so + that it does not have to be fetched multiple times.*/ public function isAuthorized($webstream_id) { - $hasPermission = false; $user = Application_Model_User::getCurrentUser(); if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { - $hasPermission = true; + return true; } - if (!$hasPermission && $user->isHost()) { + if ($user->isHost()) { + // not creating a webstream if ($webstream_id != -1) { $webstream = CcWebstreamQuery::create()->findPK($webstream_id); - //we are updating a playlist. Ensure that if the user is a host/dj, that he has the correct permission. + /*we are updating a playlist. Ensure that if the user is a + host/dj, that he has the correct permission.*/ $user = Application_Model_User::getCurrentUser(); - - if ($webstream->getDbCreatorId() == $user->getId()) { - $hasPermission = true; - } - } else { - //we are creating a new stream. Don't need to check whether the DJ/Host owns the stream - $hasPermission = true; + //only allow when webstream belongs to the DJ + Logging::info("Webstream id:".$webstream->getDbCreatorId()); + Logging::info("User id:".$user->getId()); + return $webstream->getDbCreatorId() == $user->getId(); } + /*we are creating a new stream. Don't need to check whether the + DJ/Host owns the stream*/ + return true; + } else { + Logging::info( $user ); } - - return $hasPermission; + Logging::info("what the fuck"); + return false; } public function saveAction() diff --git a/airtime_mvc/application/models/User.php b/airtime_mvc/application/models/User.php index 5f68cc240..9fcf9f62c 100644 --- a/airtime_mvc/application/models/User.php +++ b/airtime_mvc/application/models/User.php @@ -70,36 +70,15 @@ class Application_Model_User return $result; } + // TODO : refactor code to only accept arrays for isUserType and + // simplify code even further public function isUserType($type) { - if (is_array($type)) { - $result = false; - foreach ($type as $t) { - switch ($t) { - case UTYPE_ADMIN: - $result = $this->_userInstance->getDbType() === 'A'; - break; - case UTYPE_HOST: - $result = $this->_userInstance->getDbType() === 'H'; - break; - case UTYPE_PROGRAM_MANAGER: - $result = $this->_userInstance->getDbType() === 'P'; - break; - } - if ($result) { - return $result; - } - } - } else { - switch ($type) { - case UTYPE_ADMIN: - return $this->_userInstance->getDbType() === 'A'; - case UTYPE_HOST: - return $this->_userInstance->getDbId() === 'H'; - case UTYPE_PROGRAM_MANAGER: - return $this->_userInstance->getDbType() === 'P'; - } + if (!is_array($type)) { + $type = array($type); } + $real_type = $this->_userInstance->getDbType(); + return in_array($real_type, $type); } public function setLogin($login) diff --git a/airtime_mvc/application/models/Webstream.php b/airtime_mvc/application/models/Webstream.php index 1c483e983..e3f08858a 100644 --- a/airtime_mvc/application/models/Webstream.php +++ b/airtime_mvc/application/models/Webstream.php @@ -78,11 +78,11 @@ class Application_Model_Webstream implements Application_Model_LibraryEditable $username = $subjs->getDbLogin(); return array( - "name" => $this->webstream->getDbName(), - "length" => $this->webstream->getDbLength(), + "name" => $this->webstream->getDbName(), + "length" => $this->webstream->getDbLength(), "description" => $this->webstream->getDbDescription(), - "login"=> $username, - "url" => $this->webstream->getDbUrl(), + "login" => $username, + "url" => $this->webstream->getDbUrl(), ); } diff --git a/airtime_mvc/application/views/scripts/library/index.phtml b/airtime_mvc/application/views/scripts/library/index.phtml index dcc7cde95..30c18e365 100644 --- a/airtime_mvc/application/views/scripts/library/index.phtml +++ b/airtime_mvc/application/views/scripts/library/index.phtml @@ -2,7 +2,7 @@ render('library/library.phtml') ?> -