\n";
print "
User Lookup
\n";
print "
\n";
if(! empty($userid)) {
$loginid = $userid;
getAffilidAndLogin($loginid, $affilid);
if(empty($affilid)) {
print "{$matches[2]} is an unknown affiliation
\n";
return;
}
if($viewmode != ADMIN_DEVELOPER &&
$user['affiliationid'] != $affilid) {
print "You are only allowed to look up users from your own affiliation.
\n";
return;
}
$query = "SELECT id "
. "FROM user "
. "WHERE unityid = '$loginid' AND "
. "affiliationid = $affilid";
$qh = doQuery($query, 101);
if(! mysql_num_rows($qh))
print "
$userid not currently found in VCL user database, will try to add...\n";
$userdata = getUserInfo($userid);
if(is_null($userdata)) {
print "
$userid not found in any known systems\n";
return;
}
print "
\n";
print " \n";
print " First Name: | \n";
print " {$userdata["firstname"]} | \n";
print "
\n";
print " \n";
print " Last Name: | \n";
print " {$userdata["lastname"]} | \n";
print "
\n";
print " \n";
print " Preferred Name: | \n";
print " {$userdata["preferredname"]} | \n";
print "
\n";
print " \n";
print " Email: | \n";
print " {$userdata["email"]} | \n";
print "
\n";
print " \n";
print " Admin Level: | \n";
print " {$userdata["adminlevel"]} | \n";
print "
\n";
print " \n";
print " Groups: | \n";
print " \n";
uasort($userdata["groups"], "sortKeepIndex");
foreach($userdata["groups"] as $group) {
print " $group \n";
}
print " | \n";
print "
\n";
print " \n";
print " Privileges (found somewhere in the tree): | \n";
print " \n";
uasort($userdata["privileges"], "sortKeepIndex");
foreach($userdata["privileges"] as $priv) {
if($priv == "block" || $priv == "cascade")
continue;
print " $priv \n";
}
print " | \n";
print "
\n";
print "
\n";
# get user's resources
$userResources = getUserResources(array("imageCheckOut"), array("available"), 0, 0, $userdata['id']);
# find nodes where user has privileges
$query = "SELECT p.name AS privnode, "
. "upt.name AS userprivtype, "
. "up.privnodeid "
. "FROM userpriv up, "
. "privnode p, "
. "userprivtype upt "
. "WHERE up.privnodeid = p.id AND "
. "up.userprivtypeid = upt.id AND "
. "up.userid = {$userdata['id']} "
. "ORDER BY p.name, "
. "upt.name";
$qh = doQuery($query, 101);
if(mysql_num_rows($qh)) {
print "Nodes where user is granted privileges:
\n";
print "
\n";
$privnodeid = 0;
while($row = mysql_fetch_assoc($qh)) {
if($privnodeid != $row['privnodeid']) {
if($privnodeid) {
print " \n";
print " \n";
}
print " \n";
$privnodeid = $row['privnodeid'];
print " {$row['privnode']} | \n";
print " \n";
}
print " {$row['userprivtype']} \n";
}
print " | \n";
print "
\n";
print "
\n";
}
# find nodes where user's groups have privileges
if(! empty($userdata['groups'])) {
$query = "SELECT DISTINCT p.name AS privnode, "
. "upt.name AS userprivtype, "
. "up.privnodeid "
. "FROM userpriv up, "
. "privnode p, "
. "userprivtype upt "
. "WHERE up.privnodeid = p.id AND "
. "up.userprivtypeid = upt.id AND "
. "upt.name != 'cascade' AND "
. "upt.name != 'block' AND "
. "up.usergroupid IN (" . implode(',', array_keys($userdata['groups'])) . ") "
. "ORDER BY p.name, "
. "upt.name";
$qh = doQuery($query, 101);
if(mysql_num_rows($qh)) {
print "Nodes where user's groups are granted privileges:
\n";
print "
\n";
$privnodeid = 0;
while($row = mysql_fetch_assoc($qh)) {
if($privnodeid != $row['privnodeid']) {
if($privnodeid) {
print " \n";
print " \n";
}
print " \n";
$privnodeid = $row['privnodeid'];
print " {$row['privnode']} | \n";
print " \n";
}
print " {$row['userprivtype']} \n";
}
print " | \n";
print "
\n";
print "
\n";
}
}
print "
\n";
print " \n";
print " Images User Has Access To: | \n";
print " | \n";
foreach($userResources['image'] as $img)
print " $img \n";
print " | \n";
print "
\n";
print "
\n";
$requests = array();
$query = "SELECT l.start AS start, "
. "l.finalend AS end, "
. "c.hostname, "
. "i.prettyname AS prettyimage, "
. "l.ending "
. "FROM log l, "
. "image i, "
. "computer c, "
. "sublog s "
. "WHERE l.userid = {$userdata["id"]} AND "
. "s.logid = l.id AND "
. "i.id = s.imageid AND "
. "c.id = s.computerid "
. "ORDER BY l.start DESC "
. "LIMIT 5";
$qh = doQuery($query, 290);
while($row = mysql_fetch_assoc($qh))
array_push($requests, $row);
$requests = array_reverse($requests);
if(! empty($requests)) {
print "
User's last " . count($requests) . " reservations:
\n";
print "
\n";
$first = 1;
foreach($requests as $req) {
$thisstart = str_replace(' ', ' ',
prettyDatetime($req["start"]));
$thisend = str_replace(' ', ' ',
prettyDatetime($req["end"]));
if($first)
$first = 0;
else {
print " \n";
print "
| \n";
print "
\n";
}
print " \n";
print " Image: | \n";
print " {$req['prettyimage']} | \n";
print "
\n";
print " \n";
print " Computer: | \n";
print " {$req['hostname']} | \n";
print "
\n";
print " \n";
print " Start: | \n";
print " $thisstart | \n";
print "
\n";
print " \n";
print " End: | \n";
print " $thisend | \n";
print "
\n";
print " \n";
print " Ending: | \n";
print " {$req['ending']} | \n";
print "
\n";
}
print "
\n";
}
else
print "User made no reservations in the past week.
\n";
}
print "
\n";
}
////////////////////////////////////////////////////////////////////////////////
///
/// \fn recurseGetChildren($node)
///
/// \param $node - a node id
///
/// \return an array of nodes that are children of $node
///
/// \brief foreach child node of $node, adds it to an array and calls
/// self to add that child's children
///
////////////////////////////////////////////////////////////////////////////////
function recurseGetChildren($node) {
$children = array();
$qh = doQuery("SELECT id FROM privnode WHERE parent = $node", 340);
while($row = mysql_fetch_row($qh)) {
array_push($children, $row[0]);
$children = array_merge($children, recurseGetChildren($row[0]));
}
return $children;
}
////////////////////////////////////////////////////////////////////////////////
///
/// \fn printUserPrivRow($privname, $rownum, $privs, $types,
/// $cascadeprivs, $usergroup, $disabled)
///
/// \param $privname - privilege name
/// \param $rownum - number of the privilege row on this page
/// \param $privs - an array of user's privileges
/// \param $types - an array of privilege types
/// \param $cascadeprivs - an array of user's cascaded privileges
/// \param $usergroup - 'user' if this is a user row, or 'group' if this is a
/// group row
/// \param $disabled - 0 or 1; whether or not the checkboxes should be disabled
///
/// \brief prints a table row for this $privname
///
////////////////////////////////////////////////////////////////////////////////
function printUserPrivRow($privname, $rownum, $privs, $types,
$cascadeprivs, $usergroup, $disabled) {
$allprivs = $cascadeprivs + $privs;
print "