check_Passwd($passwd) && !($_SESSION['conf_isAuthenticated'] === $conf->getName())) { $sessionKeys = array_keys($_SESSION); for ($i = 0; $i < sizeof($sessionKeys); $i++) { if (substr($sessionKeys[$i], 0, 5) == "conf_") unset($_SESSION[$sessionKeys[$i]]); } $_SESSION['conf_message'] = _("The password is invalid! Please try again."); /** go back to login if password is invalid */ require('conflogin.php'); exit; } $_SESSION['conf_isAuthenticated'] = $conf->getName(); // check if button was pressed and if we have to save the setting or go back to login if (isset($_POST['back']) || isset($_POST['submitconf']) || isset($_POST['editmodules']) || isset($_POST['edittypes'])){ // go to final page if ($_POST['submitconf']){ saveSettings(); } // go to modules page elseif ($_POST['editmodules']){ metaRefresh("confmodules.php"); exit; } // go to types page elseif ($_POST['edittypes']){ metaRefresh("conftypes.php"); exit; } // back to login else if ($_POST['back']){ metaRefresh("../login.php"); exit; } } // check if user comes from types page if (isset($_GET["typesback"])) { // check if a new account type was added if (isset($_GET["typeschanged"])) { metaRefresh("confmodules.php"); exit; } } // type information if (!isset($_SESSION['conf_accountTypes'])) $_SESSION['conf_accountTypes'] = $conf->get_ActiveTypes(); if (!isset($_SESSION['conf_accountTypesOld'])) $_SESSION['conf_accountTypesOld'] = $conf->get_ActiveTypes(); if (!isset($_SESSION['conf_typeSettings'])) $_SESSION['conf_typeSettings'] = $conf->get_typeSettings(); // index for tab order $tabindex = 1; $tabindexLink = 1000; echo $_SESSION['header']; echo ("" . _("LDAP Account Manager Configuration") . "\n"); echo ("\n"); echo ("\n"); echo ("\n"); echo ("

". "\"LDAP

\n
\n

 

\n"); if (!$conf->isWritable()) { StatusMessage('WARN', 'The config file is not writable.', 'Your changes cannot be saved until you make the file writable for the webserver user.'); echo "
"; } // display error messages if (isset($_SESSION['conf_errors'])) { for ($i = 0; $i < sizeof($_SESSION['conf_errors']); $i++) { call_user_func_array('StatusMessage', $_SESSION['conf_errors'][$i]); } echo "
"; } // display formular echo ("
\n"); echo ("
" . _("Server settings") . "
\n"); echo (""); // serverURL echo ("". "\n"); echo "\n"; $tabindex++; // new line echo (""); // tree suffix echo ("". "\n"); echo "\n"; $tabindex++; // new line echo (""); // LDAP cache timeout echo ("". "\n"); $tabindex++; echo "\n"; // access level is only visible in Pro version if (isLAMProVersion()) { // new line echo (""); // access level echo ("". "\n"); $tabindex++; echo "\n"; } echo ("
" . _("Server address") . " *: ". "get_ServerURL() . "\">". ""; echo ""; echo "\"""; echo "\n"; echo "
 
". _("Tree suffix") . ": get_Suffix('tree') . "\">"; echo ""; echo "\"""; echo "\n"; echo "
 
". _("Cache timeout") . ": "; echo ""; echo "\"""; echo "\n"; echo "
 
". _("Access level") . ": "; echo ""; echo "\"""; echo "\n"; echo "
"); echo ("
"); echo ("
"); echo ("
" . _("Account types and modules") . "
\n"); // Account modules $types = $conf->get_ActiveTypes(); for ($i = 0; $i < sizeof($types); $i++) { $moduleNames = $conf->get_AccountModules($types[$i]); for ($m = 0; $m < sizeof($moduleNames); $m++) $moduleNames[$m] = getModuleAlias($moduleNames[$m], $types[$i]); echo "" . getTypeAlias($types[$i]) . ": " . implode(", ", $moduleNames) . "
\n"; } echo "
\n"; echo "  "; $tabindex++; echo "  "; echo ""; echo "\"""; echo "\n"; $tabindex++; echo ("
"); echo ("
"); // module settings // get list of scopes of modules $scopes = array(); for ($m = 0; $m < sizeof($types); $m++) { $mods = $conf->get_AccountModules($types[$m]); for ($i = 0; $i < sizeof($mods); $i++) $scopes[$mods[$i]][] = $types[$m]; } // get module options $options = getConfigOptions($scopes); // get current setting $old_options = $conf->get_moduleSettings(); // display module boxes $modules = array_keys($options); $_SESSION['conf_types'] = array(); for ($i = 0; $i < sizeof($modules); $i++) { if (sizeof($options[$modules[$i]]) < 1) continue; echo "
\n"; $icon = ''; $module = new $modules[$i]('none'); $iconImage = $module->getIcon(); if ($iconImage != null) { $icon = '' . $iconImage . ' '; } echo "$icon" . getModuleAlias($modules[$i], "none") . "
\n"; $configTypes = parseHtml($modules[$i], $options[$modules[$i]], $old_options, true, $tabindex, $tabindexLink, 'config'); $_SESSION['conf_types'] = array_merge($configTypes, $_SESSION['conf_types']); echo "
\n"; echo "
"; } echo ("
" . _("Language settings") . "
\n"); echo ("\n"); // language echo (""); echo ("\n"); echo "\n"; echo ("
" . _("Default language") . ":\n"); // read available languages $languagefile = "../../config/language"; if(is_file($languagefile)) { $file = fopen($languagefile, "r"); $i = 0; while(!feof($file)) { $line = fgets($file, 1024); if($line == "\n" || $line[0] == "#" || $line == "") continue; // ignore comment and empty lines $languages[$i] = chop($line); $i++; } fclose($file); // generate language list echo ("\n"); $tabindex++; } else { echo _("Unable to load available languages. Setting English as default language. For further instructions please contact the Admin of this site."); } echo (""; echo ""; echo "\"""; echo "\n"; echo "
\n"); echo ("
\n"); echo ("
\n"); // script settings echo ("
" . _("Script settings") . "
\n"); echo ("\n"); echo ("". "\n"); $tabindex++; echo "\n"; echo ("". "\n"); $tabindex++; echo "\n"; echo "\n"; $owr = ""; $oww = ""; $owe = ""; $grr = ""; $grw = ""; $gre = ""; $otr = ""; $otw = ""; $ote = ""; $chmod = $conf->get_scriptRights(); if (checkChmod("read","owner", $chmod)) $owr = 'checked'; if (checkChmod("write","owner", $chmod)) $oww = 'checked'; if (checkChmod("execute","owner", $chmod)) $owe = 'checked'; if (checkChmod("read","group", $chmod)) $grr = 'checked'; if (checkChmod("write","group", $chmod)) $grw = 'checked'; if (checkChmod("execute","group", $chmod)) $gre = 'checked'; if (checkChmod("read","other", $chmod)) $otr = 'checked'; if (checkChmod("write","other", $chmod)) $otw = 'checked'; if (checkChmod("execute","other", $chmod)) $ote = 'checked'; echo "\n"; echo ("
". _("Server list") . ": get_scriptServers(false) . "\">"; echo ""; echo "\"""; echo "\n"; echo "
". _("Path to external script") . ": get_scriptPath() . "\">"; echo ""; echo "\"""; echo "\n"; echo "
". _("Rights for the home directory") . ": \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
" . _("Read") . "" . _("Write") . ""._("Execute")."
"._("Owner")."
"._("Group")."
"._("Other")."
"; $tabindex++; echo "
"; echo ""; echo "\"""; echo "\n"; echo "
\n"); echo ("
\n"); echo ("
\n"); // security setings echo ("
" . _("Security settings") . "
\n"); echo ("\n"); // admin list $adminText = implode("\n", explode(";", $conf->get_Adminstring())); echo ("". "\n"); echo "\n"; $tabindex++; echo ("\n"); // new password echo ("". "\n"); $tabindex++; echo "\n"; // reenter password echo ("". "\n"); $tabindex++; echo ("
". _("List of valid users") . " *: "; echo ""; echo "\"""; echo "\n"; echo "
 
". _("New password") . ": "; echo ""; echo "\"""; echo "\n"; echo "
". _("Reenter password") . ":
\n"); echo ("
\n"); echo ("

 

\n"); // buttons echo ("\n"); echo ""; echo "\n"); echo ("
";
	echo "";
	$tabindex++;
	echo " ";
	echo "
\n"); echo ("

 

"); echo ("

* = ". _("required") . "

"); echo ("

** = ". _("required for Samba 3 accounts") . "

"); // password for configuration echo ("

\n"); echo ("
\n"); echo ("\n"); echo ("\n"); /** * Saves the entered settings. * */ function saveSettings() { $conf = &$_SESSION['conf_config']; $types = $conf->get_ActiveTypes(); // remove double slashes if magic quotes are on if (get_magic_quotes_gpc() == 1) { $postKeys = array_keys($_POST); for ($i = 0; $i < sizeof($postKeys); $i++) { if (is_string($_POST[$postKeys[$i]])) $_POST[$postKeys[$i]] = stripslashes($_POST[$postKeys[$i]]); } } // check new preferences $errors = array(); if (!$conf->set_ServerURL($_POST['serverurl'])) { $errors[] = array("ERROR", _("Server address is invalid!")); } if (!$conf->set_cacheTimeout($_POST['cachetimeout'])) { $errors[] = array("ERROR", _("Cache timeout is invalid!")); } if (isLAMProVersion()) { $conf->setAccessLevel($_POST['accessLevel']); } $adminText = $_POST['admins']; $adminText = explode("\n", $adminText); $adminTextNew = array(); for ($i = 0; $i < sizeof($adminText); $i++) { if (trim($adminText[$i]) == "") continue; $adminTextNew[] = trim($adminText[$i]); } if (!$conf->set_Adminstring(implode(";", $adminTextNew))) { $errors[] = array("ERROR", _("List of admin users is empty or invalid!")); } if (!$conf->set_Suffix("tree", $_POST['sufftree'])) { $errors[] = array("ERROR", _("TreeSuffix is invalid!")); } if (!$conf->set_defaultLanguage($_POST['lang'])) { $errors[] = array("ERROR", _("Language is not defined!")); } if (!$conf->set_scriptpath($_POST['scriptpath'])) { $errors[] = array("ERROR", _("Script path is invalid!")); } if (!$conf->set_scriptservers($_POST['scriptservers'])) { $errors[] = array("ERROR", _("Script server is invalid!")); } $chmodOwner = 0; $chmodGroup = 0; $chmodOther = 0; if (isset($_POST['chmod_owr']) && ($_POST['chmod_owr'] == 'on')) $chmodOwner += 4; if (isset($_POST['chmod_oww']) && ($_POST['chmod_oww'] == 'on')) $chmodOwner += 2; if (isset($_POST['chmod_owe']) && ($_POST['chmod_owe'] == 'on')) $chmodOwner += 1; if (isset($_POST['chmod_grr']) && ($_POST['chmod_grr'] == 'on')) $chmodGroup += 4; if (isset($_POST['chmod_grw']) && ($_POST['chmod_grw'] == 'on')) $chmodGroup += 2; if (isset($_POST['chmod_gre']) && ($_POST['chmod_gre'] == 'on')) $chmodGroup += 1; if (isset($_POST['chmod_otr']) && ($_POST['chmod_otr'] == 'on')) $chmodOther += 4; if (isset($_POST['chmod_otw']) && ($_POST['chmod_otw'] == 'on')) $chmodOther += 2; if (isset($_POST['chmod_ote']) && ($_POST['chmod_ote'] == 'on')) $chmodOther += 1; $chmod = $chmodOwner . $chmodGroup . $chmodOther; if (!$conf->set_scriptrights($chmod)) { $errors[] = array("ERROR", _("Script rights are invalid!")); } // check if password was changed if (isset($_POST['passwd1']) && ($_POST['passwd1'] != '')) { if ($_POST['passwd1'] != $_POST['passwd2']) { $errors[] = array("ERROR", _("Passwords are different!")); } else { // set new password $conf->set_Passwd($_POST['passwd1']); } } // check module options // create option array to check and save $options = array(); $opt_keys = array_keys($_SESSION['conf_types']); for ($i = 0; $i < sizeof($opt_keys); $i++) { $element = $opt_keys[$i]; // text fields if ($_SESSION['conf_types'][$element] == "text") { $options[$element] = array($_POST[$element]); } // checkboxes elseif ($_SESSION['conf_types'][$element] == "checkbox") { if ($_POST[$element] == "on") $options[$element] = array('true'); else $options[$element] = array('false'); } // dropdownbox elseif ($_SESSION['conf_types'][$element] == "select") { $options[$element] = array($_POST[$element]); } // multiselect elseif ($_SESSION['conf_types'][$element] == "multiselect") { $options[$element] = $_POST[$element]; // value is already an array } } // get list of scopes of modules $scopes = array(); for ($m = 0; $m < sizeof($types); $m++) { $mods = $conf->get_AccountModules($types[$m]); for ($i = 0; $i < sizeof($mods); $i++) $scopes[$mods[$i]][] = $types[$m]; } // check options $errors = array_merge($errors, checkConfigOptions($scopes, $options)); // print error messages if any if (sizeof($errors) > 0) { $_SESSION['conf_errors'] = $errors; $conf->set_moduleSettings($options); } // save settings if no errors occured else { // page head echo $_SESSION['header']; echo "" . _("LDAP Account Manager Configuration") . "\n"; echo "\n"; echo "\n"; echo ("

". "\"LDAP




"); $conf->set_moduleSettings($options); $conf->save(); echo ("




" . _("Back to Login") . ""); echo(""); // remove settings from session $sessionKeys = array_keys($_SESSION); for ($i = 0; $i < sizeof($sessionKeys); $i++) { if (substr($sessionKeys[$i], 0, 5) == "conf_") unset($_SESSION[$sessionKeys[$i]]); } exit(); } } ?>