diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php index d0b2070f3..d94c34ec2 100644 --- a/airtime_mvc/application/controllers/PlaylistController.php +++ b/airtime_mvc/application/controllers/PlaylistController.php @@ -74,6 +74,16 @@ class PlaylistController extends Zend_Controller_Action private function createFullResponse($obj = null, $isJson = false, $formIsValid = false) { + $user = Application_Model_User::getCurrentUser(); + $isAdminOrPM = $user->isUserType(array(UTYPE_SUPERADMIN, UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)); + + if (!$isAdminOrPM && $obj->getCreatorId() != $user->getId()) { + $this->view->objType = $obj instanceof Application_Model_Block ? "block" : "playlist"; + $this->view->obj = $obj; + $this->view->html = $this->view->render('playlist/permission-denied.phtml'); + return; + } + $isBlock = false; $viewPath = 'playlist/playlist.phtml'; if ($obj instanceof Application_Model_Block) { diff --git a/airtime_mvc/application/controllers/WebstreamController.php b/airtime_mvc/application/controllers/WebstreamController.php index d78a9d305..41847c52d 100644 --- a/airtime_mvc/application/controllers/WebstreamController.php +++ b/airtime_mvc/application/controllers/WebstreamController.php @@ -55,7 +55,20 @@ class WebstreamController extends Zend_Controller_Action if ($webstream) { Application_Model_Library::changePlaylist($id, "stream"); } - $this->view->obj = new Application_Model_Webstream($webstream); + + $obj = new Application_Model_Webstream($webstream); + + $user = Application_Model_User::getCurrentUser(); + $isAdminOrPM = $user->isUserType(array(UTYPE_SUPERADMIN, UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)); + + if (!$isAdminOrPM && $webstream->getDbCreatorId() != $user->getId()) { + $this->view->objType = "webstream"; + $this->view->obj = $obj; + $this->view->html = $this->view->render('playlist/permission-denied.phtml'); + return; + } + + $this->view->obj = $obj; $this->view->action = "edit"; $this->view->html = $this->view->render('webstream/webstream.phtml'); } diff --git a/airtime_mvc/application/views/scripts/playlist/permission-denied.phtml b/airtime_mvc/application/views/scripts/playlist/permission-denied.phtml new file mode 100644 index 000000000..8f2597264 --- /dev/null +++ b/airtime_mvc/application/views/scripts/playlist/permission-denied.phtml @@ -0,0 +1,5 @@ +objType == "block") { $displayText = "smart block"; } else { $displayText = $this->escape($this->objType); } ?> +

You do not have permission to edit this .

+ + + \ No newline at end of file