implemented adding and editing of domains
This commit is contained in:
parent
135c6ed96f
commit
06c7745c84
|
@ -148,11 +148,20 @@ if (($_GET['action'] == "edit") || ($_GET['action'] == "new")) {
|
||||||
// next RID
|
// next RID
|
||||||
echo "<td><b>" . _("Algorithmic RID Base") . ": </b></td>\n";
|
echo "<td><b>" . _("Algorithmic RID Base") . ": </b></td>\n";
|
||||||
echo "<td>\n";
|
echo "<td>\n";
|
||||||
echo "<input type=\"text\" name=\"dom_RIDbase\" value=\"" . $domain->RIDbase . "\">\n";
|
if ($_GET['action'] == "edit") echo $domain->RIDbase . "\n";
|
||||||
|
else echo "<input type=\"text\" name=\"dom_RIDbase\" value=\"" . $domain->RIDbase . "\">\n";
|
||||||
echo "</td>\n";
|
echo "</td>\n";
|
||||||
echo "</tr>\n";
|
echo "</tr>\n";
|
||||||
echo "</table>\n";
|
echo "</table>\n";
|
||||||
echo "</fieldset>\n";
|
echo "</fieldset>\n";
|
||||||
|
// post DN and old RID values
|
||||||
|
echo "<input type=\"hidden\" name=\"dom_DN\" value=\"" . $domain->dn . "\">";
|
||||||
|
echo "<input type=\"hidden\" name=\"dom_oldnextRID\" value=\"" . $domain->nextRID . "\">";
|
||||||
|
echo "<input type=\"hidden\" name=\"dom_oldnextUserRID\" value=\"" . $domain->nextUserRID . "\">";
|
||||||
|
echo "<input type=\"hidden\" name=\"dom_oldnextGroupRID\" value=\"" . $domain->nextGroupRID . "\">";
|
||||||
|
// edit or add operation
|
||||||
|
if ($_GET['action'] == "edit") echo "<input type=\"hidden\" name=\"edit\" value=\"yes\">";
|
||||||
|
else echo "<input type=\"hidden\" name=\"add\" value=\"yes\">";
|
||||||
echo "<p> </p>\n";
|
echo "<p> </p>\n";
|
||||||
echo "<p>\n";
|
echo "<p>\n";
|
||||||
echo "<input type=\"submit\" name=\"sub_save\" value=\"" . _("Submit") . "\">\n";
|
echo "<input type=\"submit\" name=\"sub_save\" value=\"" . _("Submit") . "\">\n";
|
||||||
|
@ -163,17 +172,122 @@ if (($_GET['action'] == "edit") || ($_GET['action'] == "new")) {
|
||||||
echo "</body>\n";
|
echo "</body>\n";
|
||||||
echo "</html>\n";
|
echo "</html>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// delete domain, ask if sure
|
// delete domain, ask if sure
|
||||||
elseif ($_GET['action'] == "delete") {
|
elseif ($_GET['action'] == "delete") {
|
||||||
|
// remove "\'" and make array
|
||||||
|
$DNs = str_replace("\\'", "", $_GET['DN']);
|
||||||
|
$DNs = explode(";", $DNs);
|
||||||
|
// display page
|
||||||
|
echo "<html>\n";
|
||||||
|
echo "<head>\n";
|
||||||
|
echo "<title>Domain Management</title>\n";
|
||||||
|
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/layout.css\">\n";
|
||||||
|
echo "</head>\n";
|
||||||
|
echo "<body>\n";
|
||||||
|
echo "<p> </p>\n";
|
||||||
|
echo "<p><b><font color=\"red\">" . _("Delete domain(s)?") . "</font></b></p>\n";
|
||||||
|
echo "<p> </p>\n";
|
||||||
|
for ($i = 0; $i < sizeof($DNs); $i++) {
|
||||||
|
echo "<p><b>" . $DNs[$i] . "</b></p>\n";
|
||||||
|
}
|
||||||
|
echo "<p> </p>\n";
|
||||||
|
echo "<form action=\"domain.php\" method=\"post\">\n";
|
||||||
|
echo "<input type=\"hidden\" name=\"delDN\" value=\"" . implode(";", $DNs) . "\">\n";
|
||||||
|
echo "<input type=\"submit\" name=\"sub_delete\" value=\"" . _("Delete") . "\">\n";
|
||||||
|
echo "<input type=\"submit\" name=\"sub_back\" value=\"" . _("Cancel") . "\">\n";
|
||||||
|
echo "</form>";
|
||||||
|
echo "</body>\n";
|
||||||
|
echo "</html>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// save domain
|
// save domain
|
||||||
elseif ($_POST['sub_save']) {
|
elseif ($_POST['sub_save']) {
|
||||||
|
echo "<html>\n";
|
||||||
|
echo "<head>\n";
|
||||||
|
echo "<title>Domain Management</title>\n";
|
||||||
|
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/layout.css\">\n";
|
||||||
|
echo "</head>\n";
|
||||||
|
echo "<body>\n";
|
||||||
|
// check input
|
||||||
|
if ($_POST['add'] && !eregi("^[a-z0-9_\\-]+$", $_POST['dom_name'])) StatusMessage("ERROR", "", _("Domain name is invalid!"));
|
||||||
|
elseif ($_POST['add'] && !eregi("^S-[0-9]-[0-9]-[0-9]{2,2}-[0-9]*-[0-9]*-[0-9]*$", $_POST['dom_SID'])) {
|
||||||
|
StatusMessage("ERROR", "", _("Samba 3 domain SID is invalid!"));
|
||||||
|
}
|
||||||
|
elseif ($_POST['dom_nextRID'] && !is_numeric($_POST['dom_nextRID'])) StatusMessage("ERROR", "", _("Next RID is not a number!"));
|
||||||
|
elseif ($_POST['dom_nextUserRID'] && !is_numeric($_POST['dom_nextUserRID'])) StatusMessage("ERROR", "", _("Next user RID is not a number!"));
|
||||||
|
elseif ($_POST['dom_nextGroupRID'] && !is_numeric($_POST['dom_nextGroupRID'])) StatusMessage("ERROR", "", _("Next group RID is not a number!"));
|
||||||
|
elseif ($_POST['add'] && !is_numeric($_POST['dom_RIDbase'])) StatusMessage("ERROR", "", _("Algorithmic RID base is not a number!"));
|
||||||
|
// edit entry
|
||||||
|
elseif ($_POST['edit'] == "yes") {
|
||||||
|
$success = true;
|
||||||
|
// change attributes
|
||||||
|
$attr = array();
|
||||||
|
if ($_POST['dom_nextRID'] != $_POST['dom_oldnextRID']) $attr['sambaNextRid'] = $_POST['dom_nextRID'];
|
||||||
|
if ($_POST['dom_nextUserRID'] != $_POST['dom_oldnextUserRID']) $attr['sambaNextUserRid'] = $_POST['dom_nextUserRID'];
|
||||||
|
if ($_POST['dom_nextGroupRID'] != $_POST['dom_oldnextGroupRID']) $attr['sambaNextGroupRid'] = $_POST['dom_nextGroupRID'];
|
||||||
|
if (sizeof($attr) > 0) $success = ldap_modify($_SESSION['ldap']->server(), $_POST['dom_DN'], $attr);
|
||||||
|
// change suffix
|
||||||
|
$RDN = explode(",", $_POST['dom_DN']);
|
||||||
|
$RDN = $RDN[0];
|
||||||
|
$newDN = $RDN . "," . $_POST['dom_suffix'];
|
||||||
|
if ($_POST['dom_DN'] != $newDN) {
|
||||||
|
$success = ldap_rename($_SESSION['ldap']->server(), $_POST['dom_DN'], $RDN, $_POST['dom_suffix'], true);
|
||||||
|
}
|
||||||
|
if ($success) StatusMessage("INFO", "Domain has been modified.", $DN);
|
||||||
|
else StatusMessage("ERROR", "", "Failed to modify domain!");
|
||||||
|
}
|
||||||
|
// add entry
|
||||||
|
else {
|
||||||
|
$DN = "sambaDomainName" . "=" . $_POST['dom_name'] . "," . $_POST['dom_suffix'];
|
||||||
|
$attr = array();
|
||||||
|
$attr['objectclass'] = "sambaDomain";
|
||||||
|
$attr['sambaDomainName'] = $_POST['dom_name'];
|
||||||
|
$attr['sambaSID'] = $_POST['dom_SID'];
|
||||||
|
$attr['sambaNextRid'] = $_POST['dom_nextRID'];
|
||||||
|
$attr['sambaNextGroupRid'] = $_POST['dom_nextGroupRID'];
|
||||||
|
$attr['sambaNextUserRid'] = $_POST['dom_nextUserRID'];
|
||||||
|
$attr['sambaAlgorithmicRidBase'] = $_POST['dom_RIDbase'];
|
||||||
|
// write to LDAP
|
||||||
|
if (ldap_add($_SESSION['ldap']->server(), $DN, $attr)) {
|
||||||
|
StatusMessage("INFO", "Domain has been created.", $DN);
|
||||||
|
}
|
||||||
|
else StatusMessage("ERROR", "", "Failed to add domain!");
|
||||||
|
}
|
||||||
|
echo "<p> </p>\n";
|
||||||
|
echo "<p><a href=\"lists/listdomains.php\">" . _("Back to domain list") . "</a></p>\n";
|
||||||
|
echo "</body>\n";
|
||||||
|
echo "</html>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// back to list
|
// back to list
|
||||||
elseif ($_POST['sub_back']) {
|
elseif ($_POST['sub_back']) {
|
||||||
|
echo("<meta http-equiv=\"refresh\" content=\"0; URL=lists/listdomains.php\">");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// delete domain, user was sure
|
// delete domain, user was sure
|
||||||
elseif ($_POST['sub_delete']) {
|
elseif ($_POST['sub_delete']) {
|
||||||
|
$DNs = explode(";", $_POST['delDN']);
|
||||||
|
// display page
|
||||||
|
echo "<html>\n";
|
||||||
|
echo "<head>\n";
|
||||||
|
echo "<title>Domain Management</title>\n";
|
||||||
|
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/layout.css\">\n";
|
||||||
|
echo "</head>\n";
|
||||||
|
echo "<body>\n";
|
||||||
|
// delete DNs
|
||||||
|
for ($i = 0; $i < sizeof($DNs); $i++) {
|
||||||
|
if (ldap_delete($_SESSION['ldap']->server(), $DNs[$i])) StatusMessage("INFO", "Domain deleted successfully.", $DNs[$i]);
|
||||||
|
else StatusMessage("ERROR", "Unable to delete domain!", $DNs[$i]);
|
||||||
|
}
|
||||||
|
echo "<p> </p>\n";
|
||||||
|
echo "<p><a href=\"lists/listdomains.php\">" . _("Back to domain list") . "</a></p>\n";
|
||||||
|
echo "</body>\n";
|
||||||
|
echo "</html>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue