added domain SID to preferences

This commit is contained in:
Roland Gruber 2003-06-19 19:01:00 +00:00
parent 6f65c533e6
commit 9387613301
5 changed files with 66 additions and 4 deletions

View File

@ -91,6 +91,9 @@ $helpArray = array (
"213" => array ("ext" => "FALSE", "Headline" => _("Configuration Wizard - Samba version"),
"Text" => _("If you use Samba 3.x with the new LDAP schema say \"yes\" here, otherwise \"no\".".
"<br><br><b>LAM will not work if version is wrong!</b>")),
"214" => array ("ext" => "FALSE", "Headline" => _("Configuration Wizard - Samba domain SID"),
"Text" => _("If you use the new Samba 3.x schema enter your domain SID here.".
"<br><br>You can get your domain SID with this command: <b>net getlocalsid</b>")),
// 300 - 399
// Roland Gruber
// profile editor
@ -150,6 +153,9 @@ $helpArray = array (
"Text" => _("This is primary group for the Samba machine account.")),
"371" => array ("ext" => "FALSE", "Headline" => _("Profile Editor - Domain"),
"Text" => _("This is the Windows domain name.")),
// 400 - 499
// Tilo Lutz
// account.php
"400" => array ("ext" => "FALSE", "Headline" => _("Username"),
"Text" => _("Username of the user which should be created. Valid characters are: a-z,0-9, .-_. Lam doesn't allow a number as first
character because it's impossible to create a homedirectory starting with a number. Lam doesn't allow capital letters A-Z because it

View File

@ -90,6 +90,9 @@ class Config {
// if "yes" use the new LDAP schema for Samba 3.x
var $samba3;
// Samba 3 domain SIDs
var $domainSID;
// constructor, loads preferences from ../config/lam.conf
function Config() {
$this->reload();
@ -186,6 +189,10 @@ class Config {
$this->samba3 = chop(substr($line, 8, strlen($line)-8));
continue;
}
if (substr($line, 0, 11) == "domainSID: ") {
$this->domainSID = chop(substr($line, 11, strlen($line)-11));
continue;
}
}
fclose($file);
}
@ -202,7 +209,7 @@ class Config {
$save_serverURL = $save_passwd = $save_admins = $save_suffusr = $save_suffgrp = $save_suffhst =
$save_minUID = $save_maxUID = $save_minGID = $save_maxGID = $save_minMach = $save_maxMach =
$save_usrlstatrr = $save_grplstatrr = $save_hstlstatrr = $save_maxlstent = $save_deflang =
$save_scriptPath = $save_scriptServer = $save_samba3 = False;
$save_scriptPath = $save_scriptServer = $save_samba3 = $save_domainSID = False;
$file = fopen($conffile, "r");
$file_array = array();
while (!feof($file)) {
@ -312,6 +319,11 @@ class Config {
$save_samba3 = True;
continue;
}
if (substr($file_array[$i], 0, 11) == "domainSID: ") {
$file_array[$i] = "domainSID: " . $this->domainSID . "\n";
$save_domainSID = True;
continue;
}
}
// check if we have to add new entries (e.g. if user upgraded LAM and has an old lam.conf)
if (!$save_serverURL == True) array_push($file_array, "\n\n# server address (e.g. ldap://localhost:389 or ldaps://localhost:636)\n" . "serverURL: " . $this->ServerURL);
@ -342,6 +354,7 @@ class Config {
if (!$save_scriptPath == True) array_push($file_array, "\n\n# Path to external Script\n" . "scriptPath: " . $this->scriptPath);
if (!$save_scriptServer == True) array_push($file_array, "\n\n# Server of external Script\n" . "scriptServer: " . $this->scriptServer);
if (!$save_samba3 == True) array_push($file_array, "\n\n# Set to \"yes\" only if you use the new Samba 3.x schema.\n" . "samba3: " . $this->samba3);
if (!$save_domainSID == True) array_push($file_array, "\n\n# Samba 3 domain SID. Set only if you use the new Samba 3.x schema.\n" . "domainSID: " . $this->domainSID);
$file = fopen($conffile, "w");
if ($file) {
for ($i = 0; $i < sizeof($file_array); $i++) fputs($file, $file_array[$i]);
@ -358,6 +371,7 @@ class Config {
function printconf() {
echo _("<b>ServerURL: </b>") . $this->ServerURL . "<br>";
echo _("<b>Samba3: </b>") . $this->samba3 . "<br>";
echo _("<b>Domain SID: </b>") . $this->domainSID . "<br>";
echo _("<b>UserSuffix: </b>") . $this->Suff_users . "<br>";
echo _("<b>GroupSuffix: </b>") . $this->Suff_groups . "<br>";
echo _("<b>HostSuffix: </b>") . $this->Suff_hosts . "<br>";
@ -641,6 +655,20 @@ class Config {
else StatusMessage("WARN", "", _("Config->set_samba3 failed!") . " " . $value);
}
// returns the Samba domain SID (Samba 3 only)
function get_domainSID() {
return $this->domainSID;
}
// sets the Samba domain SID (Samba 3 only)
function set_domainSID($value) {
if (!$value) $value = ""; // optional parameter
if (is_string($value) && eregi("^(S-[0-9]-[0-9]-[0-9]{2,2}-[0-9]{10,10}-[0-9]{10,10}-[0-9]{10,10})|()$", $value)) {
$this->domainSID = $value;
}
else StatusMessage("WARN", "", _("Config->set_domainSID failed!") . " " . $value);
}
}

View File

@ -57,13 +57,15 @@ if ($_POST['back'] || $_POST['submitconf']){
if ($_POST['language']) $language = $_POST['language'];
if ($_POST['scriptpath']) $scriptpath = $_POST['scriptpath'];
if ($_POST['samba3']) $samba3 = $_POST['samba3'];
if ($_POST['domainSID']) $domainSID = $_POST['domainSID'];
if ($_POST['scriptpath']) $scriptpath = $_POST['scriptpath'];
else $scriptpath = "";
if ($_POST['scriptserver']) $scriptserver = $_POST['scriptserver'];
else $scriptserver = "";
session_register('passwd', 'passwd1', 'passwd2', 'serverurl', 'admins', 'suffusers',
'suffgroups', 'suffhosts', 'minUID', 'maxUID', 'minGID', 'maxGID', 'minMach',
'maxMach', 'usrlstattr', 'grplstattr', 'hstlstattr', 'maxlistentries', 'language',
'scriptpath', 'scriptserver', 'samba3');
'scriptpath', 'scriptserver', 'samba3', 'domainSID');
echo("<meta http-equiv=\"refresh\" content=\"0; URL=confsave.php\">");
}
// back to login
@ -135,8 +137,12 @@ echo ("<tr><td align=\"right\"><b>".
"<td><input size=50 type=\"text\" name=\"suffhosts\" value=\"" . $conf->get_HostSuffix() . "\"></td>\n");
echo ("<td><a href=\"../help.php?HelpNumber=202\" target=\"lamhelp\">" . _("Help") . "</a></td></tr>\n");
// new line
echo ("<tr><td colspan=3>&nbsp</td></tr>");
echo ("</table>");
echo ("</fieldset>");
echo ("<p></p>");
echo ("<fieldset><legend><b>" . _("Samba settings") . "</b></legend>");
echo ("<table border=0>");
// Samba version
echo ("<tr><td align=\"right\"><b>".
@ -145,6 +151,15 @@ if ($conf->get_samba3() == "yes") echo ("<option>yes</option><option>no</option>
else echo ("<option>no</option><option>yes</option></select></td>");
echo ("<td><a href=\"../help.php?HelpNumber=213\" target=\"lamhelp\">" . _("Help") . "</a></td></tr>\n");
// new line
echo ("<tr><td colspan=3>&nbsp</td></tr>");
// Samba domain SID
echo ("<tr><td align=\"right\"><b>".
_("Domain SID (Samba 3 only)") . ": </b></td>".
"<td><input size=50 type=\"text\" name=\"domainSID\" value=\"" . $conf->get_domainSID() . "\"></td>\n");
echo ("<td><a href=\"../help.php?HelpNumber=214\" target=\"lamhelp\">" . _("Help") . "</a></td></tr>\n");
echo ("</table>");
echo ("</fieldset>");
echo ("<p></p>");

View File

@ -54,6 +54,7 @@ if ($_SESSION['language']) $language = $_SESSION['language'];
if ($_SESSION['scriptpath']) $scriptpath = $_SESSION['scriptpath'];
if ($_SESSION['scriptserver']) $scriptserver = $_SESSION['scriptserver'];
if ($_SESSION['samba3']) $samba3 = $_SESSION['samba3'];
if ($_SESSION['domainSID']) $domainSID = $_SESSION['domainSID'];
// check if password is correct
// if not: load login page
@ -161,6 +162,12 @@ if (chop($samba3) == "") {
exit;
}
if ((chop($samba3) == "yes") && (($domainSID == "") || (!$domainSID))) {
echo _("<font color=\"red\"><b>" . _("Samba 3 needs a domain SID!") . "</b></font>");
echo ("\n<br><br><br><a href=\"javascript:history.back()\">" . _("Back to preferences...") . "</a>");
exit;
}
// set new preferences
$conf->set_ServerURL($serverurl);
$conf->set_Adminstring($admins);
@ -179,6 +186,7 @@ $conf->set_hostlistAttributes($hstlstattr);
$conf->set_MaxListEntries($maxlistentries);
$conf->set_defaultLanguage($language);
$conf->set_samba3($samba3);
$conf->set_domainSID($domainSID);
// optional
if ($_SESSION['scriptpath']) $conf->set_scriptpath($scriptpath);
else $conf->set_scriptpath("");
@ -228,5 +236,6 @@ unset($_SESSION['language']);
unset($_SESSION['scriptpath']);
unset($_SESSION['scriptserver']);
unset($_SESSION['samba3']);
unset($_SESSION['domainSID']);
?>

View File

@ -52,6 +52,7 @@ $defaultlanguage = $conf->get_defaultlanguage();
$scriptpath = $conf->get_scriptPath();
$scriptServer = $conf->get_scriptServer();
$samba3 = $conf->get_samba3();
$domainSID = $conf->get_domainSID();
echo ("done<br>");
// next we modify them and save lam.conf
echo ("Changing preferences...");
@ -76,6 +77,7 @@ $conf->set_defaultlanguage("de_AT:iso639_de:Deutsch (Oesterreich)");
$conf->set_scriptPath("/var/www/lam/lib/script");
$conf->set_scriptServer("127.0.0.1");
$conf->set_samba3("yes");
$conf->set_domainSID("S-0-1-22-1234567890-1234567890-1234567890");
$conf->save();
echo ("done<br>");
// at last all preferences are read from lam.conf and compared
@ -104,6 +106,7 @@ if ($conf->get_defaultlanguage() != "de_AT:iso639_de:Deutsch (Oesterreich)") ech
if ($conf->get_scriptPath() != "/var/www/lam/lib/script") echo ("<br><font color=\"#FF0000\">Saving script path failed!</font><br>");
if ($conf->get_scriptServer() != "127.0.0.1") echo ("<br><font color=\"#FF0000\">Saving script server failed!</font><br>");
if ($conf->get_samba3() != "yes") echo ("<br><font color=\"#FF0000\">Saving samba3 failed!</font><br>");
if ($conf->get_domainSID() != "S-0-1-22-1234567890-1234567890-1234567890") echo ("<br><font color=\"#FF0000\">Saving domainSID failed!</font><br>");
echo ("done<br>");
// restore old values
echo ("Restoring old preferences...");
@ -128,6 +131,7 @@ $conf->set_defaultLanguage($defaultlanguage);
$conf->set_scriptPath($scriptpath);
$conf->set_scriptServer($scriptserver);
$conf->set_samba3($samba3);
$conf->set_domainSID($domainSID);
$conf->save();
echo ("done<br>");
// finished