hasIdentity()) { $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); if($userIDsNamespace['membershipID'] == '') { $this->_redirect('/user/index'); } $this->prebootMapper = new Application_Model_PreBootMapper(); $this->membershipMapper = new Application_Model_MembershipMapper(); $this->membership = new Application_Model_Membership(); $this->membershipMapper->find($userIDsNamespace['membershipID'], $this->membership); $this->db = Zend_Db_Table::getDefaultAdapter(); } else { $this->_helper->redirector('login', 'auth'); } $this->page = $this->_request->getParam('page'); } public function indexAction() { $result = $this->_request->getParam('addresult'); if($result != "") { $this->view->notification = Pbs_Notifier::notify('create', $result); } $result = $this->_request->getParam('deleteresult'); if($result != "") { $this->view->notification = Pbs_Notifier::notify('delete', $result); } $result = $this->_request->getParam('modifyresult'); if($result != "") { $this->view->notification = Pbs_Notifier::notify('modify', $result); } $groupID = $this->membership->getGroupID(); //ACL Darf er PrebootMenu sehen? if(!Pbs_Acl::checkRight('pro')) { $this->_redirect('/user/index'); } $this->view->prebootlist = $this->prebootMapper->findBy(array("groupID" => $groupID)); foreach ($this->view->prebootlist as $preboot) { $preboot->setCreated(date(Zend_Registry::get('dateformat'), $preboot->getCreated())); } // Search $search = $this->_request->getParam('search'); $mySearch = new Pbs_Search(); $mySearch->setSearchTerm($search); $mySearch->setModule('preboot'); if($search != '') { $this->view->search = $mySearch->getSearchTerm(); $this->view->prebootlist = $mySearch->search($this->view->prebootlist); } $this->view->searchform = $mySearch->searchForm(); // Pagination $pagination = new Pbs_Pagination(); $pagination->setPerPage(10); $pagination->setElement($this->view->prebootlist); $pagination->setRequestPage($this->_request->getParam('page')); $pagination->setPageUrl('/user/preboot/index'.((isset($this->view->search)) ? '/search/'.$this->view->search : '')); $this->view->prebootlist = $pagination->getElements(); $this->view->pagination = $pagination->pagination(); $this->view->page = $pagination->getRequestPage(); } public function searchAction() { $this->_redirect('/user/preboot/index/search/'.($_GET['search'])); } public function createprebootAction() { //ACL Is he allowed to create Preboots? if(!Pbs_Acl::checkRight('prc')) { $this->_redirect('/user/preboot/index/page/'.$this->page.'/addresult/forbidden'); } if (!isset($_POST["createpreboot"])) { $prebootForm = new user_Form_Preboot(array( 'action' => 'createpreboot', 'page' => $this->page)); } else { $prebootForm = new user_Form_Preboot(array( 'action' => 'createpreboot', 'page' => $this->page), $_POST); if ($prebootForm->isValid($_POST)) { $groupID = $this->membership->getGroupID(); $source = $_SERVER['REMOTE_ADDR']; try { if($_FILES['preboot']['size'] == 0 && $_FILES['preboot']['name'] != '') { $this->_redirect('/user/preboot/index/page/'.$this->page.'/addresult/file'); } $preboot = new Application_Model_PreBoot($_POST); $preboot->setGroupID($groupID); $preboot->setSource($source); $preboot->setCreated(time()); $prebootID = $this->prebootMapper->save($preboot); $prebootpath = "../resources/bootmedium/".$prebootID."/"; mkdir($prebootpath , 0777, true); if($_FILES['preboot']['name'] != '') { move_uploaded_file($_FILES['preboot']['tmp_name'], $prebootpath."preboot.zip"); } } catch(Zend_Exception $e) { echo "Caught exception: " . get_class($e) . "
"; echo "Message: " . $e->getMessage() . "
"; $this->_redirect('/user/preboot/index/page/'.$this->page.'/addresult/error'); //TODO Delete folder + preboot in DB } $this->_redirect('/user/preboot/index/page/'.$this->page.'/addresult/ok'); } } $this->view->prebootForm = $prebootForm; } public function editprebootAction() { //ACL Is he allowed to edit Preboots? if(!Pbs_Acl::checkRight('pre') && !Pbs_Acl::checkRight('prem')) { $this->_redirect('/user/preboot/index/page/'.$this->page.'/modifyresult/forbidden'); } $prebootID = $this->_request->getParam('prebootID'); if (!is_numeric($prebootID)) { $this->_redirect('/user/preboot/index/page/'.$this->page.'/modifyresult/forbidden'); } $preboot = new Application_Model_PreBoot(); $this->prebootMapper->find($prebootID, $preboot); if($this->membership->getGroupID() != $preboot->getGroupID()) { $this->_redirect('/user/preboot/index/page/'.$this->page.'/modifyresult/forbidden'); } if (!isset($_POST["editpreboot"])) { $prebootForm = new user_Form_Preboot(array( 'action' => 'editpreboot', 'page' => $this->page)); $prebootForm->populate($preboot->toArray()); } else { $prebootForm = new user_Form_Preboot(array( 'action' => 'editpreboot', 'page' => $this->page), $_POST); if ($prebootForm->isValid($_POST)) { $prebootold = $preboot; $source = $_SERVER['REMOTE_ADDR']; $preboot = new Application_Model_PreBoot($_POST); $preboot->setGroupID($this->membership->getGroupID()); $preboot->setID($prebootID); $preboot->setSource($prebootold->getSource()); $preboot->setCreated(time()); if($_FILES['preboot']['name'] != '') { //ACL Is he allowed to edit other than Metadata? if(!Pbs_Acl::checkRight('pre')) { $this->_redirect('/user/preboot/index/page/'.$this->page.'/modifyresult/forbidden'); } } if($_FILES['preboot']['size'] == 0 && $_FILES['preboot']['name'] != '') { $this->_redirect('/user/preboot/index/page/'.$this->page.'/addresult/file'); } $prebootpath = "../resources/bootmedium/$prebootID/"; mkdir($prebootpath , 0777, true); if($_FILES['preboot']['name'] != '') { $preboot->setSource($source); move_uploaded_file($_FILES['preboot']['tmp_name'], $prebootpath."preboot.zip"); } try { $this->prebootMapper->save($preboot); } catch(Zend_Exception $e) { echo "Caught exception: " . get_class($e) . "
"; echo "Message: " . $e->getMessage() . "
"; $this->_redirect('/user/preboot/index/page/'.$this->page.'/modifyresult/error'); //TODO Delete Folder + Preboot } $this->_redirect('/user/preboot/index/page/'.$this->page.'/modifyresult/ok'); } } $this->view->prebootForm = $prebootForm; } public function deleteprebootAction() { //ACL Is he allowed to delete Preboots? if(!Pbs_Acl::checkRight('prd')) { $this->_redirect('/user/preboot/index/page/'.$this->page.'/deleteresult/forbidden'); } try { $prebootID = $this->_request->getParam('prebootID'); if (!is_numeric($prebootID)) { $this->_redirect('/user/preboot/index/page/'.$this->page.'/deleteresult/forbidden'); } $preboot = new Application_Model_PreBoot(); $this->prebootMapper->find($prebootID, $preboot); if($this->membership->getGroupID() != $preboot->getGroupID()) { $this->_redirect('/user/preboot/index/page/'.$this->page.'/deleteresult/forbidden'); } $this->prebootMapper->delete($preboot); exec("rm -r ../resources/bootmedium/".$prebootID); } catch(Zend_Exception $e) { echo "Caught exception: " . get_class($e) . "
"; echo "Message: " . $e->getMessage() . "
"; $this->_redirect('/user/preboot/index/page/'.$this->page.'/deleteresult/error'); } $this->_redirect('/user/preboot/index/page/'.$this->page.'/deleteresult/ok'); } }