function pla_rdelete($server_id, $dn) { $children = get_container_contents($server_id, $dn); global $ds; $ds = pla_ldap_connect($server_id); if (!is_array($children) || count($children) == 0) { echo "<nobr>Deleting " . htmlspecialchars($dn) . "..."; flush(); if (ldap_delete($ds, $dn)) { echo " <span style=\"color:green\">Success</span></nobr><br />\n"; return true; } else { pla_error("Failed to delete dn: " . htmlspecialchars(utf8_decode($dn)), ldap_error($ds), ldap_errno($ds)); } } else { foreach ($children as $child_dn) { pla_rdelete($server_id, $child_dn); } echo "<nobr>Deleting " . htmlspecialchars($dn) . "..."; flush(); if (ldap_delete($ds, $dn)) { echo " <span style=\"color:green\">Success</span></nobr><br />\n"; return true; } else { pla_errror("Failed to delete dn: " . htmlspecialchars(utf8_decode($dn)), ldap_error($ds), ldap_errno($ds)); } } }
* - dn (rawurlencoded) * - server_id */ require 'common.php'; $dn = $_GET['dn']; $encoded_dn = rawurlencode($dn); $server_id = $_GET['server_id']; $rdn = pla_explode_dn($dn); $rdn = $rdn[0]; $server_name = $servers[$server_id]['name']; if (is_server_read_only($server_id)) { pla_error("You cannot perform updates while server is in read-only mode"); } check_server_id($server_id) or pla_error("Bad server_id: " . htmlspecialchars($server_id)); have_auth_info($server_id) or pla_error("Not enough information to login to server. Please check your configuration."); $children = get_container_contents($server_id, $dn); $has_children = count($children) > 0 ? true : false; ?> <?php include 'header.php'; ?> <body> <h3 class="title">Delete <b><?php echo htmlspecialchars(utf8_decode($rdn)); ?> </b></h3> <h3 class="subtitle">Server: <b><?php echo $server_name; ?>
require 'common.php'; $container = isset($_GET['container']) ? rawurldecode($_GET['container']) : false; $server_id = isset($_GET['server_id']) ? $_GET['server_id'] : false; $return_form_element = $_GET['form_element']; include "header.php"; echo "<h3 class=\"subtitle\">Automagic Entry Chooser</h3>\n"; if ($container) { echo "Server: <b>" . htmlspecialchars($servers[$server_id]['name']) . "</b><br />\n"; echo "Looking in: <b>" . htmlspecialchars($container) . "</b><br />\n"; } /* Has the use already begun to descend into a specific server tree? */ if ($server_id !== false && $container !== false) { check_server_id($server_id) or pla_error("Bad server_id: " . htmlspecialchars($server_id)); have_auth_info($server_id) or pla_error("Not enough information to login to server. " . "Please check your configuration."); pla_ldap_connect($server_id) or pla_error("Coult not connect to LDAP server."); $dn_list = get_container_contents($server_id, $container); $base_dn = $servers[$server_id]['base']; if (!$base_dn) { $base_dn = try_to_get_root_dn($server_id); } if ($container == $base_dn) { $parent_container = false; $up_href = "entry_chooser.php?form_element={$return_form_element}"; } else { $parent_container = get_container($container); $up_href = "entry_chooser.php?form_element={$return_form_element}&server_id={$server_id}&container=" . rawurlencode($parent_container); } echo " <a href=\"{$up_href}\" style=\"text-decoration:none\">" . "<img src=\"images/up.png\"> Back Up...</a><br />\n"; if (count($dn_list) == 0) { echo " (no entries)<br />\n"; } else {
function build_tree($source_server_id, $root_dn, &$tree) { $children = get_container_contents($source_server_id, $root_dn); if (is_array($children) && count($children) > 0) { $tree[$root_dn] = $children; foreach ($children as $child_dn) { build_tree($source_server_id, $child_dn, $tree); } } }
*/ require 'common.php'; $server_id = $_GET['server_id']; if (!check_server_id($server_id) || !have_auth_info($server_id)) { header("Location: tree.php"); } session_start(); if (!session_is_registered('tree')) { header("Location: tree.php"); } $tree = $_SESSION['tree']; $tree_icons = $_SESSION['tree_icons']; // Get the icon for the base object for this server $base_dn = $servers[$server_id]['base']; $tree_icons[$server_id][$base_dn] = get_icon($server_id, $base_dn); // get all the icons and container contents for all expanded entries if ($tree[$server_id] && is_array($tree[$server_id])) { foreach ($tree[$server_id] as $dn => $children) { $tree[$server_id][$dn] = get_container_contents($server_id, $dn); foreach ($tree[$server_id][$dn] as $child_dn) { $tree_icons[$server_id][$child_dn] = get_icon($server_id, $child_dn); } sort($tree[$server_id][$dn]); } } else { header("Location: tree.php#{$server_id}"); } $_SESSION['tree'] = $tree; $_SESSION['tree_icons'] = $tree_icons; session_write_close(); header("Location: tree.php#{$server_id}");
header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); $dn = $_GET['dn']; $encoded_dn = rawurlencode($dn); $server_id = $_GET['server_id']; check_server_id($server_id) or pla_error("Bad server_id: " . htmlspecialchars($server_id)); have_auth_info($server_id) or pla_error("Not enough information to login to server. Please check your configuration."); session_start(); // dave commented this out since it was being triggered without reason in rare cases //session_is_registered( 'tree' ) or pla_error( "Your session tree is not registered. That's weird. Should never happen". // ". Just go back and it should be fixed automagically." ); $tree = $_SESSION['tree']; $tree_icons = $_SESSION['tree_icons']; pla_ldap_connect($server_id) or pla_error("Could not connect to LDAP server"); $contents = get_container_contents($server_id, $dn); //echo "<pre>"; //var_dump( $contents ); //exit; sort($contents); $tree[$server_id][$dn] = $contents; foreach ($contents as $dn) { $tree_icons[$server_id][$dn] = get_icon($server_id, $dn); } $_SESSION['tree'] = $tree; $_SESSION['tree_icons'] = $tree_icons; session_write_close(); // This is for Opera. By putting "random junk" in the query string, it thinks // that it does not have a cached version of the page, and will thus // fetch the page rather than display the cached version $time = gettimeofday();