Hallo,
ich habe nun etwas debuggt. Es liegt nicht an den Berechtigungen:
customer_domains.php (Zeile 276):
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $result['documentroot']);
In $pathSelect['select_var'] stehen alle Pfade drin.
Es wird aber unter /lib/formfields/customer/domains/formfield.domains_edit.php auf $pathSelect['value'] zugegriffen.
Ich habe mal die Funktion makePathfield Froxlor 1 mit Froxlor 2 verglichen:
Froxlor 1:
if (sizeof($dirList) > 0) {
$_field = '';
foreach ($dirList as $dir) {
if (strpos($dir, $path) === 0) {
$dir = substr($dir, strlen($path));
// docroot cut off of current directory == empty -> directory is the docroot
if (empty($dir)) {
$dir = '/';
}
$dir = self::makeCorrectDir($dir);
}
$_field .= \Froxlor\UI\HTML::makeoption($dir, $dir, $value);
}
$field = array(
'type' => 'select',
'value' => $_field
);
} else {
// $field = $lng['panel']['dirsmissing'];
// $field = '<input type="hidden" name="path" value="/" />';
$field = array(
'type' => 'hidden',
'value' => '/',
'note' => $lng['panel']['dirsmissing']
);
}
Froxlor 2:
if (sizeof($dirList) > 0) {
$_field = [];
foreach ($dirList as $dir) {
if (strpos($dir, $path) === 0) {
$dir = substr($dir, strlen($path));
// docroot cut off of current directory == empty -> directory is the docroot
if (empty($dir)) {
$dir = '/';
}
$dir = self::makeCorrectDir($dir);
}
$_field[$dir] = $dir;
}
$field = [
'type' => 'select',
'select_var' => $_field,
'selected' => $value
];
} else {
$field = [
'type' => 'hidden',
'value' => '/',
'note' => lng('panel.dirsmissing')
];
}
Vermutlich ist die fett geschriebene Zeile in V2 verkehrt ?
Dann bleibt noch das HSTS-Problem.
Dies kann man wie folgt unter https://demo.froxlor.org/customer_domains.php?page=domains&action=edit&id=2
nachstellen (zumindest in Firefox): Einen Integer Wert größer 0 unter HTTP Strict Transport Security (HSTS) eintragen und die Einstellung neu laden.
Der Wert steht wie erwartet drin. Nun eine 0 eintragen und neu laden.
Anstelle von 0 steht nun nichts in diesen Feld. Und deshalb im VHost dann
Header always set Strict-Transport-Security "max-age="