From 95db8e184b378534db0ac08d14ae8500ee5090c3 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 28 Apr 2016 21:31:15 +0200 Subject: Implemented new menu, added logic for defining dependencies, move translation files around --- modules/serversetup/module.inc.php | 186 ------------------------------------- 1 file changed, 186 deletions(-) delete mode 100644 modules/serversetup/module.inc.php (limited to 'modules/serversetup/module.inc.php') diff --git a/modules/serversetup/module.inc.php b/modules/serversetup/module.inc.php deleted file mode 100644 index e37d7d40..00000000 --- a/modules/serversetup/module.inc.php +++ /dev/null @@ -1,186 +0,0 @@ -currentMenu = Property::getBootMenu(); - - if(Request::get('download') !== false){ - $this->downloadIpxe(Request::get('download')); - } - - if(Request::get('defaultIpxe') !== false){ - $this->defaultIpxe(Request::get('defaultIpxe')); - } - - $action = Request::post('action'); - - if ($action === false) { - $this->currentAddress = Property::getServerIp(); - $this->getLocalAddresses(); - } - - if ($action === 'ip') { - // New address is to be set - $this->getLocalAddresses(); - $this->updateLocalAddress(); - } - - if ($action === 'ipxe') { - // iPXE stuff changes - $this->updatePxeMenu(); - } - - if($action === 'save-script') { - // Save new iPXE script - $this->updateIpxeScript(); - } - - if($action === 'default-script') { - // Restore iPXE script to default - $this->defaultIpxe(); - } - } - - protected function doRender() - { - Render::setTitle(Dictionary::translate('lang_serverConfiguration')); - - $taskid = Request::any('taskid'); - if ($taskid !== false && Taskmanager::isTask($taskid)) { - Render::addTemplate('ipxe_update', array('taskid' => $taskid)); - } - - Render::addTemplate('ipaddress', array( - 'ips' => $this->taskStatus['data']['addresses'] - )); - $data = $this->currentMenu; - if (!isset($data['defaultentry'])) - $data['defaultentry'] = 'net'; - if ($data['defaultentry'] === 'net') - $data['active-net'] = 'checked'; - if ($data['defaultentry'] === 'hdd') - $data['active-hdd'] = 'checked'; - if ($data['defaultentry'] === 'custom') - $data['active-custom'] = 'checked'; - Render::addTemplate('ipxe', $data); - } - - // ----------------------------------------------------------------------------------------------- - - private function getLocalAddresses() - { - $this->taskStatus = Taskmanager::submit('LocalAddressesList', array()); - - if ($this->taskStatus === false) { - $this->taskStatus['data']['addresses'] = false; - return false; - } - - if ($this->taskStatus['statusCode'] === TASK_WAITING) { // TODO: Async if just displaying - $this->taskStatus = Taskmanager::waitComplete($this->taskStatus['id']); - } - - $sortIp = array(); - foreach (array_keys($this->taskStatus['data']['addresses']) as $key) { - $item = & $this->taskStatus['data']['addresses'][$key]; - if (!isset($item['ip']) || !preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $item['ip']) || substr($item['ip'], 0, 4) === '127.') { - unset($this->taskStatus['data']['addresses'][$key]); - continue; - } - if ($this->currentAddress === $item['ip']) { - $item['default'] = true; - } - $sortIp[] = $item['ip']; - } - unset($item); - array_multisort($sortIp, SORT_STRING, $this->taskStatus['data']['addresses']); - return true; - } - - private function updateLocalAddress() - { - $newAddress = Request::post('ip', 'none'); - $valid = false; - foreach ($this->taskStatus['data']['addresses'] as $item) { - if ($item['ip'] !== $newAddress) - continue; - $valid = true; - break; - } - if ($valid) { - Property::setServerIp($newAddress); - global $tidIpxe; - if (isset($tidIpxe) && $tidIpxe !== false) - Util::redirect('?do=ServerSetup&taskid=' . $tidIpxe); - } else { - Message::addError('invalid-ip', $newAddress); - } - Util::redirect(); - } - - private function updatePxeMenu() - { - $timeout = Request::post('timeout', 10); - if ($timeout === '') - $timeout = 0; - if (!is_numeric($timeout) || $timeout < 0) { - Message::addError('value-invalid', 'timeout', $timeout); - } - $this->currentMenu['defaultentry'] = Request::post('defaultentry', 'net'); - $this->currentMenu['timeout'] = $timeout; - $this->currentMenu['custom'] = Request::post('custom', ''); - $this->currentMenu['masterpasswordclear'] = Request::post('masterpassword', ''); - if (empty($this->currentMenu['masterpasswordclear'])) - $this->currentMenu['masterpassword'] = 'invalid'; - else - $this->currentMenu['masterpassword'] = Crypto::hash6($this->currentMenu['masterpasswordclear']); - Property::setBootMenu($this->currentMenu); - $id = Trigger::ipxe(); - Util::redirect('?do=ServerSetup&taskid=' . $id); - } - - private function downloadIpxe($ipxe){ - $file = '/opt/taskmanager/data/ipxe/src/bin/ipxe.' . $ipxe; - if (file_exists($file)) { - header('Content-Description: File Transfer'); - header('Content-Type: application/octet-stream'); - header('Content-Disposition: attachment; filename='.basename($file)); - header('Expires: 0'); - header('Cache-Control: must-revalidate'); - header('Pragma: public'); - header('Content-Length: ' . filesize($file)); - ob_clean(); - flush(); - readfile($file); - exit(); - } - } - - private function updateIpxeScript(){ - $newScript = Request::post('custom-script'); - file_put_contents("/opt/taskmanager/data/pxe.embed",$newScript); - Util::redirect('?do=ServerSetup'); - } - - private function defaultIpxe(){ - $default = file_get_contents("/opt/taskmanager/data/pxe_default.embed"); - $default = str_replace("{{ip}}", "http://" . Property::getServerIp(), $default); - file_put_contents("/opt/taskmanager/data/pxe.embed",$default); - Util::redirect('?do=ServerSetup'); - } -} -- cgit v1.2.3-55-g7522