Ejemplo n.º 1
0
/**
 * Print out a hierarchy of groups
 *
 * @param LdapConnector $ldap
 * @param string $currentDn
 * @param array $open
 * @return void
 * @access public
 * @since 8/31/09
 */
function printHierarchy(LdapConnector $ldap, $currentDn, array $open, $tabs = "\n\t\t")
{
    print $tabs . "<li class='group'>";
    print "<a name='" . base64_encode($currentDn) . "'></a>";
    print "<a href='";
    if (in_array($currentDn, $open)) {
        $parentKey = array_search($currentDn, $open) + 1;
        if (isset($open[$parentKey])) {
            print getUrl('list_all', array('current' => base64_encode($open[$parentKey]))) . '#' . base64_encode($currentDn);
        } else {
            print getUrl('list_all');
        }
    } else {
        print getUrl('list_all', array('current' => base64_encode($currentDn))) . '#' . base64_encode($currentDn);
    }
    print "'>" . dnToName($currentDn) . "</a>";
    if (in_array($currentDn, $open)) {
        // If this is an OU, print out its children
        $children = $ldap->getList('(|(objectClass=group)(objectClass=organizationalUnit))', $currentDn, array('dn'));
        if (count($children)) {
            print $tabs . "<ul>";
            foreach ($children as $child) {
                printHierarchy($ldap, $child['dn'], $open, $tabs . "\t");
            }
            print $tabs . "</ul>";
        } else {
            $groups = $ldap->read('(objectClass=group)', $currentDn, array('managedby', 'member'));
            if (count($groups) == 1 && isset($groups[0]['member'])) {
                if (isset($groups[0]['managedby'][0])) {
                    print $tabs . "<ul class='manager'>";
                    print $tabs . "\t<li>Group Manager: " . dnToName($groups[0]['managedby'][0]) . "</li>";
                    print $tabs . "</ul>";
                }
                print $tabs . "<ul class='members'>";
                sort($groups[0]['member']);
                foreach ($groups[0]['member'] as $member) {
                    print $tabs . "\t<li>" . dnToName($member) . "</li>";
                }
                print $tabs . "</ul>";
            }
        }
    }
    print $tabs . "</li>";
}
Ejemplo n.º 2
0
<ul id='group_tree'>

<?php 
if (isset($_GET['current']) && $_GET['current']) {
    $current = base64_decode_fix($_GET['current'], true);
}
if (!isset($current) || !$current) {
    $current = $ldapConfig['BaseDN'];
}
$levels = ldap_explode_dn($current, 0);
unset($levels['count']);
$open = array();
while (count($levels) > 1) {
    $open[] = implode(',', $levels);
    array_shift($levels);
}
printHierarchy($ldap, $ldapConfig['BaseDN'], $open);
?>

</ul>