示例#1
0
/**
 * Print an HTML block for a group, respecting permissions.
 *
 * @param LdapConnector $ldap
 * @param array $group The group result from an LDAP search.
 * @return void
 * @since 8/31/09
 */
function printGroupHtml(LdapConnector $ldap, array $group)
{
    $showControls = !empty($group['managedby'][0]) && $group['managedby'][0] == $_SESSION['user_dn'];
    $levels = dnToLevels($group['dn']);
    print "\n\t<fieldset class='group'>\n\t\t<legend>" . implode(' / ', $levels) . "</legend>";
    print "\n\t<div class='manager'>";
    print "\n\t<h2>Group Manager: </h2>";
    if (isset($group['managedby'][0])) {
        print dnToName($group['managedby'][0]);
    } else {
        print "<em>No manager set</em>";
    }
    if ($showControls) {
        print " <button class='change_manager'>Change</button>";
        print "\n\t\t<form class='change_manager_form' action='" . getUrl('change_manager') . "' method='post' style='display: none'>";
        print "\n\t\t<input type='hidden' name='group_id' value='" . base64_encode($group['dn']) . "'/>";
        print "\n\t\t<input type='hidden' name='new_manager' value=''/>";
        print "\n\t\t\t<input type='text' class='new_manager_search' size='50'/>";
        print "\n\t\t<input type='submit' class='set_new_manager_button' value='Set As Manager'/>";
        print "\n\t\t</form>";
    }
    print "\n\t</div>";
    print "\n\t<div class='members'>";
    print "\n\t<h2>Group Members: </h2>";
    print "\n\t\t<ul>";
    if (isset($group['member']) && is_array($group['member'])) {
        sort($group['member']);
        foreach ($group['member'] as $memberDN) {
            $members = $ldap->read('(objectclass=*)', $memberDN, array('givenName', 'sn', 'mail', 'cn', 'objectclass'));
            $member = $members[0];
            print "\n\t\t<li>" . result_to_name($member);
            if ($showControls) {
                print "\n\t\t\t<input type='hidden' class='group_id' value='" . base64_encode($group['dn']) . "'/>";
                print "\n\t\t\t<input type='hidden' class='member_id' value='" . base64_encode($memberDN) . "'/>";
                print "<button class='remove_button'>Remove</button>";
            }
            print "</li>";
        }
    }
    print "\n\t\t</ul>";
    if ($showControls) {
        print "\n\t\t<div class='add_member_controls'>";
        print "\n\t\t<input type='text' class='new_member' size='50'/>";
        print "\n\t\t\t<input type='hidden' class='group_id' value='" . base64_encode($group['dn']) . "'/>";
        print "\n\t\t<button class='add_button'>Add</button>";
        print "\n\t\t</div>";
        print "\n\t\t<div class='delete_controls'>";
        print "\n\t\t\t<input type='hidden' class='group_id' value='" . base64_encode($group['dn']) . "'/>";
        print "\n\t\t<button class='delete_button'>Delete Group</button>";
        print "\n\t\t</div>";
    }
    print "\n\t</div>";
    print "\n\t</fieldset>";
}
示例#2
0
$sortKeys = array();
foreach ($groups as $group) {
    $sortKeys[] = implode(' / ', dnToLevels($group['dn']));
}
array_multisort($sortKeys, $groups);
// PRint the groups
foreach ($groups as $group) {
    printGroupHtml($ldap, $group);
}
?>

</div>

<form action="<?php 
echo getUrl('create_group');
?>
" method="post" id="create_group_form">
	<p>Create a new group in
		<select name="container_dn" id="new_group_container_dn">
<?php 
foreach ($ldapConfig['WritableGroupContainers'] as $dn) {
    print "\n\t\t\t<option value=\"" . base64_encode($dn) . "\">" . implode(" / ", dnToLevels($dn)) . "</option>";
}
?>

		</select>
		 named
		<input type="text" name="new_group_name" id='new_group_name'/>
		<input type="submit" value="Create"/>
	</p>
</form>
示例#3
0
<div id='groups'>

<?php 
$groups = array();
foreach ($ldapConfig['WritableGroupContainers'] as $baseDN) {
    $query = '(objectClass=group)';
    $groups = array_merge($groups, $ldap->search($query, $baseDN, array('cn', 'managedby', 'member')));
}
$groups = array_values($groups);
// Sort the groups
$sortKeys = array();
foreach ($groups as $group) {
    $sortKeys[] = implode(' / ', dnToLevels($group['dn']));
}
array_multisort($sortKeys, $groups);
// Print the groups
foreach ($groups as $group) {
    printGroupHtml($ldap, $group);
}
?>

</div>