diff --git a/lam/templates/config/mainmanage.php b/lam/templates/config/mainmanage.php index 9945bd86..a3cdab1a 100644 --- a/lam/templates/config/mainmanage.php +++ b/lam/templates/config/mainmanage.php @@ -92,7 +92,7 @@ if (isset($_POST['submit'])) { // check each line $ipRegex = '/^[0-9\\.\\*]+$/'; if (!preg_match($ipRegex, $allowedHostsList[$i]) || (strlen($allowedHostsList[$i]) > 15)) { - $errors[] = sprintf(_("The IP address %s is invalid!"), $allowedHostsList[$i]); + $errors[] = sprintf(_("The IP address %s is invalid!"), str_replace('%', '%%', $allowedHostsList[$i])); } } $allowedHosts = implode(",", $allowedHostsList); @@ -157,6 +157,8 @@ echo $_SESSION['header'];
+ +
\n"; } +$container = new htmlTable(); + // print messages for ($i = 0; $i < sizeof($errors); $i++) { - StatusMessage("ERROR", $errors[$i]); + $container->addElement(new htmlStatusMessage("ERROR", $errors[$i]), true); } // check if config file is writable if (!$cfg->isWritable()) { - StatusMessage('WARN', 'The config file is not writable.', 'Your changes cannot be saved until you make the file writable for the webserver user.'); + $container->addElement(new htmlStatusMessage('WARN', 'The config file is not writable.', 'Your changes cannot be saved until you make the file writable for the webserver user.'), true); } +$container->addElement(new htmlSpacer(null, '20px'), true); + +// security settings +$securityTable = new htmlTable(); +$options = array(5, 10, 20, 30, 60); +$securityTable->addElement(new htmlTableExtendedSelect('sessionTimeout', $options, array($cfg->sessionTimeout), _("Session timeout"), '238'), true); +$securityTable->addElement(new htmlTableExtendedInputTextarea('allowedHosts', implode("\n", explode(",", $cfg->allowedHosts)), '30', '7', _("Allowed hosts"), '241'), true); +$securityField = new htmlFieldset($securityTable, _("Security settings")); +$container->addElement($securityField, true); +$container->addElement(new htmlSpacer(null, '10px'), true); + +// password policy +$policyTable = new htmlTable(); +$options20 = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); +$options4 = array(0, 1, 2, 3, 4); +$policyTable->addElement(new htmlTableExtendedSelect('passwordMinLength', $options20, array($cfg->passwordMinLength), _('Minimum password length'), '242'), true); +$policyTable->addElement(new htmlTableExtendedSelect('passwordMinLower', $options20, array($cfg->passwordMinLower), _('Minimum lowercase characters'), '242'), true); +$policyTable->addElement(new htmlTableExtendedSelect('passwordMinUpper', $options20, array($cfg->passwordMinUpper), _('Minimum uppercase characters'), '242'), true); +$policyTable->addElement(new htmlTableExtendedSelect('passwordMinNumeric', $options20, array($cfg->passwordMinNumeric), _('Minimum numeric characters'), '242'), true); +$policyTable->addElement(new htmlTableExtendedSelect('passwordMinSymbol', $options20, array($cfg->passwordMinSymbol), _('Minimum symbolic characters'), '242'), true); +$policyTable->addElement(new htmlTableExtendedSelect('passwordMinClasses', $options4, array($cfg->passwordMinClasses), _('Minimum character classes'), '242'), true); +$policyField = new htmlFieldset($policyTable, _("Password policy")); +$container->addElement($policyField, true); +$container->addElement(new htmlSpacer(null, '10px'), true); + +// logging +$loggingTable = new htmlTable(); +$levelOptions = array(_("Debug") => LOG_DEBUG, _("Notice") => LOG_NOTICE, _("Warning") => LOG_WARNING, _("Error") => LOG_ERR); +$levelSelect = new htmlTableExtendedSelect('logLevel', $levelOptions, array($cfg->logLevel), _("Log level"), '239'); +$levelSelect->setHasDescriptiveElements(true); +$loggingTable->addElement($levelSelect, true); +$destinationOptions = array(_("No logging") => "none", _("System logging") => "syslog", _("File") => 'file'); +$destinationSelected = 'file'; +$destinationPath = $cfg->logDestination; +if ($cfg->logDestination == 'NONE') { + $destinationSelected = 'none'; + $destinationPath = ''; +} +elseif ($cfg->logDestination == 'SYSLOG') { + $destinationSelected = 'syslog'; + $destinationPath = ''; +} +$loggingTable->addElement(new htmlTableExtendedRadio(_("Log destination"), 'logDestination', $destinationOptions, $destinationSelected, '240'), true); +$loggingTable->addElement(new htmlOutputText('')); +$loggingTable->addElement(new htmlInputField('logFile', $destinationPath), true); +$loggingField = new htmlFieldset($loggingTable, _("Logging")); +$container->addElement($loggingField, true); +$container->addElement(new htmlSpacer(null, '10px'), true); + +// change master password +$passwordTable = new htmlTable(); +$pwd1 = new htmlTableExtendedInputField(_("New master password"), 'masterpassword', '', '235'); +$pwd1->setIsPassword(true); +$passwordTable->addElement($pwd1, true); +$pwd2 = new htmlTableExtendedInputField(_("Reenter new master password"), 'masterpassword2', ''); +$pwd2->setIsPassword(true); +$passwordTable->addElement($pwd2, true); +$passwordField = new htmlFieldset($passwordTable, _("Change master password")); +$container->addElement($passwordField, true); +$container->addElement(new htmlSpacer(null, '20px'), true); + +// buttons +if ($cfg->isWritable()) { + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlButton('submit', _("Ok"))); + $buttonTable->addElement(new htmlButton('cancel', _("Cancel"))); + $container->addElement($buttonTable); +} + +$tabindex = 1; +parseHtml(null, $container, array(), false, $tabindex, 'user'); ?> -
- - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -   - -
- - - -   - -
-
-
-
- -
- - \n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - } - ?> -
\n"; - echo $options[$i][1] . "  "; - echo "\n"; - echo "\n"; - echo "\n"; - printHelpLink(getHelp('', '242'), '242'); - echo "
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - -
- - -   - -
 
- -   - -
- logDestination == "NONE") $noLogChecked = true; - echo "" . _("No logging") . "\n"; - ?> -
- logDestination == "SYSLOG") { - $syslogChecked = true; - } - echo "" . _("System logging") . "\n"; - ?> -
- logDestination != "NONE") && ($cfg->logDestination != "SYSLOG")) { - $logFile = $cfg->logDestination; - $logFileChecked = true; - } - echo "" . _("File") . "\n"; - echo "\n"; - ?> -
-
-
-
- -
- - - - - - - - - - - -
- - - - -   - -
- - - - -  
-
-
-
- isWritable()) { ?> - - - - -
-