Example #1
0
$everyone = array();
$tree = new MozillaTreeAdapter($everyone);
$auth = new MozillaAuthAdapter();
$data = array();
foreach ($tree->conf as $conf) {
    $search = ldap_search($ldapconn, $conf["ldap_search_base"], $conf["ldap_search_filter"], $conf["ldap_search_attributes"]);
    $data = array_merge($data, ldap_get_entries($ldapconn, $search));
}
$tree_view_roots = $tree->roots;
foreach ($data as $person) {
    $mail = $person['mail'][0];
    $everyone[$mail] = $tree->process_entry($person);
    // If a user has a manager, try to find their place in the tree.
    // Unless they're a root themselves.
    if (!in_array($mail, $tree_view_roots) && !empty($person["manager"][0])) {
        $manager = $auth->dn_to_email($person["manager"][0]);
        if (empty($people[$manager])) {
            $people[$manager] = array($mail);
        } else {
            $people[$manager][] = $mail;
        }
    } elseif (!empty($mail) && !in_array($mail, $tree_view_roots)) {
        // Person is an orphan.
        $orphans[] = $mail;
    }
}
$managers = array_keys($people);
$visible_managers = array();
function make_tree($level, $root, $nodes = NULL)
{
    global $people;