\n";
}
print "
Privilege Tree \n";
$cont = addContinuationsEntry('AJrefreshNodeDropData');
print "
";
$cont = addContinuationsEntry('JSONprivnodelist');
print "
\n";
print " \n";
print "
\n";
$cont = addContinuationsEntry('AJmoveNode');
print "
";
print "
\n";
print "
\n";
print "
\n";
print "
\n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print "
\n";
print "
\n"; # privtreeparent
print "
\n";
print "
Loading Drag and Drop data...
\n";
print "
\n";
$cont = addContinuationsEntry('selectNode');
print "
\n";
# privileges
print "
Privileges at Selected Node \n";
$node = $activeNode;
$nodeInfo = getNodeInfo($node);
$privs = getNodePrivileges($node);
$cascadePrivs = getNodeCascadePrivileges($node);
$usertypes = getTypes("users");
$i = 0;
$hasUserGrant = checkUserHasPriv("userGrant", $user["id"], $node,
$privs, $cascadePrivs);
$hasResourceGrant = checkUserHasPriv("resourceGrant", $user["id"],
$node, $privs, $cascadePrivs);
print "
\n";
# users
print "
\n";
print "
\n";
print "
Users \n";
print "
\n";
print "
\n";
# groups
print "
\n";
print "
\n";
print "
User Groups \n";
if(count($privs["usergroups"]) || count($cascadePrivs["usergroups"])) {
print "
\n";
print "
\n";
# resources
$resourcetypes = getResourcePrivs();
print "
\n";
print "
\n";
print "
Resources \n";
print "
\n";
print "
\n";
print "
\n";
# ----------------------------- dialogs ----------------------------
print "
\n";
print " \n";
print "
Add User \n";
print "
\n";
print "
\n";
print "
\n";
print "
\n";
print "\n";
print " \n";
print " Submit New User\n";
print " \n";
print " \n";
print " \n";
print "\n";
print " \n";
print " Cancel\n";
print " \n";
print " \n";
print " \n";
print "
\n";
$cont = addContinuationsEntry('AJsubmitAddUserPriv');
print "
\n";
print "
\n";
print "
\n";
print " \n";
print "
Add User Group \n";
print "
\n";
print "
\n";
print "
\n";
print "
\n";
print "\n";
print " \n";
print " Submit New User Group\n";
print " \n";
print " \n";
print " \n";
print "\n";
print " \n";
print " Cancel\n";
print " \n";
print " \n";
print " \n";
print "
\n";
$cont = addContinuationsEntry('AJsubmitAddUserGroupPriv');
print "
\n";
print "
\n";
print "
\n";
print " \n";
print "
Add Resource Group \n";
print "
\n";
print "
\n";
print " \n";
print " \n";
print " Block Cascaded Rights \n";
print " Cascade to Child Nodes \n";
foreach($resourcetypes as $type) {
if($type == 'block' || $type == 'cascade')
continue;
print " \n";
}
print " \n";
print " \n";
print " \n";
$resources = array();
$privs = array("computerAdmin", "mgmtNodeAdmin", "imageAdmin",
"scheduleAdmin", "serverProfileAdmin");
$resourcesgroups = getUserResources($privs, array("manageGroup"), 1);
foreach(array_keys($resourcesgroups) as $type) {
foreach($resourcesgroups[$type] as $id => $group) {
$resources[$id] = $type . "/" . $group;
}
}
printSelectInput("newresourcegroupid", $resources, -1, 0, 0, 'newresourcegroupid');
print " \n";
# block rights
print " \n";
#cascade rights
print " ";
print " \n";
# normal rights
$i = 1;
foreach($resourcetypes as $type) {
if($type == 'block' || $type == 'cascade')
continue;
print " \n";
$i++;
}
print " \n";
print "
\n";
print "
\n";
print "
\n";
print "\n";
print " \n";
print " Submit New Resource Group\n";
print " \n";
print " \n";
print " \n";
print "\n";
print " \n";
print " Cancel\n";
print " \n";
print " \n";
print " \n";
print "
\n";
$cont = addContinuationsEntry('AJsubmitAddResourcePriv');
print "
\n";
print "
\n";
print "
\n";
print "
Add Child Node \n";
print "
\n";
print "
New Node: \n";
print "
\n";
print " \n";
print "\n";
print "
\n";
print "
\n";
print "\n";
print " \n";
print " Create Child\n";
print " \n";
print " \n";
print " \n";
print "\n";
print " \n";
print " Cancel\n";
print " \n";
print " \n";
print " \n";
print "
\n";
$cont = addContinuationsEntry('AJsubmitAddChildNode');
print "
";
print "
\n";
print "
\n";
print "Delete the following node and all of its children?
\n";
print "
\n";
print "
\n";
print "
\n";
print "\n";
print " \n";
print " Delete Nodes\n";
print " \n";
print " \n";
print " \n";
print "\n";
print " \n";
print " Cancel\n";
print " \n";
print " \n";
print " \n";
print "
\n";
$cont = addContinuationsEntry('AJsubmitDeleteNode');
print "
";
print "
\n";
print "
\n";
print "
\n";
print "
\n";
print "Move the following node and all of its children?
\n";
print "
Node: \n";
print "
\n";
print "
Old Parent: \n";
print "
\n";
print "
New Parent: \n";
print "
\n";
print "
\n";
print "
\n";
print "\n";
print " \n";
print " Move Node(s)\n";
print " \n";
print " \n";
print " \n";
print "\n";
print " \n";
print " Cancel\n";
print " \n";
print " \n";
print " \n";
print "
\n";
print "
\n";
print "
\n";
print "
\n";
print "
\n";
print "Undo the previous node move?
\n";
print "
\n";
print "
\n";
print "\n";
print " \n";
print " Undo Move\n";
print " \n";
print " \n";
print " \n";
print "\n";
print " \n";
print " Cancel\n";
print " \n";
print " \n";
print " \n";
print "
\n";
print "
\n";
print "
\n";
print "
\n";
print "
\n";
print "Loading...\n";
print " \n";
print "
\n";
if(! $hasManagePerms)
return;
print "
\n"; # end privtree tab
print "\n";
print "
User Lookup \n";
print "
\n";
if(! empty($userid)) {
$esc_userid = mysql_real_escape_string($userid);
if(preg_match('/,/', $userid)) {
$mode = 'name';
$force = 0;
}
else
$mode = 'userid';
if(! checkUserHasPerm('User Lookup (global)') &&
$user['affiliationid'] != $affilid) {
print "
$userid not found \n";
return;
}
if($mode == 'userid') {
$query = "SELECT id "
. "FROM user "
. "WHERE unityid = '$esc_userid' AND "
. "affiliationid = $affilid";
$affilname = getAffiliationName($affilid);
$userid = "$userid@$affilname";
$esc_userid = "$esc_userid@$affilname";
}
else {
$tmp = explode(',', $userid);
$last = mysql_real_escape_string(trim($tmp[0]));
$first = mysql_real_escape_string(trim($tmp[1]));
$query = "SELECT CONCAT(u.unityid, '@', a.name) AS unityid "
. "FROM user u, "
. "affiliation a "
. "WHERE u.firstname = '$first' AND "
. "u.lastname = '$last' AND "
. "u.affiliationid = $affilid AND "
. "a.id = $affilid";
}
$qh = doQuery($query, 101);
if(! mysql_num_rows($qh)) {
if($mode == 'name') {
print "
User not found \n";
return;
}
else
print "
$userid not currently found in VCL user database, will try to add... \n";
}
elseif($force) {
$_SESSION['userresources'] = array();
$row = mysql_fetch_assoc($qh);
$newtime = unixToDatetime(time() - SECINDAY - 5);
$query = "UPDATE user SET lastupdated = '$newtime' WHERE id = {$row['id']}";
doQuery($query, 101);
}
elseif($mode == 'name') {
$row = mysql_fetch_assoc($qh);
$userid = $row['unityid'];
$esc_userid = $row['unityid'];
}
$userdata = getUserInfo($esc_userid);
if(is_null($userdata)) {
$userdata = getUserInfo($esc_userid, 1);
if(is_null($userdata)) {
print "
$userid not found \n";
return;
}
}
$userdata["groups"] = getUsersGroups($userdata["id"], 1, 1);
print "
\n";
print "
\n";
if(! empty($userdata['unityid'])) {
print " \n";
print " User ID: \n";
print " {$userdata["unityid"]} \n";
print " \n";
}
if(! empty($userdata['firstname'])) {
print " \n";
print " First Name: \n";
print " {$userdata["firstname"]} \n";
print " \n";
}
if(! empty($userdata['lastname'])) {
print " \n";
print " Last Name: \n";
print " {$userdata["lastname"]} \n";
print " \n";
}
if(! empty($userdata['preferredname'])) {
print " \n";
print " Preferred Name: \n";
print " {$userdata["preferredname"]} \n";
print " \n";
}
if(! empty($userdata['affiliation'])) {
print " \n";
print " Affiliation: \n";
print " {$userdata["affiliation"]} \n";
print " \n";
}
if(! empty($userdata['email'])) {
print " \n";
print " Email: \n";
print " {$userdata["email"]} \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 " User Group Permissions: \n";
print " \n";
if(count($userdata['groupperms'])) {
foreach($userdata['groupperms'] as $perm)
print " $perm \n";
}
else
print " No additional user group permissions\n";
print " \n";
print " \n";
$times = getUserMaxTimes($userdata['id']);
$times['initial'] = getReservationLength($times['initial']);
$times['extend'] = getReservationLength($times['extend']);
$times['total'] = getReservationLength($times['total']);
print " \n";
print " User Max Times: \n";
print " \n";
print " Initial: {$times['initial']} \n";
print " Extend: {$times['extend']} \n";
print " Total: {$times['total']} \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 "
. "upt.name NOT IN ('configAdmin', 'serverProfileAdmin') 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'];
$path = getNodePath($privnodeid);
print " $path \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 "
. "upt.name NOT IN ('configAdmin', 'serverProfileAdmin') 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'];
$path = getNodePath($privnodeid);
print " $path \n";
print " \n";
}
print " {$row['userprivtype']} \n";
}
print " \n";
print " \n";
print "
\n";
}
}
print "
\n";
# image access
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";
# login history
$query = "SELECT authmech, "
. "timestamp, "
. "passfail, "
. "remoteIP, "
. "code "
. "FROM loginlog "
. "WHERE (user = '{$userdata['unityid']}' OR "
. "user = '{$userdata['unityid']}@{$userdata['affiliation']}') AND "
. "affiliationid = {$userdata['affiliationid']} "
. "ORDER BY timestamp DESC "
. "LIMIT 8";
$logins = array();
$qh = doQuery($query);
while($row = mysql_fetch_assoc($qh))
$logins[] = $row;
if(count($logins)) {
$logins = array_reverse($logins);
print "
Login History (last 8 attempts) \n";
print "
\n";
print "\n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " \n";
print " Authentication Method \n";
print " Timestamp \n";
print " Result \n";
print " Remote IP \n";
print " Extra Info \n";
print " \n";
foreach($logins as $login) {
print " \n";
print " {$login['authmech']} \n";
$ts = prettyDatetime($login['timestamp'], 1) . ' ' . date('T');
print " $ts \n";
if($login['passfail'])
print " Pass \n";
else
print " Fail \n";
print " {$login['remoteIP']} \n";
print " {$login['code']} \n";
print " \n";
}
print "
\n";
}
else {
print "
Login History \n";
print "There are no login attempts by this user.
\n";
}
# reservation history
$requests = array();
$query = "SELECT DATE_FORMAT(l.start, '%W, %b %D, %Y, %h:%i %p') AS start, "
. "DATE_FORMAT(l.finalend, '%W, %b %D, %Y, %h:%i %p') AS end, "
. "c.hostname, "
. "i.prettyname AS prettyimage, "
. "l.remoteIP AS userIP, "
. "s.IPaddress, "
. "l.ending, "
. "l.requestid, "
. "m.hostname AS managementnode, "
. "ch.hostname AS vmhost "
. "FROM log l, "
. "image i, "
. "sublog s "
. "LEFT JOIN managementnode m ON (s.managementnodeid = m.id) "
. "LEFT JOIN computer c ON (s.computerid = c.id) "
. "LEFT JOIN vmhost vh ON (c.vmhostid = vh.id) "
. "LEFT JOIN computer ch ON (vh.computerid = ch.id) "
. "WHERE l.userid = {$userdata['id']} AND "
. "s.logid = l.id AND "
. "i.id = s.imageid "
. "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";
print "
\n";
$first = 1;
foreach($requests as $req) {
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";
if($req['vmhost'] != '') {
print " \n";
print " VM Host: \n";
print " {$req['vmhost']} \n";
print " \n";
}
print " \n";
print " Start: \n";
print " {$req['start']} " . date('T') . " \n";
print " \n";
print " \n";
print " End: \n";
print " {$req['end']} " . date('T') . " \n";
print " \n";
if($req['IPaddress'] != '') {
print " \n";
print " Node's IP Address: \n";
print " {$req['IPaddress']} \n";
print " \n";
}
if($req['userIP'] != '') {
print " \n";
print " User's IP Address: \n";
print " {$req['userIP']} \n";
print " \n";
}
print " \n";
print " Ending: \n";
print " {$req['ending']} \n";
print " \n";
if($req['requestid'] != '') {
print " \n";
print " Request ID: \n";
print " {$req['requestid']} \n";
print " \n";
}
if($req['managementnode'] != '') {
print " \n";
print " Management Node: \n";
print " {$req['managementnode']} \n";
print " \n";
}
}
print "
\n";
print "
\n";
}
else
print "User has made no reservations.
\n";
# current reservations
$requests = array();
$query = "SELECT DATE_FORMAT(rq.start, '%W, %b %D, %Y, %h:%i %p') AS start, "
. "DATE_FORMAT(rq.end, '%W, %b %D, %Y, %h:%i %p') AS end, "
. "rq.id AS requestid, "
. "MIN(rs.id) AS reservationid, "
. "c.hostname AS computer, "
. "i.prettyname AS prettyimage, "
. "c.IPaddress AS compIP, "
. "rs.remoteIP AS userIP, "
. "ch.hostname AS vmhost, "
. "mn.hostname AS managementnode, "
. "srq.name AS servername, "
. "CONCAT(aug.name, '@', auga.name) AS admingroup, "
. "CONCAT(lug.name, '@', luga.name) AS logingroup, "
. "s1.name AS state, "
. "s2.name AS laststate "
. "FROM image i, "
. "managementnode mn, "
. "request rq "
. "LEFT JOIN reservation rs ON (rs.requestid = rq.id) "
. "LEFT JOIN computer c ON (rs.computerid = c.id) "
. "LEFT JOIN vmhost vh ON (c.vmhostid = vh.id) "
. "LEFT JOIN computer ch ON (vh.computerid = ch.id) "
. "LEFT JOIN serverrequest srq ON (srq.requestid = rq.id) "
. "LEFT JOIN usergroup aug ON (aug.id = srq.admingroupid) "
. "LEFT JOIN affiliation auga ON (aug.affiliationid = auga.id) "
. "LEFT JOIN usergroup lug ON (lug.id = srq.logingroupid) "
. "LEFT JOIN affiliation luga ON (lug.affiliationid = luga.id) "
. "LEFT JOIN state s1 ON (s1.id = rq.stateid) "
. "LEFT JOIN state s2 ON (s2.id = rq.laststateid) "
. "WHERE rq.userid = {$userdata['id']} AND "
. "i.id = rs.imageid AND "
. "mn.id = rs.managementnodeid "
. "GROUP BY rq.id "
. "ORDER BY rq.start";
$qh = doQuery($query, 290);
while($row = mysql_fetch_assoc($qh))
array_push($requests, $row);
$requests = array_reverse($requests);
if(! empty($requests)) {
print "
User's current reservations: \n";
print "
\n";
$first = 1;
foreach($requests as $req) {
if($first)
$first = 0;
else {
print " \n";
print " \n";
print " \n";
}
print " \n";
print " Request ID: \n";
print " {$req['requestid']} \n";
print " \n";
if($req['servername'] != '') {
print " \n";
print " Reservation Name: \n";
print " {$req['servername']} \n";
print " \n";
}
print " \n";
print " Image: \n";
print " {$req['prettyimage']} \n";
print " \n";
print " \n";
print " State: \n";
if($req['state'] == 'pending')
print " {$req['laststate']} \n";
else
print " {$req['state']} \n";
print " \n";
print " \n";
print " Computer: \n";
print " {$req['computer']} \n";
print " \n";
if(! empty($req['vmhost'])) {
print " \n";
print " VM Host: \n";
print " {$req['vmhost']} \n";
print " \n";
}
print " \n";
print " Start: \n";
print " {$req['start']} " . date('T') . " \n";
print " \n";
print " \n";
print " End: \n";
if($req['end'] == 'Friday, Jan 1st, 2038, 12:00 AM')
print " (indefinite) \n";
else
print " {$req['end']} " . date('T') . " \n";
print " \n";
if($req['compIP'] != '') {
print " \n";
print " Node's IP Address: \n";
print " {$req['compIP']} \n";
print " \n";
}
if($req['userIP'] != '') {
print " \n";
print " User's IP Address: \n";
print " {$req['userIP']} \n";
print " \n";
}
if($req['admingroup'] != '') {
print " \n";
print " Admin Group: \n";
print " {$req['admingroup']} \n";
print " \n";
}
if($req['logingroup'] != '') {
print " \n";
print " Access Group: \n";
print " {$req['logingroup']} \n";
print " \n";
}
print " \n";
print " Management Node: \n";
print " {$req['managementnode']} \n";
print " \n";
}
print "
\n";
}
else
print "User does not have any current reservations.
\n";
# reservation access
if(! empty($userdata['groups'])) {
$requests = array();
$query = "SELECT DATE_FORMAT(rq.start, '%W, %b %D, %Y, %h:%i %p') AS start, "
. "DATE_FORMAT(rq.end, '%W, %b %D, %Y, %h:%i %p') AS end, "
. "rq.id AS requestid, "
. "MIN(rs.id) AS reservationid, "
. "c.hostname AS computer, "
. "i.prettyname AS prettyimage, "
. "c.IPaddress AS compIP, "
. "ch.hostname AS vmhost, "
. "mn.hostname AS managementnode, "
. "srq.name AS servername, "
. "CONCAT(aug.name, '@', auga.name) AS admingroup, "
. "CONCAT(lug.name, '@', luga.name) AS logingroup, "
. "s1.name AS state, "
. "s2.name AS laststate "
. "FROM image i, "
. "managementnode mn, "
. "request rq "
. "LEFT JOIN reservation rs ON (rs.requestid = rq.id) "
. "LEFT JOIN computer c ON (rs.computerid = c.id) "
. "LEFT JOIN vmhost vh ON (c.vmhostid = vh.id) "
. "LEFT JOIN computer ch ON (vh.computerid = ch.id) "
. "LEFT JOIN serverrequest srq ON (srq.requestid = rq.id) "
. "LEFT JOIN usergroup aug ON (aug.id = srq.admingroupid) "
. "LEFT JOIN affiliation auga ON (aug.affiliationid = auga.id) "
. "LEFT JOIN usergroup lug ON (lug.id = srq.logingroupid) "
. "LEFT JOIN affiliation luga ON (lug.affiliationid = luga.id) "
. "LEFT JOIN state s1 ON (s1.id = rq.stateid) "
. "LEFT JOIN state s2 ON (s2.id = rq.laststateid) "
. "WHERE (srq.admingroupid IN (" . implode(',', array_keys($userdata['groups'])) . ") OR "
. "srq.logingroupid IN (" . implode(',', array_keys($userdata['groups'])) . ")) AND "
. "i.id = rs.imageid AND "
. "mn.id = rs.managementnodeid AND "
. "rq.userid != {$userdata['id']} "
. "GROUP BY rq.id "
. "ORDER BY rq.start";
$qh = doQuery($query, 290);
while($row = mysql_fetch_assoc($qh))
array_push($requests, $row);
$requests = array_reverse($requests);
if(! empty($requests)) {
print "
Server Reservations User Can Use: \n";
print "
\n";
$first = 1;
foreach($requests as $req) {
if($first)
$first = 0;
else {
print " \n";
print " \n";
print " \n";
}
print " \n";
print " Request ID: \n";
print " {$req['requestid']} \n";
print " \n";
if($req['servername'] != '') {
print " \n";
print " Reservation Name: \n";
print " {$req['servername']} \n";
print " \n";
}
print " \n";
print " Image: \n";
print " {$req['prettyimage']} \n";
print " \n";
print " \n";
print " State: \n";
if($req['state'] == 'pending')
print " {$req['laststate']} \n";
else
print " {$req['state']} \n";
print " \n";
print " \n";
print " Computer: \n";
print " {$req['computer']} \n";
print " \n";
if(! empty($req['vmhost'])) {
print " \n";
print " VM Host: \n";
print " {$req['vmhost']} \n";
print " \n";
}
print " \n";
print " Start: \n";
print " {$req['start']} " . date('T') . " \n";
print " \n";
print " \n";
print " End: \n";
if($req['end'] == 'Friday, Jan 1st, 2038, 12:00 AM')
print " (indefinite) \n";
else
print " {$req['end']} " . date('T') . " \n";
print " \n";
if($req['compIP'] != '') {
print " \n";
print " Node's IP Address: \n";
print " {$req['compIP']} \n";
print " \n";
}
if($req['admingroup'] != '') {
print " \n";
print " Admin Group: \n";
print " {$req['admingroup']} \n";
print " \n";
}
if($req['logingroup'] != '') {
print " \n";
print " Access Group: \n";
print " {$req['logingroup']} \n";
print " \n";
}
print " \n";
print " Management Node: \n";
print " {$req['managementnode']} \n";
print " \n";
}
print "
\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 "