_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(); $_SESSION['userIDs']['membershipID'] = $this->session->getMembershipID(); $_SESSION['userIDs']['groupID'] = $membership->getGroupID(); } 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'); } } }