_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $this->session = new Application_Model_Session(); $sessionMapper = new Application_Model_SessionMapper(); //TODO Error Messages if something failed $alphaID = $this->_request->getParam('alpha'); if(isset($alphaID)){ $alphasessionID = $alphaID; $result = $sessionMapper->findBy(array('alphasessionID' => $alphasessionID),true); # print_a($result); $this->session = $this->session->setOptions($result[0]); $this->session->setID($result[0]['sessionID']); } $bootmenuntryID = $this->_request->getParam('bme'); if(isset($bootmenuntryID) && isset($this->session)){ //TODO check if allowed $bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper(); $bootmenuentry = new Application_Model_BootMenuEntries(); $bootmenuentriesMapper->find($bootmenuntryID,$bootmenuentry); $this->session->setBootmenuentryID($bootmenuntryID); $this->session->setBootosID($bootmenuentry->getBootosID()); $sessionMapper->save($this->session); } } public function getvesamenuconfigAction(){ header('Content-Type: text/html'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="vesamenu.conf"'); header('Pragma: no-cache'); header('Expires: 0'); $vesamenuView = new Zend_View(); $vesamenuView->addScriptPath(APPLICATION_PATH.'/modules/ipxe/views/scripts/resource/'); $vesamenuView->host = $_SERVER['HTTP_HOST']; $vesamenuView->error = $this->_request->getParam('error'); if (isset($this->session)){ $vesamenuView->alphaID = $this->session->getAlphasessionID(); if ($this->session->getPersonID() != null){ $personMapper = new Application_Model_PersonMapper(); $person = $personMapper->find($this->session->getPersonID()); $vesamenuView->name = $person->getName(); $vesamenuView->firstname = $person->getFirstname(); $vesamenuView->loggedin = true; }else{ $vesamenuView->loggedin = false; } if($this->session->getMembershipID() != null){ $groupMapper = new Application_Model_GroupMapper(); $membershipMapper = new Application_Model_MembershipMapper(); $membership = $membershipMapper->find($this->session->getMembershipID()); $vesamenuView->group = $groupMapper->find($membership->getGroupID())->getTitle(); } if ($this->session->getPersonID() != null && $this->session->getMembershipID() == null ){ $groupMapper = new Application_Model_GroupMapper(); $roleMapper = new Application_Model_RoleMapper(); $membershipMapper = new Application_Model_MembershipMapper(); $memberships = $membershipMapper->findBy(array('personID' => $this->session->getPersonID()),true); if(isset($memberships)) { foreach($memberships as $membership) { $group = $groupMapper->find($membership['groupID']); $role = $roleMapper->find($membership['roleID']); $membershipList[] = array( 'membershipID' => $membership['membershipID'], 'group' => $group->getTitle(), 'role' => $role->getTitle() ); } $vesamenuView->memberships = $membershipList; }else{ $vesamenuView->memberships = null; } $vesamenuView->action = "selectmembership"; } // Request Bootmenu $_SESSION['alphasessionID'] = $this->session->getAlphasessionID(); $pbsFilter = new Pbs_Filter(); $bootmenuID = $pbsFilter->evaluate(); if($bootmenuID != null){ $bootmenuMapper = new Application_Model_BootMenuMapper(); $bm = $bootmenuMapper->find($bootmenuID); $vesamenuView->title = $bm->getTitle(); $vesamenuView->startcounter = $bm->getStartcounter(); $bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper(); $res = $bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID),false); $vesamenuView->bmelist = $res; }else{ $vesamenuView->bmelist = null; } }else{ $vesamenuView->serialnumber = $this->_request->getParam('serialnumber'); $vesamenuView->mac = $this->_request->getParam('mac'); if($vesamenuView->error == "serial"){ $vesamenuView->error = "serial"; }else{ $vesamenuView->error = "session"; } } $vesamenu = $vesamenuView->render('getvesamenu.phtml'); header("Content-Length: ".(strlen($vesamenu))); echo $vesamenu; } public function getkernelAction(){ //TODO session & bme error $bootosID = $this->session->getBootosID(); if(is_dir("../resources/bootos/$bootosID/kernel/") && is_numeric($bootosID)){ header('Content-Type: application/x-gzip'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="kernel"'); header('Pragma: no-cache'); header('Expires: 0'); // create the gzipped tarfile. chdir("../resources/bootos/$bootosID/kernel/"); $kernelname = array_pop(scandir("./")); header("Content-Length: ".filesize(getcwd()."/".$kernelname)); passthru( "cat ". $kernelname); }else{ header('HTTP/1.0 404 Not Found'); } } public function getinitramfsAction() { $bootosID = $this->session->getBootosID(); if(is_dir("../resources/bootos/$bootosID/initramfs/") && is_numeric($bootosID)){ header('Content-Type: application/x-gzip'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="initramfs"'); header('Pragma: no-cache'); header('Expires: 0'); // create file. chdir("../resources/bootos/$bootosID/initramfs/"); $initname = array_pop(scandir("./")); header("Content-Length: ".filesize(getcwd()."/".$initname)); passthru( "cat ".$initname); }else{ header('HTTP/1.0 404 Not Found'); } } }