get_ActiveTypes(); // check if deletion was canceled if (isset($_POST['abort'])) { display_main(null, null); exit; } $error = null; $message = null; // check if submit button was pressed if (isset($_POST['createOU']) || isset($_POST['deleteOU'])) { // new ou if (isset($_POST['createOU'])) { // create ou if valid if (preg_match("/^[a-z0-9 _\\-]+$/i", $_POST['newOU'])) { // check if ou already exists $new_dn = "ou=" . $_POST['newOU'] . "," . $_POST['parentOU']; $found = ldapGetDN($new_dn); if ($found == null) { // add new ou $ou = array(); $ou['objectClass'] = "organizationalunit"; $ou['ou'] = $_POST['newOU']; $ret = @ldap_add($_SESSION['ldap']->server(), $new_dn, $ou); if ($ret) { $message = _("New OU created successfully."); } else { $error = _("Unable to create new OU!"); } } else $error = _("OU already exists!"); } // show errormessage if ou is invalid else { $error = _("OU is invalid!") . "
" . htmlspecialchars($_POST['newOU']); } } // delete ou, user was sure elseif (isset($_POST['deleteOU']) && isset($_POST['sure'])) { $ret = @ldap_delete($_SESSION['ldap']->server(), $_POST['deletename']); if ($ret) { $message = _("OU deleted successfully."); } else { $error = _("Unable to delete OU!"); } } // ask if user is sure to delete elseif (isset($_POST['deleteOU'])) { // check for sub entries $sr = @ldap_list($_SESSION['ldap']->server(), $_POST['deleteableOU'], "ObjectClass=*", array("")); $info = @ldap_get_entries($_SESSION['ldap']->server(), $sr); if ($sr && $info['count'] == 0) { // print header include 'main_header.php'; echo '
'; echo "
\n"; $tabindex = 1; $container = new htmlTable(); $label = new htmlOutputText(_("Do you really want to delete this OU?")); $label->colspan = 5; $container->addElement($label, true); $container->addElement(new htmlSpacer(null, '10px'), true); $dnLabel = new htmlOutputText(getAbstractDN($_POST['deleteableOU'])); $dnLabel->colspan = 5; $container->addElement($dnLabel, true); $container->addElement(new htmlSpacer(null, '10px'), true); $container->addElement(new htmlButton('sure', _("Delete"))); $container->addElement(new htmlButton('abort', _("Cancel"))); $container->addElement(new htmlHiddenInput('deleteOU', 'submit')); $container->addElement(new htmlHiddenInput('deletename', $_POST['deleteableOU'])); addSecurityTokenToMetaHTML($container); parseHtml(null, $container, array(), false, $tabindex, 'user'); echo "
"; echo '
'; include 'main_footer.php'; exit(); } else { $error = _("OU is not empty or invalid!"); } } } display_main($message, $error); /** * Displays the main page of the OU editor * * @param String $message info message * @param String $error error message */ function display_main($message, $error) { // display main page include 'main_header.php'; echo '
'; echo "
\n"; $tabindex = 1; $container = new htmlTable(); $container->addElement(new htmlSubTitle(_("OU editor")), true); if (isset($error)) { $msg = new htmlStatusMessage("ERROR", "", $error); $msg->colspan = 5; $container->addElement($msg, true); } elseif (isset($message)) { $msg = new htmlStatusMessage("INFO", "", $message); $msg->colspan = 5; $container->addElement($msg, true); } $types = array(); $typeList = $_SESSION['config']->get_ActiveTypes(); for ($i = 0; $i < sizeof($typeList); $i++) { if (isAccountTypeHidden($typeList[$i]) || !checkIfWriteAccessIsAllowed($typeList[$i])) { continue; } $types[$typeList[$i]] = LAM\TYPES\getTypeAlias($typeList[$i]); } natcasesort($types); $options = array(); foreach ($types as $name => $title) { $elements = array(); $units = searchLDAPByAttribute(null, null, 'organizationalunit', array('dn'), array($name)); for ($u = 0; $u < sizeof($units); $u++) { $elements[getAbstractDN($units[$u]['dn'])] = $units[$u]['dn']; } $options[$title] = $elements; } if (!empty($options)) { // new OU $container->addElement(new htmlOutputText(_("New organisational unit"))); $parentOUSelect = new htmlSelect('parentOU', $options, array()); $parentOUSelect->setContainsOptgroups(true); $parentOUSelect->setHasDescriptiveElements(true); $parentOUSelect->setRightToLeftTextDirection(true); $parentOUSelect->setSortElements(false); $container->addElement($parentOUSelect); $container->addElement(new htmlInputField('newOU')); $container->addElement(new htmlButton('createOU', _("Ok"))); $container->addElement(new htmlHelpLink('601'), true); $container->addElement(new htmlSpacer(null, '10px'), true); // delete OU $container->addElement(new htmlOutputText(_("Delete organisational unit"))); $deleteableOUSelect = new htmlSelect('deleteableOU', $options, array()); $deleteableOUSelect->setContainsOptgroups(true); $deleteableOUSelect->setHasDescriptiveElements(true); $deleteableOUSelect->setRightToLeftTextDirection(true); $deleteableOUSelect->setSortElements(false); $container->addElement($deleteableOUSelect); $container->addElement(new htmlOutputText('')); $container->addElement(new htmlButton('deleteOU', _("Ok"))); $container->addElement(new htmlHelpLink('602'), true); } addSecurityTokenToMetaHTML($container); parseHtml(null, $container, array(), false, $tabindex, 'user'); echo ("
\n"); echo '
'; include 'main_footer.php'; }