added comments, removed double checks, removed session related bug

This commit is contained in:
Roland Gruber 2003-10-11 12:17:28 +00:00
parent 9e8d184b66
commit c535a42f27
3 changed files with 220 additions and 190 deletions

View File

@ -30,16 +30,16 @@ include_once("status.inc");
function setlanguage() { function setlanguage() {
if ($_SESSION['language']) { if ($_SESSION['language']) {
$language = explode(":", $_SESSION['language']); $language = explode(":", $_SESSION['language']);
putenv("LANG=" . $language[0]); putenv("LANG=" . $language[0]); // e.g. LANG=de_DE
setlocale(LC_ALL, $language[0]); setlocale(LC_ALL, $language[0]); // set LC_ALL to de_DE
$locdir = substr(__FILE__, 0, strlen(__FILE__) - 15) . "/locale"; $locdir = substr(__FILE__, 0, strlen(__FILE__) - 15) . "/locale"; // set path to translations
bindtextdomain("messages", $locdir); bindtextdomain("messages", $locdir);
textdomain("messages"); textdomain("messages");
} }
else echo _("Language not defined in session!"); else echo _("Language not defined in session!");
} }
// returns an array of String with all available configuration profiles (without .conf) // returns an array of string with all available configuration profiles (without .conf)
function getConfigProfiles() { function getConfigProfiles() {
$dir = dir(substr(__FILE__, 0, strlen(__FILE__) - 15) . "/config"); $dir = dir(substr(__FILE__, 0, strlen(__FILE__) - 15) . "/config");
$ret = array(); $ret = array();
@ -47,6 +47,7 @@ function getConfigProfiles() {
while ($entry = $dir->read()){ while ($entry = $dir->read()){
$ext = substr($entry, strlen($entry)-5, 5); $ext = substr($entry, strlen($entry)-5, 5);
$name = substr($entry, 0, strlen($entry)-5); $name = substr($entry, 0, strlen($entry)-5);
// check if extension is right, add to profile list
if ($ext == ".conf") { if ($ext == ".conf") {
$ret[$pos] = $name; $ret[$pos] = $name;
$pos ++; $pos ++;
@ -57,7 +58,7 @@ function getConfigProfiles() {
} }
// print meta refresh // print meta refresh
// $page is the target page // $page is the URL of the target page
function metaRefresh($page) { function metaRefresh($page) {
echo $_SESSION['header']; echo $_SESSION['header'];
echo "<html>\n"; echo "<html>\n";
@ -122,6 +123,7 @@ class Config {
var $defaultLanguage; var $defaultLanguage;
// Path to external script and server where it is executed // Path to external script and server where it is executed
// used for managing quota and home directories
// optional settings, may not be defined // optional settings, may not be defined
var $scriptPath; var $scriptPath;
var $scriptServer; var $scriptServer;
@ -147,6 +149,7 @@ class Config {
// constructor, loads preferences from config file // constructor, loads preferences from config file
function Config($file=0) { function Config($file=0) {
// load first profile if none is given
if (!is_string($file)) { if (!is_string($file)) {
$profiles = getConfigProfiles(); $profiles = getConfigProfiles();
$file = $profiles[0]; $file = $profiles[0];
@ -162,13 +165,14 @@ class Config {
$file = fopen($conffile, "r"); $file = fopen($conffile, "r");
while (!feof($file)) { while (!feof($file)) {
$line = fgets($file, 1024); $line = fgets($file, 1024);
if (($line == "\n")||($line[0] == "#")) continue; // ignore comments $line = trim($line); // remove spaces at the beginning and end
if (($line == "")||($line[0] == "#")) continue; // ignore comments and empty lines
// search keywords // search keywords
for ($i = 0; $i < sizeof($this->settings); $i++) { for ($i = 0; $i < sizeof($this->settings); $i++) {
$keyword = $this->settings[$i]; $keyword = $this->settings[$i];
$keylen = strlen($keyword); $keylen = strlen($keyword);
if (strtolower(substr($line, 0, $keylen + 2)) == strtolower($keyword . ": ")) { if (strtolower(substr($line, 0, $keylen + 2)) == strtolower($keyword . ": ")) {
$this->$keyword = chop(substr($line, $keylen + 2, strlen($line) - $keylen -2)); $this->$keyword = substr($line, $keylen + 2, strlen($line) - $keylen -2);
break; break;
} }
} }
@ -195,7 +199,7 @@ class Config {
$saved = array(); // includes all settings which have been saved $saved = array(); // includes all settings which have been saved
for ($i = 0; $i < sizeof($file_array); $i++) { for ($i = 0; $i < sizeof($file_array); $i++) {
$line = trim($file_array[$i]); $line = trim($file_array[$i]);
if (($line == "\n")||($line[0] == "#")) continue; // ignore comments if (($line == "")||($line[0] == "#")) continue; // ignore comments and empty lines
// search for keywords // search for keywords
for ($k = 0; $k < sizeof($this->settings); $k++) { for ($k = 0; $k < sizeof($this->settings); $k++) {
$keyword = $this->settings[$k]; $keyword = $this->settings[$k];
@ -287,6 +291,8 @@ class Config {
} }
// sets the server address // sets the server address
// $value: new server address
// returns true if $value has correct format
function set_ServerURL($value) { function set_ServerURL($value) {
if (is_string($value)) $this->ServerURL = $value; if (is_string($value)) $this->ServerURL = $value;
else return false; else return false;
@ -304,6 +310,8 @@ class Config {
} }
// needs a string that contains all admin users seperated by semicolons // needs a string that contains all admin users seperated by semicolons
// $value: new admin string
// returns true if $value has correct format
function set_Adminstring($value) { function set_Adminstring($value) {
if (is_string($value) && if (is_string($value) &&
eregi("^([a-z0-9]|-)+=([a-z0-9]|-)+(,([a-z0-9]|-)+=([a-z0-9]|-)+)+(;([a-z0-9]|-)+=([a-z0-9]|-)+(,([a-z0-9]|-)+=([a-z0-9]|-)+)+)*$", $value)) { eregi("^([a-z0-9]|-)+=([a-z0-9]|-)+(,([a-z0-9]|-)+=([a-z0-9]|-)+)+(;([a-z0-9]|-)+=([a-z0-9]|-)+(,([a-z0-9]|-)+=([a-z0-9]|-)+)+)*$", $value)) {
@ -319,6 +327,8 @@ class Config {
} }
// sets the preferences wizard password // sets the preferences wizard password
// $value: new password
// returns true if $value has correct format
function set_Passwd($value) { function set_Passwd($value) {
if (is_string($value)) $this->Passwd = $value; if (is_string($value)) $this->Passwd = $value;
else return false; else return false;
@ -331,6 +341,8 @@ class Config {
} }
// sets the LDAP suffix where users are saved // sets the LDAP suffix where users are saved
// $value: new user suffix
// returns true if $value has correct format
function set_UserSuffix($value) { function set_UserSuffix($value) {
if (is_string($value) && (eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $value))) { if (is_string($value) && (eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $value))) {
$this->usersuffix = $value; $this->usersuffix = $value;
@ -345,6 +357,8 @@ class Config {
} }
// sets the LDAP suffix where groups are saved // sets the LDAP suffix where groups are saved
// $value: new group suffix
// returns true if $value has correct format
function set_GroupSuffix($value) { function set_GroupSuffix($value) {
if (is_string($value) && (eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $value))) { if (is_string($value) && (eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $value))) {
$this->groupsuffix = $value; $this->groupsuffix = $value;
@ -359,6 +373,8 @@ class Config {
} }
// sets the LDAP suffix where hosts are saved // sets the LDAP suffix where hosts are saved
// $value: new host suffix
// returns true if $value has correct format
function set_HostSuffix($value) { function set_HostSuffix($value) {
if (is_string($value) && (eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $value))) { if (is_string($value) && (eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $value))) {
$this->hostsuffix = $value; $this->hostsuffix = $value;
@ -373,6 +389,8 @@ class Config {
} }
// sets the LDAP suffix where domains are saved // sets the LDAP suffix where domains are saved
// $value: new domain suffix
// returns true if $value has correct format
function set_DomainSuffix($value) { function set_DomainSuffix($value) {
if (!$value && ($this->get_Samba3() == "no")) $this->domainsuffix = ""; if (!$value && ($this->get_Samba3() == "no")) $this->domainsuffix = "";
elseif (is_string($value) && (eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $value))) { elseif (is_string($value) && (eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $value))) {
@ -388,6 +406,8 @@ class Config {
} }
// sets the minimum UID to use when creating new users // sets the minimum UID to use when creating new users
// $value: new minimum UID number
// returns true if $value has correct format
function set_minUID($value) { function set_minUID($value) {
if (is_numeric($value)) $this->MinUID = $value; if (is_numeric($value)) $this->MinUID = $value;
else return false; else return false;
@ -400,6 +420,8 @@ class Config {
} }
// sets the maximum UID to use when creating new users // sets the maximum UID to use when creating new users
// $value: new maximum UID number
// returns true if $value has correct format
function set_maxUID($value) { function set_maxUID($value) {
if (is_numeric($value)) $this->MaxUID = $value; if (is_numeric($value)) $this->MaxUID = $value;
else return false; else return false;
@ -412,6 +434,8 @@ class Config {
} }
// sets the minimum GID to use when creating new groups // sets the minimum GID to use when creating new groups
// $value: new minimum GID number
// returns true if $value has correct format
function set_minGID($value) { function set_minGID($value) {
if (is_numeric($value)) $this->MinGID = $value; if (is_numeric($value)) $this->MinGID = $value;
else return false; else return false;
@ -424,6 +448,8 @@ class Config {
} }
// sets the maximum GID to use when creating new groups // sets the maximum GID to use when creating new groups
// $value: new maximum GID number
// returns true if $value has correct format
function set_maxGID($value) { function set_maxGID($value) {
if (is_numeric($value)) $this->MaxGID = $value; if (is_numeric($value)) $this->MaxGID = $value;
else return false; else return false;
@ -436,6 +462,8 @@ class Config {
} }
// sets the minimum UID to use when creating new Samba hosts // sets the minimum UID to use when creating new Samba hosts
// $value: new minimum machine number
// returns true if $value has correct format
function set_minMachine($value) { function set_minMachine($value) {
if (is_numeric($value)) $this->MinMachine = $value; if (is_numeric($value)) $this->MinMachine = $value;
else return false; else return false;
@ -448,6 +476,8 @@ class Config {
} }
// sets the maximum UID to use when creating new Samba hosts // sets the maximum UID to use when creating new Samba hosts
// $value: new maximum machine number
// returns true if $value has correct format
function set_maxMachine($value) { function set_maxMachine($value) {
if (is_numeric($value)) $this->MaxMachine = $value; if (is_numeric($value)) $this->MaxMachine = $value;
else return false; else return false;
@ -460,8 +490,10 @@ class Config {
} }
// sets the list of attributes to show in user list // sets the list of attributes to show in user list
// $value: new attribute string
// returns true if $value has correct format
function set_userlistAttributes($value) { function set_userlistAttributes($value) {
if (is_string($value) && eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $value)) { if (is_string($value) && eregi("^((#[a-z]+)|([a-z]*:[a-z_\\-]+))(;((#[a-z]+)|([a-z]*:[a-z_\\-]+)))*$", $value)) {
$this->userlistAttributes = $value; $this->userlistAttributes = $value;
} }
else return false; else return false;
@ -474,8 +506,10 @@ class Config {
} }
// sets the list of attributes to show in group list // sets the list of attributes to show in group list
// $value: new attribute string
// returns true if $value has correct format
function set_grouplistAttributes($value) { function set_grouplistAttributes($value) {
if (is_string($value) && eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $value)) { if (is_string($value) && eregi("^((#[a-z]+)|([a-z]*:[a-z_\\-]+))(;((#[a-z]+)|([a-z]*:[a-z_\\-]+)))*$", $value)) {
$this->grouplistAttributes = $value; $this->grouplistAttributes = $value;
} }
else return false; else return false;
@ -488,8 +522,10 @@ class Config {
} }
// sets the list of attributes to show in host list // sets the list of attributes to show in host list
// $value: new attribute string
// returns true if $value has correct format
function set_hostlistAttributes($value) { function set_hostlistAttributes($value) {
if (is_string($value) && eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $value)) { if (is_string($value) && eregi("^((#[a-z]+)|([a-z]*:[a-z_\\-]+))(;((#[a-z]+)|([a-z]*:[a-z_\\-]+)))*$", $value)) {
$this->hostlistAttributes = $value; $this->hostlistAttributes = $value;
} }
else return false; else return false;
@ -502,6 +538,8 @@ class Config {
} }
// sets the maximum number of rows in user/group/host lists // sets the maximum number of rows in user/group/host lists
// $value: new attribute string
// returns true if $value has correct format
function set_MaxListEntries ($value) { function set_MaxListEntries ($value) {
if (is_numeric($value)) $this->maxlistentries = $value; if (is_numeric($value)) $this->maxlistentries = $value;
else return false; else return false;
@ -514,6 +552,8 @@ class Config {
} }
// sets the default language string // sets the default language string
// $value: new default language
// returns true if $value has correct format
function set_defaultLanguage($value) { function set_defaultLanguage($value) {
if (is_string($value)) $this->defaultLanguage = $value; if (is_string($value)) $this->defaultLanguage = $value;
else return false; else return false;
@ -526,6 +566,8 @@ class Config {
} }
// sets the path to the external script // sets the path to the external script
// $value: new script path
// returns true if $value has correct format
function set_scriptPath($value) { function set_scriptPath($value) {
if (!$value) $this->scriptPath = ""; // optional parameter if (!$value) $this->scriptPath = ""; // optional parameter
elseif (is_string($value) && eregi("^/([a-z0-9_\\-])+(/([a-z0-9_\\.\\-])+)+$", $value)) $this->scriptPath = $value; elseif (is_string($value) && eregi("^/([a-z0-9_\\-])+(/([a-z0-9_\\.\\-])+)+$", $value)) $this->scriptPath = $value;
@ -539,9 +581,11 @@ class Config {
} }
// sets the server of the external script // sets the server of the external script
// $value: new script server
// returns true if $value has correct format
function set_scriptServer($value) { function set_scriptServer($value) {
if (!$value) $value = ""; // optional parameter if (!$value) $this->scriptServer = ""; // optional parameter
if (is_string($value)) { elseif (is_string($value) && eregi("^[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*$", $value)) {
$this->scriptServer = $value; $this->scriptServer = $value;
} }
else return false; else return false;
@ -560,6 +604,8 @@ class Config {
} }
// set Samba version: "yes" means 3.x schema, "no" means 2.2.x schema // set Samba version: "yes" means 3.x schema, "no" means 2.2.x schema
// $value: "yes"/"no"
// returns true if $value has correct format
function set_samba3($value) { function set_samba3($value) {
if (is_string($value) && eregi("^(yes|no)$", $value)) { if (is_string($value) && eregi("^(yes|no)$", $value)) {
$this->samba3 = $value; $this->samba3 = $value;
@ -570,7 +616,7 @@ class Config {
// returns the LDAP cache timeout in minutes // returns the LDAP cache timeout in minutes
function get_cacheTimeout() { function get_cacheTimeout() {
if ($this->cachetimeout) return $this->cachetimeout; if (isset($this->cachetimeout)) return $this->cachetimeout;
else return 5; else return 5;
} }
@ -580,6 +626,8 @@ class Config {
} }
// sets the LDAP cache timeout in minutes (0,1,2,5,10,15) // sets the LDAP cache timeout in minutes (0,1,2,5,10,15)
// $value: new cache timeout
// returns true if $value has correct format
function set_cacheTimeout($value) { function set_cacheTimeout($value) {
if (is_numeric($value) && ($value > -1)) { if (is_numeric($value) && ($value > -1)) {
$this->cachetimeout = $value; $this->cachetimeout = $value;
@ -595,6 +643,8 @@ class Config {
} }
// set the password hash type (CRYPT/SHA/SSHA/MD5/SMD5) // set the password hash type (CRYPT/SHA/SSHA/MD5/SMD5)
// $value: new password hash algorithm
// returns true if $value has correct format
function set_pwdhash($value) { function set_pwdhash($value) {
if (is_string($value) && eregi("^(crypt|sha|ssha|md5|smd5|plain)$", $value)) { if (is_string($value) && eregi("^(crypt|sha|ssha|md5|smd5|plain)$", $value)) {
$this->pwdhash = $value; $this->pwdhash = $value;
@ -629,14 +679,15 @@ class CfgMain {
$file = fopen($conffile, "r"); $file = fopen($conffile, "r");
while (!feof($file)) { while (!feof($file)) {
$line = fgets($file, 1024); $line = fgets($file, 1024);
if (($line == "\n")||($line[0] == "#")) continue; // ignore comments $line = trim($line); // remove spaces at the beginning and end
if (($line == "")||($line[0] == "#")) continue; // ignore comments
// search keywords // search keywords
if (substr($line, 0, 10) == "password: ") { if (substr($line, 0, 10) == "password: ") {
$this->password = chop(substr($line, 10, strlen($line)-10)); $this->password = substr($line, 10, strlen($line)-10);
continue; continue;
} }
if (substr($line, 0, 9) == "default: ") { if (substr($line, 0, 9) == "default: ") {
$this->default = chop(substr($line, 9, strlen($line)-9)); $this->default = substr($line, 9, strlen($line)-9);
continue; continue;
} }
} }

View File

@ -37,35 +37,32 @@ if ($_POST['back'] || $_POST['submitconf']){
// save settings // save settings
if ($_POST['submitconf']){ if ($_POST['submitconf']){
// save HTTP-POST variables in session // save HTTP-POST variables in session
// get data if register_globals is off $_SESSION['conf_passwd'] = $_POST['passwd'];
if ($_POST['passwd']) $_SESSION['conf_passwd'] = $_POST['passwd']; $_SESSION['conf_passwd1'] = $_POST['passwd1'];
if ($_POST['passwd1']) $_SESSION['conf_passwd1'] = $_POST['passwd1']; $_SESSION['conf_passwd2'] = $_POST['passwd2'];
if ($_POST['passwd2']) $_SESSION['conf_passwd2'] = $_POST['passwd2']; $_SESSION['conf_serverurl'] = $_POST['serverurl'];
if ($_POST['serverurl']) $_SESSION['conf_serverurl'] = $_POST['serverurl']; $_SESSION['conf_cachetimeout'] = $_POST['cachetimeout'];
if (isset($_POST['cachetimeout'])) $_SESSION['conf_cachetimeout'] = $_POST['cachetimeout']; $_SESSION['conf_admins'] = $_POST['admins'];
if ($_POST['admins']) $_SESSION['conf_admins'] = $_POST['admins']; $_SESSION['conf_suffusers'] = $_POST['suffusers'];
if ($_POST['suffusers']) $_SESSION['conf_suffusers'] = $_POST['suffusers']; $_SESSION['conf_suffgroups'] = $_POST['suffgroups'];
if ($_POST['suffgroups']) $_SESSION['conf_suffgroups'] = $_POST['suffgroups']; $_SESSION['conf_suffhosts'] = $_POST['suffhosts'];
if ($_POST['suffhosts']) $_SESSION['conf_suffhosts'] = $_POST['suffhosts']; $_SESSION['conf_suffdomains'] = $_POST['suffdomains'];
if ($_POST['suffdomains']) $_SESSION['conf_suffdomains'] = $_POST['suffdomains']; $_SESSION['conf_minUID'] = $_POST['minUID'];
if (isset($_POST['minUID'])) $_SESSION['conf_minUID'] = $_POST['minUID']; $_SESSION['conf_maxUID'] = $_POST['maxUID'];
if ($_POST['maxUID']) $_SESSION['conf_maxUID'] = $_POST['maxUID']; $_SESSION['conf_minGID'] = $_POST['minGID'];
if (isset($_POST['minGID'])) $_SESSION['conf_minGID'] = $_POST['minGID']; $_SESSION['conf_maxGID'] = $_POST['maxGID'];
if ($_POST['maxGID']) $_SESSION['conf_maxGID'] = $_POST['maxGID']; $_SESSION['conf_minMach'] = $_POST['minMach'];
if (isset($_POST['minMach'])) $_SESSION['conf_minMach'] = $_POST['minMach']; $_SESSION['conf_maxMach'] = $_POST['maxMach'];
if ($_POST['maxMach']) $_SESSION['conf_maxMach'] = $_POST['maxMach']; $_SESSION['conf_usrlstattr'] = $_POST['usrlstattr'];
if ($_POST['usrlstattr']) $_SESSION['conf_usrlstattr'] = $_POST['usrlstattr']; $_SESSION['conf_grplstattr'] = $_POST['grplstattr'];
if ($_POST['grplstattr']) $_SESSION['conf_grplstattr'] = $_POST['grplstattr']; $_SESSION['conf_hstlstattr'] = $_POST['hstlstattr'];
if ($_POST['hstlstattr']) $_SESSION['conf_hstlstattr'] = $_POST['hstlstattr']; $_SESSION['conf_maxlistentries'] = $_POST['maxlistentries'];
if ($_POST['maxlistentries']) $_SESSION['conf_maxlistentries'] = $_POST['maxlistentries']; $_SESSION['conf_lang'] = $_POST['lang'];
if ($_POST['lang']) $_SESSION['conf_lang'] = $_POST['lang']; $_SESSION['conf_samba3'] = $_POST['samba3'];
if ($_POST['samba3']) $_SESSION['conf_samba3'] = $_POST['samba3']; $_SESSION['conf_pwdhash'] = $_POST['pwdhash'];
if ($_POST['pwdhash']) $_SESSION['conf_pwdhash'] = $_POST['pwdhash']; $_SESSION['conf_scriptpath'] = $_POST['scriptpath'];
if ($_POST['scriptpath']) $_SESSION['conf_scriptpath'] = $_POST['scriptpath']; $_SESSION['conf_scriptserver'] = $_POST['scriptserver'];
else $_SESSION['conf_scriptpath'] = ""; $_SESSION['conf_filename'] = $_POST['filename'];
if ($_POST['scriptserver']) $_SESSION['conf_scriptserver'] = $_POST['scriptserver'];
else $_SESSION['conf_scriptserver'] = "";
if ($_POST['filename']) $_SESSION['conf_filename'] = $_POST['filename'];
metaRefresh("confsave.php"); metaRefresh("confsave.php");
} }
// back to login // back to login

View File

@ -34,32 +34,32 @@ setlanguage();
$conf = new Config($_SESSION['conf_filename']); $conf = new Config($_SESSION['conf_filename']);
// get data from session // get data from session
if ($_SESSION['conf_passwd']) $passwd = $_SESSION['conf_passwd']; $passwd = $_SESSION['conf_passwd'];
if ($_SESSION['conf_passwd1']) $passwd1 = $_SESSION['conf_passwd1']; $passwd1 = $_SESSION['conf_passwd1'];
if ($_SESSION['conf_passwd2']) $passwd2 = $_SESSION['conf_passwd2']; $passwd2 = $_SESSION['conf_passwd2'];
if ($_SESSION['conf_serverurl']) $serverurl = $_SESSION['conf_serverurl']; $serverurl = $_SESSION['conf_serverurl'];
if (isset($_SESSION['conf_cachetimeout'])) $cachetimeout = $_SESSION['conf_cachetimeout']; $cachetimeout = $_SESSION['conf_cachetimeout'];
if ($_SESSION['conf_admins']) $admins = $_SESSION['conf_admins']; $admins = $_SESSION['conf_admins'];
if ($_SESSION['conf_suffusers']) $suffusers = $_SESSION['conf_suffusers']; $suffusers = $_SESSION['conf_suffusers'];
if ($_SESSION['conf_suffgroups']) $suffgroups = $_SESSION['conf_suffgroups']; $suffgroups = $_SESSION['conf_suffgroups'];
if ($_SESSION['conf_suffhosts']) $suffhosts = $_SESSION['conf_suffhosts']; $suffhosts = $_SESSION['conf_suffhosts'];
if ($_SESSION['conf_suffdomains']) $suffdomains = $_SESSION['conf_suffdomains']; $suffdomains = $_SESSION['conf_suffdomains'];
if (isset($_SESSION['conf_minUID'])) $minUID = $_SESSION['conf_minUID']; $minUID = $_SESSION['conf_minUID'];
if ($_SESSION['conf_maxUID']) $maxUID = $_SESSION['conf_maxUID']; $maxUID = $_SESSION['conf_maxUID'];
if (isset($_SESSION['conf_minGID'])) $minGID = $_SESSION['conf_minGID']; $minGID = $_SESSION['conf_minGID'];
if ($_SESSION['conf_maxGID']) $maxGID = $_SESSION['conf_maxGID']; $maxGID = $_SESSION['conf_maxGID'];
if (isset($_SESSION['conf_minMach'])) $minMach = $_SESSION['conf_minMach']; $minMach = $_SESSION['conf_minMach'];
if ($_SESSION['conf_maxMach']) $maxMach = $_SESSION['conf_maxMach']; $maxMach = $_SESSION['conf_maxMach'];
if ($_SESSION['conf_usrlstattr']) $usrlstattr = $_SESSION['conf_usrlstattr']; $usrlstattr = $_SESSION['conf_usrlstattr'];
if ($_SESSION['conf_grplstattr']) $grplstattr = $_SESSION['conf_grplstattr']; $grplstattr = $_SESSION['conf_grplstattr'];
if ($_SESSION['conf_hstlstattr']) $hstlstattr = $_SESSION['conf_hstlstattr']; $hstlstattr = $_SESSION['conf_hstlstattr'];
if ($_SESSION['conf_maxlistentries']) $maxlistentries = $_SESSION['conf_maxlistentries']; $maxlistentries = $_SESSION['conf_maxlistentries'];
if ($_SESSION['conf_lang']) $lang = $_SESSION['conf_lang']; $lang = $_SESSION['conf_lang'];
if ($_SESSION['conf_scriptpath']) $scriptpath = $_SESSION['conf_scriptpath']; $scriptpath = $_SESSION['conf_scriptpath'];
if ($_SESSION['conf_scriptserver']) $scriptserver = $_SESSION['conf_scriptserver']; $scriptserver = $_SESSION['conf_scriptserver'];
if ($_SESSION['conf_samba3']) $samba3 = $_SESSION['conf_samba3']; $samba3 = $_SESSION['conf_samba3'];
if ($_SESSION['conf_pwdhash']) $pwdhash = $_SESSION['conf_pwdhash']; $pwdhash = $_SESSION['conf_pwdhash'];
if ($_SESSION['conf_filename']) $filename = $_SESSION['conf_filename']; $filename = $_SESSION['conf_filename'];
// check if password is correct // check if password is correct
// if not: load login page // if not: load login page
@ -78,139 +78,121 @@ echo ("<p align=\"center\"><a href=\"http://lam.sf.net\" target=\"new_window\">"
"<img src=\"../../graphics/banner.jpg\" border=1 alt=\"LDAP Account Manager\"></a></p><hr><br><br>"); "<img src=\"../../graphics/banner.jpg\" border=1 alt=\"LDAP Account Manager\"></a></p><hr><br><br>");
// check new preferences // check new preferences
if (!$serverurl) { if (!$conf->set_samba3($samba3)) {
echo ("<font color=\"red\"><b>" . _("Server Address is empty!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!isset($cachetimeout) || !(is_numeric($cachetimeout)) || !($cachetimeout > -1)) {
echo ("<font color=\"red\"><b>" . _("Cache timeout is empty!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$admins || !eregi("^([a-z0-9]|-)+=([a-z0-9]|-)+(,([a-z0-9]|-)+=([a-z0-9]|-)+)+(;([a-z0-9]|-)+=([a-z0-9]|-)+(,([a-z0-9]|-)+=([a-z0-9]|-)+)+)*$", $admins)) {
echo ("<font color=\"red\"><b>" . _("List of admin users is empty or invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$suffusers || !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffusers)) {
echo ("<font color=\"red\"><b>" . _("UserSuffix is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$suffgroups || !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffgroups)) {
echo ("<font color=\"red\"><b>" . _("UserSuffix is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$suffhosts || !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffhosts)) {
echo ("<font color=\"red\"><b>" . _("HostSuffix is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (($samba3 == "yes") && !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffdomains)) {
echo ("<font color=\"red\"><b>" . _("DomainSuffix is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!isset($minUID) || !is_numeric($minUID)) {
echo ("<font color=\"red\"><b>" . _("MinUID is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$maxUID || !is_numeric($maxUID)) {
echo ("<font color=\"red\"><b>" . _("MaxUID is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!isset($minGID) || !is_numeric($minGID)) {
echo ("<font color=\"red\"><b>" . _("MinGID is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$maxGID || !is_numeric($maxGID)) {
echo ("<font color=\"red\"><b>" . _("MaxGID is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!isset($minMach) || !is_numeric($minMach)) {
echo ("<font color=\"red\"><b>" . _("MinMachine is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$maxMach || !is_numeric($maxMach)) {
echo ("<font color=\"red\"><b>" . _("MaxMachine is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$usrlstattr || !eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $usrlstattr)) {
echo ("<font color=\"red\"><b>" . _("User list attributes are invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$grplstattr || !eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $grplstattr)) {
echo ("<font color=\"red\"><b>" . _("Group list attributes are invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$hstlstattr || !eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $hstlstattr)) {
echo ("<font color=\"red\"><b>" . _("Host list attributes are invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$maxlistentries || !is_numeric($maxlistentries)) {
echo ("<font color=\"red\"><b>" . _("Max list entries is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$lang) {
echo ("<font color=\"red\"><b>" . _("Language is not defined!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$samba3) {
echo ("<font color=\"red\"><b>" . _("Samba version is not defined!") . "</b></font>"); echo ("<font color=\"red\"><b>" . _("Samba version is not defined!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>"); echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit; exit;
} }
if ($scriptpath && !eregi("^/[a-z0-9_\\-]+(/[a-z0-9_\\.\\-]+)+$", $scriptpath)) { if (!$conf->set_ServerURL($serverurl)) {
echo ("<font color=\"red\"><b>" . _("Server Address is empty!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_cacheTimeout($cachetimeout)) {
echo ("<font color=\"red\"><b>" . _("Cache timeout is empty!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_Adminstring($admins)) {
echo ("<font color=\"red\"><b>" . _("List of admin users is empty or invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_UserSuffix($suffusers)) {
echo ("<font color=\"red\"><b>" . _("UserSuffix is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_GroupSuffix($suffgroups)) {
echo ("<font color=\"red\"><b>" . _("GroupSuffix is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_HostSuffix($suffhosts)) {
echo ("<font color=\"red\"><b>" . _("HostSuffix is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_DomainSuffix($suffdomains)) {
echo ("<font color=\"red\"><b>" . _("DomainSuffix is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_minUID($minUID)) {
echo ("<font color=\"red\"><b>" . _("MinUID is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_maxUID($maxUID)) {
echo ("<font color=\"red\"><b>" . _("MaxUID is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_minGID($minGID)) {
echo ("<font color=\"red\"><b>" . _("MinGID is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_maxGID($maxGID)) {
echo ("<font color=\"red\"><b>" . _("MaxGID is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_minMachine($minMach)) {
echo ("<font color=\"red\"><b>" . _("MinMachine is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_maxMachine($maxMach)) {
echo ("<font color=\"red\"><b>" . _("MaxMachine is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_userlistAttributes($usrlstattr)) {
echo ("<font color=\"red\"><b>" . _("User list attributes are invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_grouplistAttributes($grplstattr)) {
echo ("<font color=\"red\"><b>" . _("Group list attributes are invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_hostlistAttributes($hstlstattr)) {
echo ("<font color=\"red\"><b>" . _("Host list attributes are invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_MaxListEntries($maxlistentries)) {
echo ("<font color=\"red\"><b>" . _("Max list entries is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_defaultLanguage($lang)) {
echo ("<font color=\"red\"><b>" . _("Language is not defined!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
if (!$conf->set_scriptpath($scriptpath)) {
echo ("<font color=\"red\"><b>" . _("Script path is invalid!") . "</b></font>"); echo ("<font color=\"red\"><b>" . _("Script path is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>"); echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit; exit;
} }
if ($scriptserver && !is_string($scriptserver)) { if (!$conf->set_scriptserver($scriptserver)) {
echo ("<font color=\"red\"><b>" . _("Script server is invalid!") . "</b></font>"); echo ("<font color=\"red\"><b>" . _("Script server is invalid!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>"); echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit; exit;
} }
// set new preferences if (!$conf->set_pwdhash($pwdhash)) {
$conf->set_ServerURL($serverurl); echo ("<font color=\"red\"><b>" . _("Password hash is invalid!") . "</b></font>");
$conf->set_cacheTimeout($cachetimeout); echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
$conf->set_Adminstring($admins); exit;
$conf->set_UserSuffix($suffusers); }
$conf->set_GroupSuffix($suffgroups);
$conf->set_HostSuffix($suffhosts);
$conf->set_DomainSuffix($suffdomains);
$conf->set_minUID($minUID);
$conf->set_maxUID($maxUID);
$conf->set_minGID($minGID);
$conf->set_maxGID($maxGID);
$conf->set_minMachine($minMach);
$conf->set_maxMachine($maxMach);
$conf->set_userlistAttributes($usrlstattr);
$conf->set_grouplistAttributes($grplstattr);
$conf->set_hostlistAttributes($hstlstattr);
$conf->set_MaxListEntries($maxlistentries);
$conf->set_defaultLanguage($lang);
$conf->set_samba3($samba3);
$conf->set_scriptpath($scriptpath);
$conf->set_scriptserver($scriptserver);
$conf->set_pwdhash($pwdhash);