<?
include("common.php");
$attrs = array (
"location" => "l",
"lastname" => "sn",
"email" => "mail",
"mobile" => "mobile",
"firstname" => "givenName",
"phone" => "telephoneNumber",
"extension" => "corpTelephoneExtension",
"aliases" => "corpMailLocalAddress",
"uid" => "uid",
);
$sortkey = "lastname";
define("LDAP_FILTER_PEOPLE",
"(&(objectclass=corpPerson)" .
"(mail=*)" .
"(corpStatus=active)" .
"(|(corpType=employee)" .
"(corpType=contractor)" .
"(corpType=hourly)))");
if (!($search = ldap_search($_SESSION["bind_linkid"], LDAP_BASE_DN_PEOPLE,
LDAP_FILTER_PEOPLE, array_values($attrs))))
die("ldap search returned failure");
if (!($allusers = _ldap_get_entries($_SESSION["bind_linkid"], $search)))
die("search succeeded but returned no entries!");
if (!isset($allusers["count"]))
die("_ldap_get_entries had nothing to find!");
unset($allusers["count"]);
uasort($allusers, "sortcallback");
reset($allusers);
pagehead("Corporate Directory - Users", "User Directory",
MENU_NAVBAR_HEADER);
?>
<table valign=top align=left border=0 width="100%" cellspacing=0 cellpadding=1>
<tr> <td> </td> </tr>
<?
$rowclasses = array("tablecell", "tablealtcell");
foreach ($allusers as $user) {
$rowclass = next($rowclasses);
$rowclass = $rowclass? $rowclass: reset($rowclasses);
?> <tr valign=top class=<?echo($rowclass)?>>
<? printf("<td nowrap> " .
"<a href=\"/useredit.php?uid=%s\"> %s, %s </a> </td>\n",
$user[$attrs["uid"]][0], $user[$attrs["lastname"]][0],
$user[$attrs["firstname"]][0]);
?> <td>
<table width="100%" border=0 cellpadding=0 cellspacing=0>
<? if (isset($user[$attrs["phone"]])) {
printf("<tr>\n" .
"<td nowrap> %s </td>\n" .
"<td nowrap align=right> %s </td>\n",
$user[$attrs["location"]][0],
trim_telstring($user[$attrs["phone"]][0]));
}
if (isset($user[$attrs["extension"]])) {
printf("<tr>\n" .
"<td nowrap> %s </td>\n" .
"<td nowrap align=right> x%s </td>\n",
$user[$attrs["location"]][0],
$user[$attrs["extension"]][0]);
}
if (isset($user[$attrs["mobile"]])) {
printf("<tr>\n" .
"<td nowrap> mobile </td>\n" .
"<td nowrap align=right> %s </td>\n",
trim_telstring($user[$attrs["mobile"]][0]));
}
?> </table>
</td>
<td nowrap align=right>
<? printf(" %s <br> ", $user[$attrs["email"]][0]);
for ($n = $user[$attrs["aliases"]]["count"]; $n > 0; $n--) {
$fqalias = $user[$attrs["aliases"]][$n - 1];
if (strcmp($fqalias, $user[$attrs["email"]][0])) {
$uqalias = array();
if (!eregi("^([^@]*)", $fqalias, $uqalias))
die("eregi didn't match alias!");
printf("%s <br> ", $uqalias[1]);
}
}
?> </td>
<?
}
?>
</table>
<?
pagefoot();
function
trim_telstring ($s)
{
list($country, $area, $prefix, $num) = sscanf($s, "%s %s %s %s");
return (sprintf("(%s) %s-%s", $area, $prefix, $num));
}
?>