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}&amp;server_id={$server_id}&amp;container=" . rawurlencode($parent_container);
    }
    echo "&nbsp;<a href=\"{$up_href}\" style=\"text-decoration:none\">" . "<img src=\"images/up.png\"> Back Up...</a><br />\n";
    if (count($dn_list) == 0) {
        echo "&nbsp;&nbsp;&nbsp;(no entries)<br />\n";
    } else {
Example #4
0
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();