From 04123643da499bac9eed8e8d1198a4c69148075f Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 21 May 2014 18:41:25 +0200 Subject: Server Setup page --- modules/serversetup.inc.php | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 modules/serversetup.inc.php (limited to 'modules/serversetup.inc.php') diff --git a/modules/serversetup.inc.php b/modules/serversetup.inc.php new file mode 100644 index 00000000..3f2b8768 --- /dev/null +++ b/modules/serversetup.inc.php @@ -0,0 +1,72 @@ +currentAddress = Property::getServerIp(); + $newAddress = Request::post('ip', 'none'); + + $this->taskStatus = Taskmanager::submit('LocalAddressesList', array()); + + if ($this->taskStatus === false) { + Util::redirect('?do=Main'); + } + + if ($this->taskStatus['statusCode'] === TASK_WAITING) { + $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']); + + if ($newAddress !== 'none') { + // New address is to be set - check if it is valid + $valid = false; + foreach ($this->taskStatus['data']['addresses'] as $item) { + if ($item['ip'] !== $newAddress) continue; + $valid = true; + break; + } + if ($valid) { + Property::setServerIp($newAddress); + } else { + Message::addError('invalid-ip', $newAddress); + } + Util::redirect(); + } + + } + + protected function doRender() + { + Render::addTemplate('page-serversetup', array( + 'ips' => $this->taskStatus['data']['addresses'], + 'token' => Session::get('token') + )); + } +} \ No newline at end of file -- cgit v1.2.3-55-g7522