From 16635cfadd9535fedec9bdb6ee89e066c92424d6 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Fri, 25 Jul 2003 15:41:51 +0000 Subject: [PATCH] added domain and mapping suffix --- lam/lib/config.inc | 8 +-- lam/templates/config/confmain.php | 55 +++++++++++------- lam/templates/config/confsave.php | 95 +++++++++++++++++++------------ 3 files changed, 99 insertions(+), 59 deletions(-) diff --git a/lam/lib/config.inc b/lam/lib/config.inc index c5924f12..91c00745 100644 --- a/lam/lib/config.inc +++ b/lam/lib/config.inc @@ -494,7 +494,7 @@ class Config { // needs a string that contains all admin users seperated by semicolons function set_Adminstring($value) { if (is_string($value) && - ereg("^([a-zA-Z0-9]|-)+=([a-zA-Z0-9]|-)+(,([a-zA-Z0-9]|-)+=([a-zA-Z0-9]|-)+)+(;([a-zA-Z0-9]|-)+=([a-zA-Z0-9]|-)+(,([a-zA-Z0-9]|-)+=([a-zA-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)) { $this->Adminstring = $value; $this->Admins = explode(";", $value); } @@ -713,8 +713,8 @@ class Config { // sets the path to the external script function set_scriptPath($value) { - if (!$value) $value = ""; // optional parameter - if (is_string($value) && eregi("^()|(/([a-z]|[0-9]|-|_|/)*)$", $value)) $this->scriptPath = $value; + if (!$value) $this->scriptPath = ""; // optional parameter + elseif (is_string($value) && eregi("^/([a-z0-9_\\-])+(/([a-z0-9_\\-])+)+$", $value)) $this->scriptPath = $value; else StatusMessage("WARN", "", _("Config->set_scriptPath failed!") . " (" . $value . ")"); } @@ -726,7 +726,7 @@ class Config { // sets the server of the external script function set_scriptServer($value) { if (!$value) $value = ""; // optional parameter - if (is_string($value) && (eregi("^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$", $value) || $value == "")) { + if (is_string($value)) { $this->scriptServer = $value; } else StatusMessage("WARN", "", _("Config->set_scriptServer failed!") . " (" . $value . ")"); diff --git a/lam/templates/config/confmain.php b/lam/templates/config/confmain.php index 07d6865f..6222e73e 100644 --- a/lam/templates/config/confmain.php +++ b/lam/templates/config/confmain.php @@ -46,6 +46,8 @@ if ($_POST['back'] || $_POST['submitconf']){ if ($_POST['suffusers']) $suffusers = $_POST['suffusers']; if ($_POST['suffgroups']) $suffgroups = $_POST['suffgroups']; if ($_POST['suffhosts']) $suffhosts = $_POST['suffhosts']; + if ($_POST['suffdomains']) $suffdomains = $_POST['suffdomains']; + if ($_POST['suffmap']) $suffmap = $_POST['suffmap']; if ($_POST['minUID']) $minUID = $_POST['minUID']; if ($_POST['maxUID']) $maxUID = $_POST['maxUID']; if ($_POST['minGID']) $minGID = $_POST['minGID']; @@ -66,9 +68,9 @@ if ($_POST['back'] || $_POST['submitconf']){ else $scriptserver = ""; if ($_POST['filename']) $filename = $_POST['filename']; session_register('passwd', 'passwd1', 'passwd2', 'serverurl', 'admins', 'suffusers', - 'suffgroups', 'suffhosts', 'minUID', 'maxUID', 'minGID', 'maxGID', 'minMach', - 'maxMach', 'usrlstattr', 'grplstattr', 'hstlstattr', 'maxlistentries', 'lang', - 'scriptpath', 'scriptserver', 'samba3', 'domainSID', 'filename'); + 'suffgroups', 'suffhosts', 'suffdomains', 'suffmap', 'minUID', 'maxUID', 'minGID', + 'maxGID', 'minMach', 'maxMach', 'usrlstattr', 'grplstattr', 'hstlstattr', 'maxlistentries', + 'lang', 'scriptpath', 'scriptserver', 'samba3', 'domainSID', 'filename'); echo(""); } // back to login @@ -117,7 +119,7 @@ echo ("
\n"); echo ("
" . _("Server settings") . ""); echo (""); // serverURL -echo ("". +echo ("". "\n"); @@ -128,19 +130,29 @@ echo (""); // user suffix echo ("". + _("UserSuffix") . " *: ". "\n"); echo ("\n"); // group suffix echo ("". + _("GroupSuffix") . " *: ". "\n"); echo ("\n"); // host suffix echo ("". + _("HostSuffix") . " *: ". "\n"); echo ("\n"); +// domain suffix +echo ("". + "\n"); +echo ("\n"); +// mapping suffix +echo ("". + "\n"); +echo ("\n"); echo ("
" . _("Server Address") . ":
" . _("Server Address") . " *: ". "get_ServerURL() . "\">". "
 
". - _("UserSuffix") . ": get_UserSuffix() . "\">" . _("Help") . "
". - _("GroupSuffix") . ": get_GroupSuffix() . "\">" . _("Help") . "
". - _("HostSuffix") . ": get_HostSuffix() . "\">" . _("Help") . "
". + _("DomainSuffix") . " **: get_DomainSuffix() . "\">" . _("Help") . "
". + _("MappingSuffix") . ": get_MapSuffix() . "\">" . _("Help") . "
"); echo ("
"); @@ -161,7 +173,7 @@ echo (" "); // Samba domain SID echo ("". - _("Domain SID (Samba 3 only)") . ": ". + _("Domain SID") . " **: ". "get_domainSID() . "\">\n"); echo ("" . _("Help") . "\n"); @@ -174,28 +186,28 @@ echo (""); // minUID echo ("\n"); // maxUID -echo ("\n"); // UID text echo ("\n"); // minGID echo ("\n"); // maxGID -echo ("\n"); // GID text echo ("\n"); // minMach echo ("\n"); // maxMach -echo ("\n"); // Machine text echo ("\n"); @@ -209,17 +221,17 @@ echo ("
". - _("Minimum UID number") . ": ". + _("Minimum UID number") . " *: ". "get_minUID() . "\">" . _("Maximum UID number") . ": ". +echo ("" . _("Maximum UID number") . " *: ". "get_maxUID() . "\">" . _("Help") . "
". - _("Minimum GID number") . ": ". + _("Minimum GID number") . " *: ". "get_minGID() . "\">" . _("Maximum GID number").": ". +echo ("" . _("Maximum GID number")." *: ". "get_maxGID() . "\">" . _("Help") . "
". - _("Minimum Machine number") . ": ". + _("Minimum Machine number") . " *: ". "get_minMachine() . "\">" . _("Maximum Machine number") . ": ". +echo ("" . _("Maximum Machine number") . " *: ". "get_maxMachine() . "\">" . _("Help") . "
\n"); // user list attributes echo ("". + _("Attributes in User List") . " *:". ""); echo ("\n"); // user list attributes echo ("". + _("Attributes in Group List") . " *:". ""); echo ("\n"); // user list attributes echo ("". + _("Attributes in Host List") . " *:". ""); echo ("\n"); @@ -227,7 +239,7 @@ echo ("\n"); // maximum list entries echo ("". + _("Maximum list entries") . " *: ". "
". - _("Attributes in User List") . ":get_userlistAttributes() . "\">" . _("Help") . "
". - _("Attributes in Group List") . ":get_grouplistAttributes() . "\">" . _("Help") . "
". - _("Attributes in Host List") . ":get_hostlistAttributes() . "\">" . _("Help") . "
 
". - _("Maximum list entries") . ": \n"); // language echo (""); -echo ("
" . _("Default Language") . "\n"); +echo ("" . _("Default Language") . ":\n"); // read available languages $languagefile = "../../config/language"; if(is_file($languagefile)) @@ -304,7 +316,7 @@ echo ("
" . _("Security settings") . "\n"); echo ("\n"); // admin list echo ("". + _("List of valid users") . " *: ". "\n"); echo ("\n"); echo ("
". - _("List of valid users") . ": get_Adminstring() . "\">" . _("Help") . "
\n"); @@ -340,6 +352,9 @@ echo ("
\n"); echo ("

"); +echo ("

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

"); +echo ("

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

"); + // password for configuration echo ("

\n"); diff --git a/lam/templates/config/confsave.php b/lam/templates/config/confsave.php index 0086dc0f..65d36bd3 100644 --- a/lam/templates/config/confsave.php +++ b/lam/templates/config/confsave.php @@ -42,6 +42,8 @@ if ($_SESSION['admins']) $admins = $_SESSION['admins']; if ($_SESSION['suffusers']) $suffusers = $_SESSION['suffusers']; if ($_SESSION['suffgroups']) $suffgroups = $_SESSION['suffgroups']; if ($_SESSION['suffhosts']) $suffhosts = $_SESSION['suffhosts']; +if ($_SESSION['suffdomains']) $suffdomains = $_SESSION['suffdomains']; +if ($_SESSION['suffmap']) $suffmap = $_SESSION['suffmap']; if ($_SESSION['minUID']) $minUID = $_SESSION['minUID']; if ($_SESSION['maxUID']) $maxUID = $_SESSION['maxUID']; if ($_SESSION['minGID']) $minGID = $_SESSION['minGID']; @@ -82,73 +84,83 @@ if (!$serverurl) { echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$admins) { - echo ("" . _("List of admin users is empty!") . ""); +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 ("" . _("List of admin users is empty or invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$suffusers) { - echo ("" . _("UserSuffix is empty!") . ""); +if (!$suffusers || !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffusers)) { + echo ("" . _("UserSuffix is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$suffgroups) { - echo ("" . _("UserSuffix is empty!") . ""); +if (!$suffgroups || !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffgroups)) { + echo ("" . _("UserSuffix is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$suffhosts) { - echo ("" . _("HostSuffix is empty!") . ""); +if (!$suffhosts || !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffhosts)) { + echo ("" . _("HostSuffix is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$minUID) { - echo ("" . _("MinUID is empty!") . ""); +if (($samba3 == "yes") && !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffdomains)) { + echo ("" . _("DomainSuffix is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$maxUID) { - echo ("" . _("MaxUID is empty!") . ""); +if ($suffmap && !eregi("^(([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)(,([a-z]|-|[0-9])*=([a-z]|-|[0-9])*)*$", $suffmap)) { + echo ("" . _("MappingSuffix is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$minGID) { - echo ("" . _("MinGID is empty!") . ""); +if (!$minUID || !is_numeric($minUID)) { + echo ("" . _("MinUID is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$maxGID) { - echo ("" . _("MaxGID is empty!") . ""); +if (!$maxUID || !is_numeric($maxUID)) { + echo ("" . _("MaxUID is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$minMach) { - echo ("" . _("MinMachine is empty!") . ""); +if (!$minGID || !is_numeric($minGID)) { + echo ("" . _("MinGID is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$maxMach) { - echo ("" . _("MaxMachine is empty!") . ""); +if (!$maxGID || !is_numeric($maxGID)) { + echo ("" . _("MaxGID is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$usrlstattr) { - echo ("" . _("No attributes in user list!") . ""); +if (!$minMach || !is_numeric($minMach)) { + echo ("" . _("MinMachine is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$grplstattr) { - echo ("" . _("No attributes in group list!") . ""); +if (!$maxMach || !is_numeric($maxMach)) { + echo ("" . _("MaxMachine is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$hstlstattr) { - echo ("" . _("No attributes in host list!") . ""); +if (!$usrlstattr || !eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $usrlstattr)) { + echo ("" . _("User list attributes are invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (!$maxlistentries) { - echo ("" . _("Max list entries is empty!") . ""); +if (!$grplstattr || !eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $grplstattr)) { + echo ("" . _("Group list attributes are invalid!") . ""); + echo ("\n


" . _("Back to preferences...") . ""); + exit; +} +if (!$hstlstattr || !eregi("^((#[a-z]*)|([a-z]*:[a-z*]))(;((#[a-z]*)|([a-z]*:[a-z]*)))*$", $hstlstattr)) { + echo ("" . _("Host list attributes are invalidUser list attributes are invalid!") . ""); + echo ("\n


" . _("Back to preferences...") . ""); + exit; +} +if (!$maxlistentries || !is_numeric($maxlistentries)) { + echo ("" . _("Max list entries is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } @@ -165,8 +177,20 @@ if (!$samba3) { exit; } -if (($samba3 == "yes") && (!$domainSID)) { - echo ("" . _("Samba 3 needs a domain SID!") . ""); +if (($samba3 == "yes") && !eregi("^S-[0-9]-[0-9]-[0-9]{2,2}-[0-9]*-[0-9]*-[0-9]*$", $domainSID)) { + echo ("" . _("Samba 3 domain SID is invalid!") . ""); + echo ("\n


" . _("Back to preferences...") . ""); + exit; +} + +if ($scriptpath && !eregi("^/[a-z0-9_\\-]+(/[a-z0-9_\\-]+)+$", $scriptpath)) { + echo ("" . _("Script path is invalid!") . ""); + echo ("\n


" . _("Back to preferences...") . ""); + exit; +} + +if ($scriptserver && !is_string($scriptserver)) { + echo ("" . _("Script server is invalid!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } @@ -177,6 +201,8 @@ $conf->set_Adminstring($admins); $conf->set_UserSuffix($suffusers); $conf->set_GroupSuffix($suffgroups); $conf->set_HostSuffix($suffhosts); +$conf->set_DomainSuffix($suffdomains); +$conf->set_MapSuffix($suffmap); $conf->set_minUID($minUID); $conf->set_maxUID($maxUID); $conf->set_minGID($minGID); @@ -190,11 +216,8 @@ $conf->set_MaxListEntries($maxlistentries); $conf->set_defaultLanguage($lang); $conf->set_samba3($samba3); $conf->set_domainSID($domainSID); -// optional -if ($_SESSION['scriptpath']) $conf->set_scriptpath($scriptpath); -else $conf->set_scriptpath(""); -if ($_SESSION['scriptserver']) $conf->set_scriptserver($scriptserver); -else $conf->set_scriptserver(""); +$conf->set_scriptpath($scriptpath); +$conf->set_scriptserver($scriptserver); @@ -225,6 +248,8 @@ session_unregister('admins'); session_unregister('suffusers'); session_unregister('suffgroups'); session_unregister('suffhosts'); +session_unregister('suffdomains'); +session_unregister('suffmap'); session_unregister('minUID'); session_unregister('maxUID'); session_unregister('minGID');