base for simple/extended install-mode

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2022-05-11 16:26:09 +02:00
parent 56e4739b98
commit da0136650e
6 changed files with 44 additions and 15 deletions

View File

@@ -35,6 +35,7 @@ use Froxlor\Validate\Validate;
class Install
{
public $currentStep;
public $extendedView;
public $maxSteps;
public $phpVersion;
public $formfield;
@@ -76,6 +77,7 @@ class Install
// set actual step
$this->currentStep = Request::get('step', 0);
$this->extendedView = Request::get('extended', 0);
$this->maxSteps = count($this->formfield['install']['sections']);
// set actual php version and extensions
@@ -112,13 +114,14 @@ class Install
'setup' => [
'step' => $this->currentStep,
],
'preflight' => $this->checkExtensions(),
'preflight' => $this->checkRequirements(),
'page' => [
'title' => 'Database',
'description' => 'Test',
],
'section' => $this->formfield['install']['sections']['step' . $this->currentStep] ?? [],
'error' => $error ?? null,
'extended' => $this->extendedView,
]);
// output view
@@ -171,8 +174,18 @@ class Install
/**
* @return array
*/
private function checkExtensions(): array
private function checkRequirements(): array
{
// check whether we can read the userdata file
if (!@touch(dirname(__DIR__, 2).'/.~writecheck' )) {
// get possible owner
$posixusername = posix_getpwuid(posix_getuid())['name'];
$posixgroup = posix_getgrgid(posix_getgid())['name'];
$this->criticals['wrong_ownership'] = ['user' => $posixusername, 'group' => $posixgroup];
} else {
@unlink(dirname(__DIR__, 2).'/.~writecheck');
}
// check for required extensions
foreach ($this->requiredExtensions as $requiredExtension) {
if (in_array($requiredExtension, $this->loadedExtensions)) {

View File

@@ -149,12 +149,18 @@ return [
'select_var' => $this->supportedOS,
'selected' => $guessedDistribution
],
'serverip' => [
'label' => lng('serversettings.ipaddress.title'),
'placeholder' => lng('serversettings.ipaddress.title'),
'serveripv4' => [
'label' => lng('install.system.ipv4'),
'placeholder' => lng('install.system.ipv4'),
'type' => 'text',
'mandatory' => true,
'value' => old('serverip', $_SERVER['SERVER_ADDR'] ?? null, 'installation'),
'value' => old('serveripv4', filter_var($_SERVER['SERVER_ADDR'] ?? "", FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? ($_SERVER['SERVER_ADDR'] ?? "") : "", 'installation'),
],
'serveripv6' => [
'label' => lng('install.system.ipv6'),
'placeholder' => lng('install.system.ipv6'),
'type' => 'text',
'value' => old('serveripv6', filter_var($_SERVER['SERVER_ADDR'] ?? "", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ? ($_SERVER['SERVER_ADDR'] ?? "") : "", 'installation'),
],
'servername' => [
'label' => lng('install.system.servername'),
@@ -189,6 +195,7 @@ return [
'type' => 'text',
'mandatory' => true,
'value' => old('httpuser', posix_getpwuid(posix_getuid())['name'] ?? '', 'installation'),
'advanced' => true,
],
'httpgroup' => [
'label' => lng('admin.webserver_group'),
@@ -196,6 +203,7 @@ return [
'type' => 'text',
'mandatory' => true,
'value' => old('httpgroup', posix_getgrgid(posix_getgid())['name'] ?? '', 'installation'),
'advanced' => true,
],
'activate_newsfeed' => [
'label' => lng('install.system.activate_newsfeed'),