function editOrAddMgmtnode($state) { global $submitErr; $mgmtnodes = getManagementNodes(); $premodules = getPredictiveModules(); if ($submitErr || $state == 1) { $data = processMgmtnodeInput(0); } else { $data["mgmtnodeid"] = getContinuationVar("mgmtnodeid"); $id = $data["mgmtnodeid"]; $data["hostname"] = $mgmtnodes[$id]["hostname"]; $data["IPaddress"] = $mgmtnodes[$id]["IPaddress"]; $data["owner"] = $mgmtnodes[$id]["owner"]; $data["stateid"] = $mgmtnodes[$id]["stateid"]; $data["premoduleid"] = $mgmtnodes[$id]["predictivemoduleid"]; $data["checkininterval"] = $mgmtnodes[$id]["checkininterval"]; $data["installpath"] = $mgmtnodes[$id]["installpath"]; if ($mgmtnodes[$id]['imagelibenable']) { $data['imagelibenable'] = "checked"; } else { $data['imagelibenable'] = ""; } $data['imagelibgroupid'] = $mgmtnodes[$id]['imagelibgroupid']; $data['imagelibgroup'] = $mgmtnodes[$id]['imagelibgroup']; # TODO this can be removed $data['imagelibuser'] = $mgmtnodes[$id]['imagelibuser']; $data['imagelibkey'] = $mgmtnodes[$id]['imagelibkey']; $data['keys'] = $mgmtnodes[$id]['keys']; $data['sshport'] = $mgmtnodes[$id]['sshport']; } $disabled = ''; if (!$data['imagelibenable']) { $disabled = 'disabled'; } print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print "<DIV align=center>\n"; if ($state) { print "<H2>Add Management Node</H2>\n"; } else { print "<H2>Edit Management Node</H2>\n"; } print "<TABLE>\n"; print " <TR>\n"; print " <TH align=right>Hostname:</TH>\n"; print " <TD><INPUT type=text name=hostname value=\"{$data["hostname"]}\" "; print "maxlength=50></TD>\n"; print " <TD>"; printSubmitErr(MNHOSTNAMEERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>IP address:</TH>\n"; print " <TD><INPUT type=text name=IPaddress value=\""; print $data["IPaddress"] . "\" maxlength=15></TD>\n"; print " <TD>"; printSubmitErr(IPADDRESSERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Owner:</TH>\n"; print " <TD><INPUT type=text name=owner value=\"" . $data["owner"]; print "\"></TD>\n"; print " <TD>"; printSubmitErr(MNOWNERERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>State:</TH>\n"; print " <TD>\n"; $mgmtnodestates = array(2 => "available", 1 => "deleted", 10 => "maintenance", 5 => "failed"); printSelectInput("stateid", $mgmtnodestates, $data["stateid"]); print " </TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Predictive Loading Module:</TH>\n"; print " <TD>\n"; printSelectInput("premoduleid", $premodules, $data["premoduleid"]); print " </TD>\n"; print " </TR>\n"; # checkininterval print " <TR>\n"; print " <TH id=th1 align=right\n"; print " onmouseover=\"showHelp('interval between database checks for new tasks', 'th1');\"\n"; print " onmouseout=\"clearHelpbox();\">\n"; print " Check-in Interval (sec):\n"; print " </TH>\n"; print " <TD>\n"; print " <input dojoType=\"dijit.form.NumberSpinner\"\n"; print " value=\"{$data['checkininterval']}\"\n"; print " constraints=\"{min:5,max:30,places:0}\"\n"; print " maxlength=\"2\"\n"; print " id=\"checkininterval\"\n"; print " name=\"checkininterval\">\n"; print " </TD>\n"; print " <TD></TD>"; print " </TR>\n"; # installpath print " <TR>\n"; print " <TH id=th2 align=right\n"; print " onmouseover=\"showHelp('path to parent directory of image repository directories', 'th2');\"\n"; print " onmouseout=\"clearHelpbox();\">\n"; print " Install Path:</TH>\n"; print " <TD><INPUT type=text name=installpath value=\""; print $data["installpath"] . "\" maxlength=100></TD>\n"; print " <TD>"; printSubmitErr(MNINSTPATHERR); print "</TD>\n"; print " </TR>\n"; # keys print " <TR>\n"; print " <TH id=th5 align=right\n"; print " onmouseover=\"showHelp('comma delimited list of full paths to ssh identity keys to try when connecting to end nodes (optional)', 'th5');\"\n"; print " onmouseout=\"clearHelpbox();\">\n"; print " End Node SSH Identity Key Files:</TH>\n"; print " <TD><INPUT type=text name=keys value=\""; print $data["keys"] . "\" maxlength=1024></TD>\n"; print " <TD>"; printSubmitErr(MNSSHIDKEYSERR); print "</TD>\n"; print " </TR>\n"; # sshport print " <TR>\n"; print " <TH id=th6 align=right\n"; print " onmouseover=\"showHelp('SSH port this node is listening on for image file transfers', 'th6');\"\n"; print " onmouseout=\"clearHelpbox();\">\n"; print " SSH Port for this node:\n"; print " </TH>\n"; print " <TD>\n"; print " <input dojoType=\"dijit.form.NumberSpinner\"\n"; print " value=\"{$data['sshport']}\"\n"; print " constraints=\"{min:1,max:65535,places:0}\"\n"; print " maxlength=\"5\"\n"; print " id=\"sshport\"\n"; print " name=\"sshport\">\n"; print " </TD>\n"; print " <TD>"; printSubmitErr(MNSSHPORTERR); print "</TD>\n"; print " </TR>\n"; # imagelibenable print " <TR>\n"; print " <TH id=th7 align=right\n"; print " onmouseover=\"showHelp('path to parent directory of image repository directories', 'th7');\"\n"; print " onmouseout=\"clearHelpbox();\">\n"; print " Enable Image Library:</TH>\n"; print " <TD><input type=checkbox name=imagelibenable value=1 "; print $data["imagelibenable"] . " onchange=\"toggleImageLibrary();\" \n"; if ($data['imagelibenable']) { print "id=imagelibenable checked></TD>\n"; } else { print "id=imagelibenable></TD>\n"; } print " <TD></TD>\n"; print " </TR>\n"; # imagelibgroupid print " <TR>\n"; print " <TH id=th8 align=right\n"; print " onmouseover=\"showHelp('this management node will try to get image files from other nodes in the selected group', 'th8');\"\n"; print " onmouseout=\"clearHelpbox();\">\n"; print " Image Library Management Node Group:</TH>\n"; print " <TD>"; $mgmtnodegroups = getUserResources(array('mgmtNodeAdmin'), array("manageGroup"), 1); printSelectInput("imagelibgroupid", $mgmtnodegroups['managementnode'], -1, 0, 0, 'imagelibgroupid', $disabled); print " </TD>\n"; print " <TD>"; printSubmitErr(MNIMGLIBGRPIDERR); print "</TD>\n"; print " </TR>\n"; # imagelibuser print " <TR>\n"; print " <TH id=th3 align=right\n"; print " onmouseover=\"showHelp('userid to use when scp\\'ing image files from another management node', 'th3');\"\n"; print " onmouseout=\"clearHelpbox();\">\n"; print " Image Library User:</TH>\n"; print " <TD><INPUT type=text name=imagelibuser value=\""; print $data["imagelibuser"] . "\" {$disabled} id=imagelibuser></TD>\n"; print " <TD>"; printSubmitErr(MNIMGLIBUSERERR); print "</TD>\n"; print " </TR>\n"; # imagelibkey print " <TR>\n"; print " <TH id=th4 align=right\n"; print " onmouseover=\"showHelp('path to ssh identity key file to use when scp\\'ing image files from another management node', 'th4');\"\n"; print " onmouseout=\"clearHelpbox();\">\n"; print " Image Library SSH Identity Key File:</TH>\n"; print " <TD><INPUT type=text name=imagelibkey value=\""; print $data["imagelibkey"] . "\" maxlength=100 {$disabled} id=imagelibkey></TD>\n"; print " <TD>"; printSubmitErr(MNIMGLIBKEYERR); print "</TD>\n"; print " </TR>\n"; print "</TABLE>\n"; print "<TABLE>\n"; print " <TR valign=top>\n"; print " <TD>\n"; if ($state) { $cdata = array('mgmtgroups' => $mgmtnodegroups['managementnode']); $cont = addContinuationsEntry('confirmAddMgmtnode', $cdata, SECINDAY, 0, 1, 1); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Confirm Management Node\">\n"; } else { $cdata = array('mgmtnodeid' => $data['mgmtnodeid'], 'mgmtgroups' => $mgmtnodegroups['managementnode']); $cont = addContinuationsEntry('confirmEditMgmtnode', $cdata, SECINDAY, 0, 1, 1); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Confirm Changes\">\n"; } print " </FORM>\n"; print " </TD>\n"; print " <TD>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; $cont = addContinuationsEntry('viewMgmtnodes'); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=Cancel>\n"; print " </FORM>\n"; print " </TD>\n"; print " </TR>\n"; print "</TABLE>\n"; print "<div id=helpbox onmouseover=\"blockClear();\" onmouseout=\"clearHelpbox2(0);\"></div>\n"; }
function editOrAddGroup($state) { global $submitErr, $user, $mode; $usergroups = getUserGroups(); $type = getContinuationVar("type"); if ($state) { $isowner = 1; } elseif ($type == 'resource') { $isowner = getContinuationVar('isowner'); } if (!$state) { $groupid = getContinuationVar('groupid', processInputVar('groupid', ARG_NUMERIC)); if ($type == 'user') { if (!array_key_exists($groupid, $usergroups)) { print "<h2>Edit User Group</h2>\n"; print "The selected user group does not exist.\n"; return; } $isowner = 0; if ($usergroups[$groupid]['ownerid'] != $user['id']) { if ($usergroups[$groupid]['custom'] == 0 || $usergroups[$groupid]['courseroll'] == 1) { if (!checkUserHasPerm('Manage Federated User Groups (global)') && (!checkUserHasPerm('Manage Federated User Groups (affiliation only)') || $usergroups[$groupid]['groupaffiliationid'] != $user['affiliationid'])) { print "<h2>Edit User Group</h2>\n"; print "You do not have access to modify the selected user group.\n"; return; } else { $isowner = 1; } } elseif (!array_key_exists("editgroupid", $usergroups[$groupid]) || !array_key_exists($usergroups[$groupid]["editgroupid"], $user["groups"])) { print "<h2>Edit User Group</h2>\n"; print "You do not have access to modify the selected user group.\n"; return; } } else { $isowner = 1; } } else { $userresources = getUserResources(array("groupAdmin"), array("manageGroup"), 1); $noaccess = 1; foreach (array_keys($userresources) as $rtype) { if (array_key_exists($groupid, $userresources[$rtype])) { $noaccess = 0; break; } } if ($noaccess) { print "<h2>Edit Resource Group</h2>\n"; print "You do not have access to modify the selected resource group.\n"; return; } } } $allcustomgroups = getUserGroups(1); if ($user['showallgroups']) { $affilusergroups = $allcustomgroups; } else { $affilusergroups = getUserGroups(1, $user['affiliationid']); } $defaultusergroupid = getUserGroupID('Default for Editable by', 1); if ($type == 'resource') { $dispUserGrpIDs = array(); $dispUserGrpIDsAllAffils = array(); foreach (array_keys($allcustomgroups) as $id) { # figure out if user is owner or in editor group $owner = 0; $editor = 0; if ($allcustomgroups[$id]["ownerid"] == $user["id"]) { $owner = 1; } if (array_key_exists("editgroupid", $allcustomgroups[$id]) && array_key_exists($allcustomgroups[$id]["editgroupid"], $user["groups"])) { $editor = 1; } if (!$owner && !$editor) { continue; } if ($user['showallgroups']) { $dispUserGrpIDs[$id] = $allcustomgroups[$id]['name']; } elseif (array_key_exists($id, $affilusergroups) && $allcustomgroups[$id]['groupaffiliation'] == $user['affiliation']) { $dispUserGrpIDs[$id] = $allcustomgroups[$id]['name']; } $dispUserGrpIDsAllAffils[$id] = $allcustomgroups[$id]['name']; } } $resourcegroups = getResourceGroups(); $affils = getAffiliations(); $resourcetypes = getTypes("resources"); if ($submitErr) { $data = processGroupInput(0); if ($mode == "submitEditGroup") { $id = $data["groupid"]; if ($data["type"] == "resource") { list($grouptype, $junk) = explode('/', $resourcegroups[$id]["name"]); $ownerid = $resourcegroups[$id]["ownerid"]; } } else { if ($data["type"] == "resource") { if ($state) { $grouptype = $resourcetypes['resources'][$data['resourcetypeid']]; } else { list($grouptype, $junk) = explode('/', $resourcegroups[$data['groupid']]["name"]); } $ownerid = $data["ownergroup"]; } else { $selectAffil = getContinuationVar('selectAffil'); if (empty($selectAffil) && $user['showallgroups']) { $selectAffil = 1; } } } } else { $data["groupid"] = getContinuationVar("groupid"); $data["type"] = getContinuationVar("type"); $data["isowner"] = $isowner; if (!$state) { $id = $groupid; $data['groupid'] = $id; } else { $id = $data["groupid"]; } if ($data["type"] == "user") { if ($state) { $data["name"] = ''; $data["affiliationid"] = $user['affiliationid']; $data["owner"] = $user['unityid']; if (array_key_exists('VCLEDITGROUPID', $_COOKIE) && (array_key_exists($_COOKIE['VCLEDITGROUPID'], $affilusergroups) || $_COOKIE['VCLEDITGROUPID'] == $defaultusergroupid)) { $data["editgroupid"] = $_COOKIE['VCLEDITGROUPID']; } else { $data["editgroupid"] = $defaultusergroupid; } if (!array_key_exists($data['editgroupid'], $affilusergroups)) { if ($user['showallgroups']) { $affil = getAffiliationName(1); $affilusergroups[$data['editgroupid']]['name'] = "Default for Editable by@{$affil}"; } else { $affilusergroups[$data['editgroupid']]['name'] = 'Default for Editable by'; } } $data["initialmax"] = 240; $data["totalmax"] = 360; $data["maxextend"] = 30; $data["overlap"] = 0; $data["custom"] = 1; $data["courseroll"] = 0; $tmp = explode('@', $data['name']); $data['name'] = $tmp[0]; if ($user['showallgroups']) { $selectAffil = 1; } else { $selectAffil = 0; } } else { $data["name"] = $usergroups[$id]["name"]; $data["affiliationid"] = $usergroups[$id]["groupaffiliationid"]; $data["owner"] = $usergroups[$id]["owner"]; $data["editgroupid"] = $usergroups[$id]["editgroupid"]; $data["initialmax"] = $usergroups[$id]["initialmaxtime"]; $data["totalmax"] = $usergroups[$id]["totalmaxtime"]; $data["maxextend"] = $usergroups[$id]["maxextendtime"]; $data["overlap"] = $usergroups[$id]["overlapResCount"]; $data["custom"] = $usergroups[$id]["custom"]; $data["courseroll"] = $usergroups[$id]["courseroll"]; $tmp = explode('@', $data['name']); $data['name'] = $tmp[0]; if ($user['showallgroups'] || array_key_exists(1, $tmp) && $tmp[1] != $user['affiliation']) { $selectAffil = 1; } else { $selectAffil = 0; } } } else { unset($affilusergroups[$defaultusergroupid]); if ($state) { $grouptype = 'computer'; $data['name'] = ''; if (array_key_exists('VCLOWNERGROUPID', $_COOKIE) && array_key_exists($_COOKIE['VCLOWNERGROUPID'], $user['groups'])) { $ownerid = $_COOKIE['VCLOWNERGROUPID']; } else { $ownerid = ""; foreach (array_keys($user["groups"]) as $grpid) { if (array_key_exists($grpid, $dispUserGrpIDs)) { $ownerid = $grpid; break; } } } } else { list($grouptype, $data["name"]) = explode('/', $resourcegroups[$id]["name"]); $ownerid = $resourcegroups[$id]["ownerid"]; } } } if ($data['type'] == 'user' && !array_key_exists($defaultusergroupid, $affilusergroups)) { if ($user['showallgroups']) { $affil = getAffiliationName(1); $affilusergroups[$defaultusergroupid]['name'] = "Default for Editable by@{$affil}"; } else { $affilusergroups[$defaultusergroupid]['name'] = 'Default for Editable by'; } uasort($affilusergroups, "sortKeepIndex"); } $editusergroup = 0; if ($data['type'] != 'user') { print "<FORM action=\"" . BASEURL . SCRIPT . "#resources\" method=post>\n"; } else { print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; } print "<DIV align=center>\n"; if ($state) { if ($data["type"] == "user") { print "<H2>Add User Group</H2>\n"; } else { print "<H2>Add Resource Group</H2>\n"; } } else { if ($data["type"] == "user") { print "<H2>Edit User Group</H2>\n"; print "{$usergroups[$data['groupid']]['name']}<br><br>\n"; if ($data['courseroll'] == 1) { print "Type: Course Roll<br><br>\n"; } elseif ($data['custom'] == 0) { print "Type: Federated<br><br>\n"; } $editusergroup = 1; } else { print "<H2>Edit Resource Group</H2>\n"; } } if ($state && $data["type"] == "user" || $data["isowner"] || $data["type"] == "resource") { print "<TABLE>\n"; if ($data["type"] == "resource") { print " <TR>\n"; print " <TH align=right>Type:</TH>\n"; print " <TD>\n"; if ($state && $submitErr) { $resourcetypeid = $data['resourcetypeid']; } else { $resourcetypeid = array_search($grouptype, $resourcetypes["resources"]); } if ($state) { printSelectInput("resourcetypeid", $resourcetypes["resources"], $resourcetypeid); } else { print " {$grouptype}\n"; } print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; } $editname = 1; if ($data['type'] == 'user' && $state == 0 && $usergroups[$groupid]['groupaffiliationid'] == 1) { $tmp = explode('@', $usergroups[$groupid]['name']); if ($tmp[0] == 'Specify End Time' || $tmp[0] == 'Allow No User Check' || $tmp[0] == 'Default for Editable by') { $editname = 0; } } if ($data['type'] == 'resource' || $editname && $data['courseroll'] == 0 && $data['custom'] == 1) { print " <TR>\n"; print " <TH align=right>Name:</TH>\n"; print " <TD><INPUT type=text name=name value=\"{$data['name']}\" "; print "maxlength=30>"; if ($data['type'] == 'user' && $selectAffil) { print "@"; printSelectInput('affiliationid', $affils, $data['affiliationid']); } print "</TD>\n"; print " <TD>"; printSubmitErr(GRPNAMEERR); print "</TD>\n"; print " </TR>\n"; } if ($editname == 0) { print "<TR><TD colspan=2 align=\"center\">\n"; print "(This is a system group whose name cannot be modified.)\n"; print "</TD></TR>\n"; } if ($data["type"] == "user") { if ($data['courseroll'] == 0 && $data['custom'] == 1) { print " <TR>\n"; print " <TH align=right>Owner:</TH>\n"; print " <TD><INPUT type=text name=owner value=\"" . $data["owner"]; print "\"></TD>\n"; print " <TD>"; printSubmitErr(GRPOWNER); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Editable by:</TH>\n"; print " <TD valign=\"top\">\n"; $groupwasnone = 0; if ($submitErr & EDITGROUPERR) { if ($state == 0) { $data['editgroupid'] = $usergroups[$data['groupid']]['editgroupid']; } elseif (count($affilusergroups)) { $tmp = array_keys($affilusergroups); $data['editgroupid'] = $tmp[0]; } } $notice = ''; if ($state == 0 && empty($usergroups[$data['groupid']]["editgroup"])) { $affilusergroups = array_reverse($affilusergroups, TRUE); $affilusergroups[0] = array('name' => 'None'); $affilusergroups = array_reverse($affilusergroups, TRUE); $groupwasnone = 1; $notice = "<strong>Note:</strong> You are the only person that can<br>" . "edit membership of this group. Select a<br>user group here " . "to allow members of that<br>group to edit membership of this one."; } elseif (!array_key_exists($data['editgroupid'], $affilusergroups) && $data['editgroupid'] != 0) { $affilusergroups[$data['editgroupid']] = array('name' => getUserGroupName($data['editgroupid'], 1)); uasort($affilusergroups, "sortKeepIndex"); } if ($state == 1 && $data['editgroupid'] == 0) { print "None\n"; } else { printSelectInput("editgroupid", $affilusergroups, $data["editgroupid"]); } print " </TD>\n"; print " <TD>"; if ($submitErr & EDITGROUPERR) { printSubmitErr(EDITGROUPERR); } else { print $notice; } print "</TD>"; print " </TR>\n"; } else { $groupwasnone = 1; } print " <TR>\n"; print " <TH align=right>Initial Max Time:</TH>\n"; print " <TD>"; $lengths = getReservationLengths(65535); if (!array_key_exists($data['initialmax'], $lengths)) { $data['initialmax'] = getReservationLengthCeiling($data['initialmax']); } printSelectInput("initialmax", $lengths, $data['initialmax']); print " </TD>"; print " <TD>"; printSubmitErr(INITIALMAXERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Total Max Time:</TH>\n"; print " <TD>"; if (!array_key_exists($data['totalmax'], $lengths)) { $data['totalmax'] = getReservationLengthCeiling($data['totalmax']); } printSelectInput("totalmax", $lengths, $data['totalmax']); print " </TD>\n"; print " <TD>"; printSubmitErr(TOTALMAXERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Max Extend Time:</TH>\n"; print " <TD>"; if (!array_key_exists($data['maxextend'], $lengths)) { $data['maxextend'] = getReservationLengthCeiling($data['maxextend']); } printSelectInput("maxextend", $lengths, $data['maxextend']); print " </TD>\n"; print " <TD>"; printSubmitErr(MAXEXTENDERR); print "</TD>\n"; print " </TR>\n"; if (checkUserHasPerm('Set Overlapping Reservation Count')) { print " <TR>\n"; print " <TH align=right>Max Overlapping Reservations:</TH>\n"; print " <TD><INPUT type=text name=overlap value=\""; print $data["overlap"] . "\" maxlength=4></TD>\n"; print " <TD>"; printSubmitErr(MAXOVERLAPERR); print "</TD>\n"; print " </TR>\n"; } } else { print " <TR>\n"; print " <TH align=right>Owning User Group:</TH>\n"; print " <TD>\n"; if ($submitErr & EDITGROUPERR) { $ownerid = $resourcegroups[$groupid]['ownerid']; } if ($state == 0 && $ownerid != '' && !array_key_exists($ownerid, $dispUserGrpIDs)) { $dispUserGrpIDs[$ownerid] = $usergroups[$ownerid]['name']; uasort($dispUserGrpIDs, "sortKeepIndex"); } if (!empty($dispUserGrpIDs)) { printSelectInput("ownergroup", $dispUserGrpIDs, $ownerid); } else { printSelectInput("ownergroup", $dispUserGrpIDsAllAffils, $ownerid); } print " </TD>\n"; print " <TD>\n"; if ($submitErr & EDITGROUPERR) { printSubmitErr(EDITGROUPERR); } print " </TD>\n"; print " </TR>\n"; } print "</TABLE>\n"; print "<TABLE>\n"; print " <TR valign=top>\n"; print " <TD>\n"; if ($state) { $cdata = array('type' => $data['type']); if ($data['type'] == 'user') { $cdata['isowner'] = $data['isowner']; if ($data['editgroupid'] == 0) { $cdata['editgroupid'] = 0; $cdata['groupwasnone'] = 1; } $cdata['editgroupids'] = implode(',', array_keys($affilusergroups)); } else { if (!empty($dispUserGrpIDs)) { $cdata['ownergroupids'] = implode(',', array_keys($dispUserGrpIDs)); } else { $cdata['ownergroupids'] = implode(',', array_keys($dispUserGrpIDsAllAffils)); } } $cont = addContinuationsEntry('submitAddGroup', $cdata); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Add Group\">\n"; } else { $cdata = array('type' => $data['type'], 'groupid' => $data['groupid'], 'isowner' => $data['isowner'], 'editname' => $editname); if ($data['type'] == 'resource') { $cdata['resourcetypeid'] = $resourcetypeid; if (!empty($dispUserGrpIDs)) { $cdata['ownergroupids'] = implode(',', array_keys($dispUserGrpIDs)); } else { $cdata['ownergroupids'] = implode(',', array_keys($dispUserGrpIDsAllAffils)); } } else { if ($data['courseroll'] == 1 || $data['custom'] == 0 || $editname == 0) { $cdata['name'] = $data['name']; $cdata['affiliationid'] = $data['affiliationid']; } $cdata['selectAffil'] = $selectAffil; $cdata['groupwasnone'] = $groupwasnone; $cdata['custom'] = $data['custom']; $cdata['courseroll'] = $data['courseroll']; $cdata['editgroupids'] = implode(',', array_keys($affilusergroups)); } $cont = addContinuationsEntry('confirmEditGroup', $cdata); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Confirm Changes\">\n"; } print " </FORM>\n"; print " </TD>\n"; print " <TD>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <INPUT type=hidden name=mode value=viewGroups>\n"; print " <INPUT type=submit value=Cancel>\n"; print " </FORM>\n"; print " </TD>\n"; print " </TR>\n"; print "</TABLE>\n"; } if ($data["type"] != "user") { print "</DIV>\n"; return; } if ($editusergroup) { $newuser = processInputVar("newuser", ARG_STRING); print "<H3>Group Membership</H3>\n"; if ($mode == "addGroupUser" && !($submitErr & IDNAMEERR)) { print "<font color=\"#008000\">{$newuser} successfully added to group"; print "</font><br><br>\n"; } if ($mode == "deleteGroupUser") { print "<font color=\"#008000\">{$newuser} successfully deleted from "; print "group</font><br><br>\n"; } $groupmembers = getUserGroupMembers($data["groupid"]); $edit = 1; if ($data['courseroll'] == 1 || $data['custom'] == 0) { $edit = 0; } if (empty($groupmembers) && !$edit) { print "(empty group)<br>\n"; } print "<TABLE border=1>\n"; if ($edit) { print " <TR>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <TD align=right><INPUT type=submit value=Add></TD>\n"; print " <TD><INPUT type=text name=newuser maxlength=80 size=40 "; if ($submitErr & IDNAMEERR) { print "value=\"{$newuser}\"></TD>\n"; } else { print "></TD>\n"; } if ($submitErr) { print " <TD>\n"; printSubmitErr(IDNAMEERR); print " </TD>\n"; } $cont = addContinuationsEntry('addGroupUser', $data); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " </FORM>\n"; print " </TR>\n"; } foreach ($groupmembers as $id => $login) { print " <TR>\n"; if ($edit) { print " <TD>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <INPUT type=submit value=Delete>\n"; $data['userid'] = $id; $data['newuser'] = $login; $cont = addContinuationsEntry('deleteGroupUser', $data); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " </FORM>\n"; print " </TD>\n"; } print " <TD>{$login}</TD>\n"; print " </TR>\n"; } print "</TABLE>\n"; } print "</DIV>\n"; }
function selectStatistics() { global $submitErr, $user; list($month1, $day1, $year1) = explode(',', date('n,j,Y', time() - SECINDAY * 6)); list($month2, $day2, $year2) = explode(',', date('n,j,Y', time())); print "<H2>" . i("Statistic Information") . "</H2>\n"; if ($submitErr) { printSubmitErr(STARTERR); printSubmitErr(ENDERR); printSubmitErr(ORDERERR); $monthkey1 = processInputVar("month1", ARG_NUMERIC); $daykey1 = processInputVar("day1", ARG_NUMERIC); $yearkey1 = processInputVar("year1", ARG_NUMERIC); $monthkey2 = processInputVar("month2", ARG_NUMERIC); $daykey2 = processInputVar("day2", ARG_NUMERIC); $yearkey2 = processInputVar("year2", ARG_NUMERIC); $affilid = processInputVar("affilid", ARG_NUMERIC); } else { $affilid = $user['affiliationid']; } print i("Select a starting date:") . "<br>\n"; $months = array(''); for ($i = 2 * SECINDAY, $cnt = 1; $cnt < 13; $i += SECINMONTH, $cnt++) { $months[$cnt] = strftime('%B', $i); } unset($months[0]); $days = array(); for ($i = 0; $i < 32; $i++) { array_push($days, $i); } unset($days[0]); $years = array(); for ($i = 2004; $i <= $year2; $i++) { $years[$i] = $i; } if (!$submitErr) { $monthkey1 = $month1; $daykey1 = array_search($day1, $days); $yearkey1 = array_search($year1, $years); } print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; printSelectInput("month1", $months, $monthkey1); printSelectInput("day1", $days, $daykey1); printSelectInput("year1", $years, $yearkey1); print "<br>\n"; print i("Select an ending date:") . "<br>\n"; if (!$submitErr) { $monthkey2 = $month2; $daykey2 = array_search($day2, $days); $yearkey2 = array_search($year2, $years); } printSelectInput("month2", $months, $monthkey2); printSelectInput("day2", $days, $daykey2); printSelectInput("year2", $years, $yearkey2); print "<br>\n"; $cont = addContinuationsEntry('viewstats'); if (checkUserHasPerm('View Statistics by Affiliation')) { print "<input type=radio id=stattype1 name=continuation value=\"{$cont}\" checked>\n"; print "<label for=stattype1>" . i("View General Statistics") . "</label> - \n"; print i("Select an affiliation:") . "\n"; $affils = getAffiliations(); if (!array_key_exists($affilid, $affils)) { $affilid = $user['affiliationid']; } $affils = array_reverse($affils, TRUE); $affils[0] = "All"; $affils = array_reverse($affils, TRUE); printSelectInput("affilid", $affils, $affilid); print "<br>\n"; $query = "SELECT id, " . "prettyname " . "FROM provisioning " . "ORDER BY prettyname"; $qh = doQuery($query); $provs = array(); while ($row = mysql_fetch_assoc($qh)) { $provs[$row['id']] = $row['prettyname']; } $cdata = array('mode' => 'provisioning', 'provs' => $provs); $cont2 = addContinuationsEntry('viewstats', $cdata); print "<input type=radio id=stattype3 name=continuation value=\"{$cont2}\">\n"; print "<label for=stattype3>" . i("View Statistics by provisioning engine"); print "</label>:\n"; printSelectInput("provid", $provs); print "<br>\n"; } else { print "<INPUT type=hidden name=continuation value=\"{$cont}\">\n"; } print "<INPUT type=submit value=" . i("Submit") . ">\n"; print "</FORM>\n"; }
function printReserveItems($modifystart = 1, $day = NULL, $hour = NULL, $minute = NULL, $meridian = NULL, $length = 60, $oneline = 0, $nolength = 0) { global $user; $enddate = processInputVar("enddate", ARG_STRING); $groupid = getUserGroupID('Specify End Time', 1); $members = getUserGroupMembers($groupid); if (array_key_exists($user['id'], $members)) { $openend = 1; } else { $openend = 0; } $days = array(); $inputday = ""; for ($cur = time(), $end = $cur + DAYSAHEAD * SECINDAY; $cur < $end; $cur += SECINDAY) { $tmp = getdate($cur); $index = $tmp["mon"] . "/" . $tmp["mday"] . "/" . $tmp["year"]; $days[$index] = $tmp["weekday"]; if ($tmp["weekday"] == $day) { $inputday = $index; } } if ($modifystart) { printSelectInput("day", $days, $inputday); print " At \n"; $tmpArr = array(); for ($i = 1; $i < 13; $i++) { $tmpArr[$i] = $i; } printSelectInput("hour", $tmpArr, $hour); $minutes = array("zero" => "00", "15" => "15", "30" => "30", "45" => "45"); printSelectInput("minute", $minutes, $minute); printSelectInput("meridian", array("am" => "a.m.", "pm" => "p.m."), $meridian); print "<small>(Eastern Time Zone)</small>"; //if(! $oneline) print "<br><br>"; /*else print " ";*/ if (!$nolength) { if ($openend) { print " <INPUT type=radio name=ending "; print "onclick='updateWaitTime(0);' value=length checked>"; } print "Duration: \n"; } } else { print "<INPUT type=hidden name=day value={$inputday}>\n"; print "<INPUT type=hidden name=hour value={$hour}>\n"; print "<INPUT type=hidden name=minute value={$minute}>\n"; print "<INPUT type=hidden name=meridian value={$meridian}>\n"; } // check for a "now" reservation that got 15 min added to it if ($length % 30) { $length -= 15; } // if ! $modifystart, we return at this point because we don't # know enough about the current reservation to determine how # long they can extend it for, the calling function would have # to determine that and print a length dropdown box if (!$modifystart) { return; } # create an array of usage times based on the user's max times $maxtimes = getUserMaxTimes("initialmaxtime"); $lengths = array(); if ($maxtimes["initial"] >= 30) { $lengths["30"] = "30 minutes"; } if ($maxtimes["initial"] >= 60) { $lengths["60"] = "1 hour"; } for ($i = 120; $i <= $maxtimes["initial"]; $i += 120) { $lengths[$i] = $i / 60 . " hours"; } if ($nolength) { print "Reservation will be for 8 hours<br>\n"; } else { printSelectInput("length", $lengths, $length, 0, 0, 'reqlength', "onChange='updateWaitTime(0);'"); print "<br>\n"; if ($openend) { print " <INPUT type=radio name=ending id=openend "; print "onclick='updateWaitTime(0);' value=date>Until\n"; print "<INPUT type=text name=enddate size=20 value=\"{$enddate}\">(YYYY-MM-DD HH:MM:SS)\n"; printSubmitErr(ENDDATEERR); print "<br>\n"; } } }
function selectStatistics() { global $submitErr, $viewmode, $user; list($month1, $day1, $year1) = explode(',', date('F,j,Y', time() - SECINDAY * 6)); list($month2, $day2, $year2) = explode(',', date('F,j,Y', time())); print "<H2>Statistic Information</H2>\n"; if ($submitErr) { printSubmitErr(STARTERR); printSubmitErr(ENDERR); printSubmitErr(ORDERERR); $monthkey1 = processInputVar("month1", ARG_NUMERIC); $daykey1 = processInputVar("day1", ARG_NUMERIC); $yearkey1 = processInputVar("year1", ARG_NUMERIC); $monthkey2 = processInputVar("month2", ARG_NUMERIC); $daykey2 = processInputVar("day2", ARG_NUMERIC); $yearkey2 = processInputVar("year2", ARG_NUMERIC); $affilid = processInputVar("affilid", ARG_NUMERIC); } else { $affilid = $user['affiliationid']; } print "Select a starting date:<br>\n"; $months = array("", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); unset($months[0]); $days = array(); for ($i = 0; $i < 32; $i++) { array_push($days, $i); } unset($days[0]); $years = array(); for ($i = 2004; $i <= $year2; $i++) { $years[$i] = $i; } if (!$submitErr) { $monthkey1 = array_search($month1, $months); $daykey1 = array_search($day1, $days); $yearkey1 = array_search($year1, $years); } print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; printSelectInput("month1", $months, $monthkey1); printSelectInput("day1", $days, $daykey1); printSelectInput("year1", $years, $yearkey1); print "<br>\n"; print "Select a ending date:<br>\n"; if (!$submitErr) { $monthkey2 = array_search($month2, $months); $daykey2 = array_search($day2, $days); $yearkey2 = array_search($year2, $years); } print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; printSelectInput("month2", $months, $monthkey2); printSelectInput("day2", $days, $daykey2); printSelectInput("year2", $years, $yearkey2); print "<br>\n"; if ($viewmode >= ADMIN_FULL) { print "Select an affiliation:<br>\n"; $affils = getAffiliations(); if (!array_key_exists($affilid, $affils)) { $affilid = $user['affiliationid']; } $affils = array_reverse($affils, TRUE); $affils[0] = "All"; $affils = array_reverse($affils, TRUE); printSelectInput("affilid", $affils, $affilid); print "<br>\n"; } $cont = addContinuationsEntry('viewstats'); print "<INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print "<INPUT type=submit value=Submit>\n"; print "</FORM>\n"; }
function userpreferences() { global $user, $submitErr, $mode; if ($submitErr) { $data = processUserPrefsInput(0); $data['affiliation'] = $user['affiliation']; } else { $data = $user; if ($data["width"] == 0) { $data["resolution"] = "Full Screen"; } else { $data["resolution"] = $user["width"] . "x" . $user["height"]; } } print i("<H2 align=center>User Preferences</H2>\n"); print "<div align=center id=status class=visible>\n"; if ($mode == "submituserprefs") { print "<font color=green>" . i("User preferences successfully updated") . "</font><br>\n"; } print "</div>\n"; print "<table summary=\"\">\n"; print " <TR>\n"; print " <TD valign=top>\n"; print " <div id=preflinks class=hidden>\n"; print " <ul class=preferenceslist>\n"; $showpersonal = 0; if (!empty($user['firstname']) || !empty($user['lastname']) || !empty($user['email']) || $user['affiliation'] == 'Local') { $showpersonal = 1; print " <li><a href=#personal onclick=\""; print "show('personal'); return false;\">" . i("Personal Information") . "</a>"; print "</li>\n"; } print " <li><a href=#rdpfile onclick=\""; print "show('rdpfile'); return false;\">" . i("RDP Preferences") . "</a>"; print "</li>\n"; print " <li><a href=#uiprefs onclick=\"javascript:show('uiprefs'); "; print "return false\">" . i("General Preferences") . "</a></li>\n"; print " </ul>\n"; print " </div>\n"; print " </TD>\n"; print " <TD rowspan=2 width=50px></TD>\n"; print " <TD rowspan=2>\n"; if ($showpersonal) { print " <fieldset id=personal class=shown>\n"; print " <legend>" . i("Personal") . "</legend>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <table summary=\"displays your personal information\">\n"; $showsubmit = 0; if (!empty($user['firstname'])) { print " <TR>\n"; print " <TH align=right>" . i("First Name:") . "<a href=#updateinfo>*</a></TH>\n"; print " <TD>" . $user["firstname"] . "</TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; } if (!empty($user['lastname'])) { print " <TR>\n"; print " <TH align=right>" . i("Last Name:") . "<a href=#updateinfo>*</a></TH>\n"; print " <TD>" . $user["lastname"] . "</TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; } # preferred name is stored locally; allow setting preferred name if a firstname is defined if (!empty($user['firstname'])) { print " <TR>\n"; print " <TH align=right>" . i("Preferred Name:") . "</TH>\n"; print " <TD><label class=hidden for=preferredname>Preferred Name</label>\n"; print " <INPUT type=text name=preferredname maxlength=100 "; print "size=15 value=\"" . $data["preferredname"] . "\"></TD>\n"; print " <TD>"; printSubmitErr(PREFNAMEERR); print "</TD>\n"; print " </TR>\n"; $showsubmit = 1; } if (!empty($user['email'])) { print " <TR>\n"; print " <TH align=right>" . i("Email Address:") . "<a href=#updateinfo>*</a></TH>\n"; print " <TD>" . $user["email"] . "</TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; } if ($user['affiliation'] == 'Local') { print " <TR>\n"; print " <TD colspan=3 align=center><h3>" . i("Change Password") . "</h3></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("Current Password:"******"</TH>\n"; print " <TD>\n"; print " <label class=hidden for=currentpassword>Current Password</label>\n"; print " <INPUT type=password name=currentpassword maxlength=100 size=15>\n"; print " </TD>\n"; print " <TD>"; printSubmitErr(LOCALPASSWORDERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("New Password:"******"</TH>\n"; print " <TD>\n"; print " <label class=hidden for=newpassword>New Password</label>\n"; print " <INPUT type=password name=newpassword maxlength=100 "; print "id=newpassword onkeyup=\"checkNewLocalPassword();\" size=15>\n"; print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("Confirm Password:"******"</TH>\n"; print " <TD>\n"; print " <label class=hidden for=confirmpassword>Confirm Password</label>\n"; print " <INPUT type=password name=confirmpassword maxlength=100 "; print "id=confirmpassword onkeyup=\"checkNewLocalPassword();\" size=15>\n"; print " </TD>\n"; print " <TD><span id=pwdstatus></span></TD>\n"; print " </TR>\n"; $showsubmit = 1; } print " </table>\n"; $updateText = getAffiliationDataUpdateText($user['affiliationid']); print "<a name=updateinfo></a>\n"; if (!empty($updateText[$user['affiliationid']])) { print "{$updateText[$user['affiliationid']]}<br><br>"; } if ($showsubmit) { $cont = addContinuationsEntry('confirmpersonalprefs', array(), SECINDAY, 1, 1, 1); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <div align=center>\n"; print " <INPUT type=submit value=\"" . i("Submit Changes") . "\">\n"; print " </div>\n"; } print " </FORM>\n"; print " </fieldset>\n"; } print " <fieldset id=rdpfile class=shown>\n"; print " <legend>" . i("RDP") . "</legend>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <table summary=\"lists adjustable preferences for the RDP "; print "file that is sent when you click the Get RDP File button on the "; print "Connect! page and the port on which RDP is listening\">\n"; print " <TR>\n"; print " <TD colspan=3><div style=\"width: 300px;\"><small>"; print i("Try decreasing <em>Resolution</em> or <em>Color Depth</em> to speed up your connection if things seem slow when connected to a remote computer."); print "</div></small></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("Resolution:") . "</TH>\n"; $resolutionArray = array("Full Screen" => "Full Screen", "1920x1440" => "1920x1440", "1600x1200" => "1600x1200", "1280x1024" => "1280x1024", "1152x864" => "1152x864", "1024x768" => "1024x768", "800x600" => "800x600", "640x480" => "640x480", "1680x1050" => "1680x1050", "1600x1024" => "1600x1024", "1440x900" => "1440x900", "1280x854" => "1280x854", "1280x768" => "1280x768", "1024x576" => "1024x576"); print " <TD>\n"; printSelectInput("resolution", $resolutionArray, $data["resolution"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("Color Depth:") . "</TH>\n"; print " <TD>\n"; $colordepth = array("8" => "8", "16" => "16", "24" => "24", "32" => "32"); printSelectInput("bpp", $colordepth, $data["bpp"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("Audio:") . "</TH>\n"; print " <TD>\n"; $audio = array("none" => i("None"), "local" => i("Use my speakers")); printSelectInput("audiomode", $audio, $data["audiomode"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("Map Local Drives:") . "</TH>\n"; print " <TD>\n"; $yesno = array(1 => i("Yes"), 0 => i("No")); printSelectInput("mapdrives", $yesno, $data["mapdrives"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("Map Local Printers:") . "</TH>\n"; print " <TD>\n"; printSelectInput("mapprinters", $yesno, $data["mapprinters"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("Map Local Serial Ports:") . "</TH>\n"; print " <TD>\n"; printSelectInput("mapserial", $yesno, $data["mapserial"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>" . i("RDP Port") . ":</TH>\n"; print " <TD>\n"; print " <INPUT type=text name=rdpport maxlength=5 "; print "size=8 value=\"" . $data["rdpport"] . "\"></TD>\n"; print " </TD>\n"; print " <TD>\n"; printSubmitErr(RDPPORTERR); print " </TD>\n"; print " </TR>\n"; print " </table>\n"; $cont = addContinuationsEntry('confirmrdpprefs', array(), SECINDAY, 1, 1, 1); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <div align=center>\n"; print " <INPUT type=submit value=\"" . i("Submit Changes") . "\">\n"; print " </div>\n"; print " </FORM>\n"; print " </fieldset>\n"; print " <div id=uiprefs class=shown>\n"; print " <fieldset>\n"; print " <legend>" . i("General Preferences") . "</legend>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post "; print "onsubmit=\"return validatePublicKeys();\">\n"; $cdata = array(); if ($user['showallgroups']) { $selected['affiliation'] = ''; $selected['allgroups'] = 'checked'; } else { $selected['affiliation'] = 'checked'; $selected['allgroups'] = ''; } print " <p>" . i("View User Groups:") . "<br>\n"; print " <INPUT type=radio id=r1 name=groupview value=affiliation "; print "{$selected['affiliation']}" . "><label for=r1>" . i("matching my affiliation"); print "</label><br>\n"; print " <INPUT type=radio id=r2 name=groupview value=allgroups "; print "{$selected['allgroups']}" . "><label for=r2>" . i("from all affiliations"); print "</label></p>\n"; if ($user['emailnotices']) { $selected['enabled'] = 'checked'; $selected['disabled'] = ''; } else { $selected['enabled'] = ''; $selected['disabled'] = 'checked'; } print " <p>" . i("Send email notifications about reservations:") . "<br>\n"; print " <INPUT type=radio id=r3 name=emailnotify value=2 "; print "{$selected['enabled']}" . "><label for=r3>" . i("Enabled"); print "</label><br>\n"; print " <INPUT type=radio id=r4 name=emailnotify value=1 "; print "{$selected['disabled']}" . "><label for=r4>" . i("Disabled"); print "</label></p>\n"; ########################### # temporary if (!array_key_exists('usepublickeys', $user)) { $user['usepublickeys'] = 0; $_SESSION['user']['usepublickeys'] = 0; $user['sshpublickeys'] = ''; $_SESSION['user']['sshpublickeys'] = ''; } # end temporary ########################### if ($user['usepublickeys']) { $selected['enabled'] = 'checked'; $selected['disabled'] = ''; } else { $selected['enabled'] = ''; $selected['disabled'] = 'checked'; } print " <p>" . i("Use public key authentication for SSH logins:") . "<br>\n"; print " <INPUT type=radio id=r5 name=pubkeyauth value=2 "; print "{$selected['enabled']} onclick=\"togglePubKeys(1);\"><label for=r5>"; print i("Enabled") . "</label><br>\n"; print " <INPUT type=radio id=r6 name=pubkeyauth value=1 "; print "{$selected['disabled']} onclick=\"togglePubKeys(0);\"><label for=r6>"; print i("Disabled") . "</label><br><br>\n"; print " " . i("Public keys:") . "<br>\n"; print " <div style=\"width: 300px;\" id=\"pubkeyerr\" "; print "class=\"hidden\">"; print "<font color=\"red\"><em>\n "; print i("Public keys can only contain letters, numbers, spaces, and these characters: + / @ . ="); print "</em></font></div>\n"; print " <textarea id=\"pubkeys\" dojoType=\"dijit.form.Textarea\" "; print "name=\"pubkeys\" style=\"width: 27em;\""; if (!$user['usepublickeys']) { print " disabled=\"disabled\""; } print ">{$user['sshpublickeys']}</textarea><br><br>\n"; print "<strong>" . i("NOTE:") . "</strong> "; $h = " " . i("Images using network storage (such as AFS) may not work well with public key authentication. In some cases, you may still be prompted for a password. In other cases, you may need to run additional commands after logging in to gain access to the network storage."); print preg_replace("/(.{1,55}([ \n]|\$))/", '\\1<br>', $h) . "\n"; print " </p>\n"; $cont = addContinuationsEntry('submitgeneralprefs', $cdata, SECINDAY, 1, 0); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"" . i("Submit General Preferences") . "\">\n"; print " </FORM>\n"; print " </fieldset>\n"; print " </div>\n"; print " </TD>\n"; print " </TR>\n"; print "</table>\n"; printUserprefJavascript(); }
function editOrAddImage($state) { global $submitErr, $mode, $submode, $user; $images = getImages(); $platforms = getPlatforms(); $oslist = getOSList(); $groups = getUserGroups(0, $user['affiliationid']); $groups = array_reverse($groups, TRUE); $groups[0] = array("name" => "Any"); $groups = array_reverse($groups, TRUE); if ($submitErr || $state == 1 || $mode == "submitEditImageButtons") { $data = processImageInput(0); if (get_magic_quotes_gpc()) { $data["description"] = stripslashes($data['description']); $data["usage"] = stripslashes($data['usage']); $data["comments"] = stripslashes($data['comments']); } $data['imageid'] = getContinuationVar('imageid'); if ($mode == "newImage") { $requestdata = getRequestInfo($data['requestid']); $imagedata = getImages(0, $requestdata["reservations"][0]["imageid"]); $data["platformid"] = $imagedata[$requestdata["reservations"][0]["imageid"]]["platformid"]; $data["osid"] = $imagedata[$requestdata["reservations"][0]["imageid"]]["osid"]; } } elseif ($mode == 'submitAddSubimage') { $data = getContinuationVar(); } else { $id = getContinuationVar("imageid"); $data = $images[$id]; $data["imageid"] = $id; $tmp = getImageNotes($id); $data['description'] = $tmp['description']; $data['usage'] = $tmp['usage']; } print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print "<DIV align=center>\n"; if ($state) { print "<H2>Add Image</H2>\n"; } else { print "<H2>Edit Image</H2>\n"; } print "<TABLE>\n"; print " <TR>\n"; print " <TH align=right>Name:</TH>\n"; print " <TD><INPUT type=text name=prettyname value=\""; print $data["prettyname"] . "\" maxlength=60 size=40></TD>\n"; print " <TD>"; printSubmitErr(PRETTYNAMEERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Owner:</TH>\n"; print " <TD><INPUT type=text name=owner value=\"" . $data["owner"]; print "\" size=40></TD>\n"; print " <TD>"; printSubmitErr(IMGOWNERERR); print "</TD>\n"; print " </TR>\n"; /*print " <TR>\n"; print " <TH align=right>Platform:</TH>\n"; print " <TD>\n"; printSelectInput("platformid", $platforms, $data["platformid"]); print " </TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>OS:</TH>\n"; print " <TD>\n"; printSelectInput("osid", $oslist, $data["osid"]); print " </TD>\n"; print " </TR>\n";*/ print " <TR>\n"; print " <TD colspan=3>\n"; print "<fieldset>\n"; print "<legend>Image Description</legend>\n"; print "Description of image (required - users will<br>\nsee this on the <strong>"; print "New Reservations</strong> page):<br>\n"; printSubmitErr(IMAGEDESCRIPTIONERR); print "<textarea dojoType=\"dijit.form.Textarea\" name=description "; print "style=\"width: 400px; text-align: left;\">{$data['description']}\n\n"; print "</textarea>\n"; print "</fieldset>\n"; print "<fieldset>\n"; print "<legend>Usage Notes</legend>\n"; print "Optional notes to the user explaining how to use the image<br>"; print "(users will see this on the <strong>Connect!</strong> page):<br>\n"; print "<textarea dojoType=\"dijit.form.Textarea\" name=usage "; print "style=\"width: 400px; text-align: left;\"\">{$data['usage']}\n\n"; print "</textarea>\n"; print "</fieldset>\n"; if ($state) { print "<fieldset>\n"; print "<legend>Revision Comments</legend>\n"; print "Notes for yourself and other admins about how the image "; print "was setup/installed.<br>\nThese are optional and not visible to end "; print "users.<br>\n"; print "<textarea dojoType=\"dijit.form.Textarea\" name=comments "; print "style=\"width: 400px; text-align: left;\"\">{$data['comments']}\n\n"; print "</textarea>\n"; print "</fieldset>\n"; } print " </TD>\n"; print " </TR>\n"; print "</TABLE><br>\n"; print "<div dojoType=\"dijit.TitlePane\" title=\"Advanced Options - leave "; print "default values unless you really know what you are doing<br>(click to "; print "expand)\" open=false style=\"width: 500px\">\n"; print "<TABLE>\n"; print " <TR>\n"; print " <TD colspan=3 id=hide1><hr></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TD colspan=3 id=hide2><strong>Advanced Options - leave default values unless you really know what you are doing</strong><br><br></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Minimum RAM (MB):</TH>\n"; print " <TD><INPUT type=text name=minram value=\""; print $data["minram"] . "\" maxlength=5 size=6></TD>\n"; print " <TD>"; printSubmitErr(MINRAMERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Minimum Num of Processors:</TH>\n"; print " <TD>\n"; $tmpArr = array("1" => "1", "2" => "2", "4" => "4", "8" => "8"); printSelectInput("minprocnumber", $tmpArr, $data["minprocnumber"]); print " </TD>\n"; print " <TD></TD>"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Minimum Processor Speed (MHz):</TH>\n"; print " <TD><INPUT type=text name=minprocspeed value=\""; print $data["minprocspeed"] . "\" maxlength=5 size=5></TD>\n"; print " <TD>"; printSubmitErr(MINPROCSPEEDERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Minimum Network Speed (Mbps):</TH>\n"; print " <TD>\n"; $tmpArr = array("10" => "10", "100" => "100", "1000" => "1000"); printSelectInput("minnetwork", $tmpArr, $data["minnetwork"]); print " </TD>\n"; print " <TD></TD>"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Maximum Concurrent Usage:</TH>\n"; print " <TD><INPUT type=text name=maxconcurrent value=\""; print $data["maxconcurrent"] . "\" maxlength=3 size=4>(leave empty for unlimited)</TD>\n"; print " <TD>"; printSubmitErr(MAXCONCURRENTERR); print "</TD>\n"; print " <TD></TD>"; print " </TR>\n"; if (!$state) { print " <TR>\n"; print " <TH align=right>Estimated Reload Time (min):</TH>\n"; print " <TD><INPUT type=text name=reloadtime value=\""; print $data["reloadtime"] . "\" maxlength=3></TD>\n"; print " <TD>"; printSubmitErr(RELOADTIMEERR); print "</TD>\n"; print " </TR>\n"; } print " <TR>\n"; print " <TH align=right>Available for checkout:</TH>\n"; print " <TD>\n"; $yesno = array(1 => "Yes", 0 => "No"); printSelectInput("forcheckout", $yesno, $data["forcheckout"]); print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Check for logged in user:</TH>\n"; if (array_key_exists("checkuser", $data) && !$data["checkuser"]) { $default = 0; } else { $default = 1; } print " <TD>\n"; printSelectInput("checkuser", $yesno, $default); print " </TD>\n"; print " </TR>\n"; # finally just limited access so only high level access people see this # because it confused too many people if ($user["adminlevel"] == "developer") { print " <TR>\n"; print " <TH align=right>User group allowed to log in:<br>\n"; print " <small>(This does not grant permission to<br>\n"; print "make a reservation for the image)</small></TH>\n"; print " <TD>\n"; if (!empty($data["usergroupid"])) { $default = $data["usergroupid"]; if (!array_key_exists($default, $groups)) { if ($submitErr || $mode == 'submitEditImageButtons' || $mode == 'submitAddSubimage') { $groups[$data['usergroupid']] = array('name' => $images[$data['imageid']]['usergroup']); } else { $groups[$data['usergroupid']] = array('name' => $data['usergroup']); } uasort($groups, 'sortKeepIndex'); } } else { $default = 0; } printSelectInput("usergroupid", $groups, $default); print " </TD>\n"; print " </TR>\n"; } if (!$state) { print " <TR>\n"; print " <TH style=\"vertical-align:top; text-align:right;\">Subimages:</TH>\n"; print " <TD>\n"; if (array_key_exists("subimages", $images[$data["imageid"]]) && count($images[$data["imageid"]]["subimages"])) { foreach ($images[$data["imageid"]]["subimages"] as $imgid) { print "<INPUT type=checkbox name=\"removeimgid[{$imgid}]\" value={$imgid}>\n"; print "{$images[$imgid]["prettyname"]}<br>\n"; } print "<INPUT type=submit name=submode value=\"Remove Selected\"><br>\n"; # Remove Selected } print " <INPUT type=submit name=submode value=\"Add Subimage\">\n"; # Add Subimage print " </TD>\n"; print " </TR>\n"; } else { if (array_key_exists("sysprep", $data) && !$data["sysprep"]) { $default = 0; } else { $default = 1; } print " <TR>\n"; print " <TH style=\"vertical-align:top; text-align:right;\">Use sysprep:</TH>\n"; print " <TD>\n"; printSelectInput("sysprep", $yesno, $default); print " </TD>\n"; print " </TR>\n"; } print " <TR>\n"; print " <TD colspan=3 id=hide3><hr></TD>\n"; print " </TR>\n"; print "</TABLE>\n"; print "</div>\n"; print "<TABLE>\n"; print " <TR valign=top>\n"; print " <TD>\n"; if ($state) { $cdata = array('requestid' => $data['requestid'], 'imageid' => $data['imageid']); $cont = addContinuationsEntry('submitEditImageButtons', $cdata, SECINDAY, 0); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; # confirmAddImage print " <INPUT type=submit name=submode value=\"Confirm Image\">\n"; } else { $cdata = array('imageid' => $data['imageid']); $cont = addContinuationsEntry('submitEditImageButtons', $cdata, SECINDAY, 0, 1, 1); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; # confirmEditImage print " <INPUT type=submit name=submode value=\"Confirm Changes\">\n"; } print " </FORM>\n"; print " </TD>\n"; print " <TD>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; if ($state) { $cont = addContinuationsEntry('viewRequests'); } else { $cont = addContinuationsEntry('viewImages'); } print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=Cancel>\n"; print " </FORM>\n"; print " </TD>\n"; print " </TR>\n"; print "</TABLE>\n"; if ($state) { return; } print "<div id=revisiondiv>\n"; print getRevisionHTML($data['imageid']); print "</div>\n"; }
function printHelpForm() { global $user, $submitErr, $noHTMLwrappers; if ($submitErr) { $name = processInputVar("name", ARG_STRING); $email = processInputVar("email", ARG_STRING); $summary = processInputVar("summary", ARG_STRING); $text = processInputVar("comments", ARG_STRING); } else { $name = $user["firstname"] . " " . $user["lastname"]; $email = $user["email"]; $summary = ""; $text = ""; } if (!in_array('helpform', $noHTMLwrappers)) { print "<H2>VCL Help</H2>\n"; } print "This form sends a request to the VCL support group. Please provide "; print "as much information as possible.<br><br>\n"; if (HELPFAQURL != '') { print "Please see our <a href=\"" . HELPFAQURL . "\">"; print "FAQ</a> Section before sending your request - it may be an easy "; print "fix!<br><br>\n"; } print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print "<TABLE>\n"; print " <TR>\n"; print " <TH align=right>Name:</TH>\n"; print " <TD><INPUT type=text name=name size=25 value=\"{$name}\"></TD>\n"; print " <TD>"; printSubmitErr(NAMEERR); print " </TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Email:</TH>\n"; print " <TD><INPUT type=text name=email size=25 value=\"{$email}\"></TD>\n"; print " <TD>"; printSubmitErr(EMAILERR); print " </TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Summary:</TH>\n"; print " <TD><INPUT type=text name=summary size=25 value=\"{$summary}\"></TD>\n"; print " <TD>"; printSubmitErr(SUMMARYERR); print " </TD>\n"; print " </TR>\n"; print "</TABLE>\n"; print "<br>\n"; print "Please describe the problem you are having. Include a description "; print "of how you encountered the problem and any error messages you "; print "received:<br>\n"; printSubmitErr(TEXTERR); print "<textarea tabindex=2 name=comments cols=50 rows=8>{$text}</textarea><br>\n"; if (in_array('helpform', $noHTMLwrappers)) { $cdata = array('indrupal' => 1); } else { $cdata = array(); } $cont = addContinuationsEntry('submitHelpForm', $cdata, SECINDAY, 1, 0); print "<INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print "<INPUT tabindex=3 type=submit value=\"Submit Help Request\">\n"; print "</FORM>\n"; }
function userpreferences() { global $user, $submitErr, $viewmode, $mode; if ($submitErr) { $data = processUserPrefsInput(0); $data['affiliation'] = $user['affiliation']; } else { $data = $user; if ($data["width"] == 0) { $data["resolution"] = "Full Screen"; } else { $data["resolution"] = $user["width"] . "x" . $user["height"]; } } $adminleveldeveloper = 0; if ($user['adminlevelid'] == ADMIN_DEVELOPER) { $adminleveldeveloper = 1; } print "<H2 align=center>User Preferences</H2>\n"; print "<div align=center id=status class=visible>\n"; if ($mode == "submituserprefs") { print "<font color=green>User preferences successfully updated</font><br>\n"; } print "</div>\n"; print "<table id=layouttable summary=\"\">\n"; print " <TR>\n"; print " <TD>\n"; print " <div id=preflinks class=hidden>\n"; print " <ul class=preferenceslist>\n"; print " <li><a href=#personal onclick=\""; print "show('personal'); return false;\">Personal Information</a>"; print "</li>\n"; print " <li><a href=#rdpfile onclick=\""; print "show('rdpfile'); return false;\">RDP File Preferences</a>"; print "</li>\n"; print " <li><a href=#uiprefs onclick=\"javascript:show('uiprefs'); "; print "return false\">General Preferences</a></li>\n"; if ($adminleveldeveloper) { print " <li><a href=#viewmode onclick=\"javascript:"; print "show('viewmode'); return false\">View Mode</a></li>\n"; } print " </ul>\n"; print " </div>\n"; print " </TD>\n"; print " <TD rowspan=2 width=50px></TD>\n"; print " <TD rowspan=2>\n"; print " <fieldset id=personal class=shown>\n"; print " <legend>Personal</legend>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <table summary=\"displays your personal information\">\n"; print " <TR>\n"; print " <TH align=right>First Name<a href=#updateinfo>*</a>:</TH>\n"; print " <TD>" . $user["firstname"] . "</TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Last Name<a href=#updateinfo>*</a>:</TH>\n"; print " <TD>" . $user["lastname"] . "</TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Preferred Name:</TH>\n"; print " <TD><label class=hidden for=preferredname>Preferred Name</label>\n"; print " <INPUT type=text name=preferredname maxlength=100 "; print "size=15 value=\"" . $data["preferredname"] . "\"></TD>\n"; print " <TD>"; printSubmitErr(PREFNAMEERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Email Address<a href=#updateinfo>*</a>:</TH>\n"; print " <TD>" . $user["email"] . "</TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; if ($user['affiliation'] == 'Local') { print " <TR>\n"; print " <TD colspan=3 align=center><h3>Change Password</h3></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Current Password:</TH>\n"; print " <TD>\n"; print " <label class=hidden for=currentpassword>Current Password</label>\n"; print " <INPUT type=password name=currentpassword maxlength=100 size=15>\n"; print " </TD>\n"; print " <TD>"; printSubmitErr(LOCALPASSWORDERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>New Password:</TH>\n"; print " <TD>\n"; print " <label class=hidden for=newpassword>New Password</label>\n"; print " <INPUT type=password name=newpassword maxlength=100 "; print "id=newpassword onkeyup=\"checkNewLocalPassword();\" size=15>\n"; print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Confirm Password:</TH>\n"; print " <TD>\n"; print " <label class=hidden for=confirmpassword>Confirm Password</label>\n"; print " <INPUT type=password name=confirmpassword maxlength=100 "; print "id=confirmpassword onkeyup=\"checkNewLocalPassword();\" size=15>\n"; print " </TD>\n"; print " <TD><span id=pwdstatus></span></TD>\n"; print " </TR>\n"; } print " </table>\n"; $updateText = getAffiliationDataUpdateText($user['affiliationid']); print "<a name=updateinfo></a>\n"; if (!empty($updateText[$user['affiliationid']])) { print "{$updateText[$user['affiliationid']]}<br><br>"; } $cont = addContinuationsEntry('confirmpersonalprefs', array(), SECINDAY, 1, 1, 1); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <div align=center>\n"; print " <INPUT type=submit value=\"Submit Changes\">\n"; print " </div>\n"; print " </FORM>\n"; print " </fieldset>\n"; print " <fieldset id=rdpfile class=visible>\n"; print " <legend>RDP</legend>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <table summary=\"lists adjustable preferences for the RDP "; print "file that is sent when you click the Get RDP File button on the "; print "Connect! page\">\n"; print " <TR>\n"; print " <TD colspan=3><small>Try decreasing <em>Resolution</em> or <em>"; print "Color Depth</em> to<br>speed up your connection if things seem "; print "slow<br>when connected to a remote computer.</small></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Resolution:</TH>\n"; $resolutionArray = array("Full Screen" => "Full Screen", "1920x1440" => "1920x1440", "1600x1200" => "1600x1200", "1280x1024" => "1280x1024", "1152x864" => "1152x864", "1024x768" => "1024x768", "800x600" => "800x600", "640x480" => "640x480", "1680x1050" => "1680x1050", "1600x1024" => "1600x1024", "1440x900" => "1440x900", "1280x854" => "1280x854", "1280x768" => "1280x768", "1024x576" => "1024x576"); print " <TD>\n"; printSelectInput("resolution", $resolutionArray, $data["resolution"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Color Depth:</TH>\n"; print " <TD>\n"; #$colordepth = array("8" => "8", "16" => "16", "24" => "24"); $colordepth = array("8" => "8", "16" => "16", "24" => "24", "32" => "32 (Vista only)"); printSelectInput("bpp", $colordepth, $data["bpp"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Audio:</TH>\n"; print " <TD>\n"; $audio = array("none" => "None", "local" => "Use my speakers"); printSelectInput("audiomode", $audio, $data["audiomode"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Map Local Drives:</TH>\n"; print " <TD>\n"; $yesno = array(1 => "Yes", 0 => "No"); printSelectInput("mapdrives", $yesno, $data["mapdrives"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Map Local Printers:</TH>\n"; print " <TD>\n"; printSelectInput("mapprinters", $yesno, $data["mapprinters"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Map Local Serial Ports:</TH>\n"; print " <TD>\n"; printSelectInput("mapserial", $yesno, $data["mapserial"]); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; print " </table>\n"; $cont = addContinuationsEntry('confirmrdpprefs', array(), SECINDAY, 1, 1, 1); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <div align=center>\n"; print " <INPUT type=submit value=\"Submit Changes\">\n"; print " </div>\n"; print " </FORM>\n"; print " </fieldset>\n"; print " <div id=uiprefs class=visible>\n"; print " <fieldset>\n"; print " <legend>General Preferences</legend>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; $cdata = array(); if (in_array("userGrant", $user["privileges"])) { if ($user['showallgroups']) { $selected['affiliation'] = ''; $selected['allgroups'] = 'checked'; } else { $selected['affiliation'] = 'checked'; $selected['allgroups'] = ''; } print " <p>View User Groups:<br>\n"; print " <INPUT type=radio id=r1 name=groupview value=affiliation "; print "{$selected['affiliation']}><label for=r1>matching my affiliation"; print "</label><br>\n"; print " <INPUT type=radio id=r2 name=groupview value=allgroups "; print "{$selected['allgroups']}><label for=r2>from all affiliations"; print "</label></p>\n"; } else { $cdata['groupview'] = 'affiliation'; } if ($user['emailnotices']) { $selected['enabled'] = 'checked'; $selected['disabled'] = ''; } else { $selected['enabled'] = ''; $selected['disabled'] = 'checked'; } print " <p>Send email notifications about reservations:<br>\n"; print " <INPUT type=radio id=r3 name=emailnotify value=2 "; print "{$selected['enabled']}><label for=r3>Enabled"; print "</label><br>\n"; print " <INPUT type=radio id=r4 name=emailnotify value=1 "; print "{$selected['disabled']}><label for=r4>Disabled"; print "</label></p>\n"; $cont = addContinuationsEntry('submitgeneralprefs', $cdata, SECINDAY, 1, 0); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Submit General Preferences\">\n"; print " </FORM>\n"; print " </fieldset>\n"; print " </div>\n"; print " <div id=viewmode class=visible>\n"; if ($adminleveldeveloper) { print " <fieldset>\n"; print " <legend>View Mode</legend>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; if ($viewmode == ADMIN_FULL) { $selected[ADMIN_NONE] = ""; $selected[ADMIN_FULL] = "checked"; $selected[ADMIN_DEVELOPER] = ""; } elseif ($viewmode == ADMIN_DEVELOPER) { $selected[ADMIN_NONE] = ""; $selected[ADMIN_FULL] = ""; $selected[ADMIN_DEVELOPER] = "checked"; } else { $selected[ADMIN_NONE] = "checked"; $selected[ADMIN_FULL] = ""; $selected[ADMIN_DEVELOPER] = ""; } if ($user["adminlevelid"] != ADMIN_NONE) { print " <p>View site as:<br>\n"; print " <INPUT type=radio name=viewmode value=" . ADMIN_NONE . " "; print $selected[ADMIN_NONE] . ">Normal User<br>\n"; if ($user["adminlevel"] == "full" || $user["adminlevel"] == "developer") { print " <INPUT type=radio name=viewmode value=" . ADMIN_FULL . " "; print $selected[ADMIN_FULL] . ">Admin Level<br>\n"; } if ($user["adminlevel"] == "developer") { print " <INPUT type=radio name=viewmode value=" . ADMIN_DEVELOPER . " "; print $selected[ADMIN_DEVELOPER] . ">Developer Level<br>\n"; } print " </p>\n"; } print " View As User: <INPUT type=text name=viewasuser "; if (!array_key_exists('unityid', $data)) { print "size=20 value=\"{$user["unityid"]}@{$user['affiliation']}\">\n"; } else { print "size=20 value=\"{$data["unityid"]}@{$data['affiliation']}\">\n"; } printSubmitErr(VIEWASUSERERR); print "<br>\n"; $cont = addContinuationsEntry('submitviewmode', array(), SECINDAY, 1, 0); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Submit View Mode\">\n"; print " </FORM>\n"; print " </fieldset>\n"; } print " </div>\n"; print " </TD>\n"; print " </TR>\n"; print "</table>\n"; printUserprefJavascript(); }
function editOrAddGroup($state) { global $submitErr, $user, $mode, $viewmode; $usergroups = getUserGroups(1); if ($user['showallgroups']) { $affilusergroups = $usergroups; } else { $affilusergroups = getUserGroups(1, $user['affiliationid']); } $resourcegroups = getResourceGroups(); $affils = getAffiliations(); $resourcetypes = getTypes("resources"); if ($submitErr) { $data = processGroupInput(0); $newuser = processInputVar("newuser", ARG_STRING); if ($mode == "submitEditGroup") { $id = $data["groupid"]; if ($data["type"] == "resource") { list($grouptype, $junk) = explode('/', $resourcegroups[$id]["name"]); $ownerid = $resourcegroups[$id]["ownerid"]; } } else { if ($data["type"] == "resource") { if ($state) { $grouptype = $resourcetypes['resources'][$data['resourcetypeid']]; } else { list($grouptype, $junk) = explode('/', $resourcegroups[$data['groupid']]["name"]); } $ownerid = $data["ownergroup"]; } else { $selectAffil = getContinuationVar('selectAffil'); if (empty($selectAffil) && $user['showallgroups']) { $selectAffil = 1; } } } } else { $newuser = processInputVar("newuser", ARG_STRING); $data["groupid"] = getContinuationVar("groupid"); $data["type"] = getContinuationVar("type"); $data["isowner"] = getContinuationVar("isowner"); $id = $data["groupid"]; if ($data["type"] == "user") { $data["name"] = $usergroups[$id]["name"]; $data["affiliationid"] = $usergroups[$id]["groupaffiliationid"]; $data["owner"] = $usergroups[$id]["owner"]; $data["editgroupid"] = $usergroups[$id]["editgroupid"]; $data["initialmax"] = $usergroups[$id]["initialmaxtime"]; $data["totalmax"] = $usergroups[$id]["totalmaxtime"]; $data["maxextend"] = $usergroups[$id]["maxextendtime"]; $data["overlap"] = $usergroups[$id]["overlapResCount"]; $tmp = explode('@', $data['name']); $data['name'] = $tmp[0]; if ($user['showallgroups'] || array_key_exists(1, $tmp) && $tmp[1] != $user['affiliation']) { $selectAffil = 1; } else { $selectAffil = 0; } } else { list($grouptype, $data["name"]) = explode('/', $resourcegroups[$id]["name"]); $ownerid = $resourcegroups[$id]["ownerid"]; } } $editusergroup = 0; if ($data['type'] != 'user') { print "<FORM action=\"" . BASEURL . SCRIPT . "#resources\" method=post>\n"; } else { print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; } print "<DIV align=center>\n"; if ($state) { if ($data["type"] == "user") { print "<H2>Add User Group</H2>\n"; } else { print "<H2>Add Resource Group</H2>\n"; } } else { if ($data["type"] == "user") { print "<H2>Edit User Group</H2>\n"; print "{$usergroups[$data['groupid']]['name']}<br>\n"; $editusergroup = 1; } else { print "<H2>Edit Resource Group</H2>\n"; } } if ($state && $data["type"] == "user" || $data["isowner"] || $data["type"] == "resource") { print "<TABLE>\n"; if ($data["type"] == "resource") { print " <TR>\n"; print " <TH align=right>Type:</TH>\n"; print " <TD>\n"; if ($state && $submitErr) { $resourcetypeid = $data['resourcetypeid']; } else { $resourcetypeid = array_search($grouptype, $resourcetypes["resources"]); } if ($state) { printSelectInput("resourcetypeid", $resourcetypes["resources"], $resourcetypeid); } else { print " {$grouptype}\n"; } print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; } print " <TR>\n"; print " <TH align=right>Name:</TH>\n"; print " <TD><INPUT type=text name=name value=\"{$data['name']}\" "; print "maxlength=30>"; if ($data['type'] == 'user' && $selectAffil) { print "@"; printSelectInput('affiliationid', $affils, $data['affiliationid']); } print "</TD>\n"; print " <TD>"; printSubmitErr(GRPNAMEERR); print "</TD>\n"; print " </TR>\n"; if ($data["type"] == "user") { print " <TR>\n"; print " <TH align=right>Owner:</TH>\n"; print " <TD><INPUT type=text name=owner value=\"" . $data["owner"]; print "\"></TD>\n"; print " <TD>"; printSubmitErr(GRPOWNER); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Editable by:</TH>\n"; print " <TD>\n"; if (!empty($data['editgroupid']) && !array_key_exists($data['editgroupid'], $affilusergroups)) { $affilusergroups[$data['editgroupid']] = array('name' => getUserGroupName($data['editgroupid'], 1)); uasort($affilusergroups, "sortKeepIndex"); } printSelectInput("editgroupid", $affilusergroups, $data["editgroupid"]); print " </TD>\n"; print " <TD></TD>"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Initial Max Time (minutes):</TH>\n"; print " <TD><INPUT type=text name=initialmax value=\""; print $data["initialmax"] . "\" maxlength=4></TD>\n"; print " <TD>"; printSubmitErr(INITIALMAXERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Total Max Time (minutes):</TH>\n"; print " <TD><INPUT type=text name=totalmax value=\""; print $data["totalmax"] . "\" maxlength=4></TD>\n"; print " <TD>"; printSubmitErr(TOTALMAXERR); print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Max Extend Time (minutes):</TH>\n"; print " <TD><INPUT type=text name=maxextend value=\""; print $data["maxextend"] . "\" maxlength=4></TD>\n"; print " <TD>"; printSubmitErr(MAXEXTENDERR); print "</TD>\n"; print " </TR>\n"; if ($viewmode == ADMIN_DEVELOPER) { print " <TR>\n"; print " <TH align=right>Max Overlapping Reservations:</TH>\n"; print " <TD><INPUT type=text name=overlap value=\""; print $data["overlap"] . "\" maxlength=4></TD>\n"; print " <TD>"; printSubmitErr(MAXOVERLAPERR); print "</TD>\n"; print " </TR>\n"; } } else { print " <TR>\n"; print " <TH align=right>Owning User Group:</TH>\n"; print " <TD>\n"; if (!array_key_exists($ownerid, $affilusergroups)) { $affilusergroups[$ownerid] = $usergroups[$ownerid]; uasort($affilusergroups, "sortKeepIndex"); } printSelectInput("ownergroup", $affilusergroups, $ownerid); print " </TD>\n"; print " <TD></TD>\n"; print " </TR>\n"; } print "</TABLE>\n"; print "<TABLE>\n"; print " <TR valign=top>\n"; print " <TD>\n"; if ($state) { $cdata = array('type' => $data['type'], 'isowner' => $data['isowner']); $cont = addContinuationsEntry('submitAddGroup', $cdata); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Add Group\">\n"; } else { $cdata = array('type' => $data['type'], 'groupid' => $data['groupid'], 'isowner' => $data['isowner']); if ($data['type'] == 'resource') { $cdata['resourcetypeid'] = $resourcetypeid; } else { $cdata['selectAffil'] = $selectAffil; } $cont = addContinuationsEntry('confirmEditGroup', $cdata); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Confirm Changes\">\n"; } print " </FORM>\n"; print " </TD>\n"; print " <TD>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <INPUT type=hidden name=mode value=viewGroups>\n"; print " <INPUT type=submit value=Cancel>\n"; print " </FORM>\n"; print " </TD>\n"; print " </TR>\n"; print "</TABLE>\n"; } if ($data["type"] != "user") { return; } if ($editusergroup) { print "<H3>Group Membership</H3>\n"; if ($mode == "addGroupUser" && !($submitErr & IDNAMEERR)) { print "<font color=\"#008000\">{$newuser} successfully added to group"; print "</font><br><br>\n"; } if ($mode == "deleteGroupUser") { print "<font color=\"#008000\">{$newuser} successfully deleted from "; print "group</font><br><br>\n"; } $groupmembers = getUserGroupMembers($data["groupid"]); print "<TABLE border=1>\n"; print " <TR>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <TD align=right><INPUT type=submit value=Add></TD>\n"; print " <TD><INPUT type=text name=newuser maxlength=80 size=40 "; if ($submitErr & IDNAMEERR) { print "value=\"{$newuser}\"></TD>\n"; } else { print "></TD>\n"; } if ($submitErr) { print " <TD>\n"; printSubmitErr(IDNAMEERR); print " </TD>\n"; } $cont = addContinuationsEntry('addGroupUser', $data); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " </FORM>\n"; print " </TR>\n"; foreach ($groupmembers as $id => $login) { print " <TR>\n"; print " <TD>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <INPUT type=submit value=Delete>\n"; $data['userid'] = $id; $data['newuser'] = $login; $cont = addContinuationsEntry('deleteGroupUser', $data); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " </FORM>\n"; print " </TD>\n"; print " <TD>{$login}</TD>\n"; print " </TR>\n"; } print "</TABLE>\n"; } }
function editOrAddSchedule($state) { global $submitErr, $mode, $submitErrMsg; $schedules = getSchedules(); $days = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); $newcont = 0; if ($submitErr || $mode == "submitScheduleTime" || $mode == "submitAddSchedule") { $data = processScheduleInput(0); $newcont = 1; # continuation to get here was deleted; so, we'll need to set # deletefromself true this time } else { $data["scheduleid"] = getContinuationVar("scheduleid"); $id = $data["scheduleid"]; $data["name"] = $schedules[$id]["name"]; $data["owner"] = $schedules[$id]["owner"]; $data["submode"] = processInputVar("submode", ARG_STRING); } $schedules = getSchedules(); print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print "<DIV align=center>\n"; if ($state) { print "<H2>Add Schedule</H2>\n"; } else { print "<H2>Edit Schedule</H2>\n"; } if ($mode == "submitAddSchedule") { print "<font color=\"#008000\">Schedule successfully added"; print "</font><br><br>\n"; print "Now you must add start and end times for the schedule<br>\n"; } print "<TABLE>\n"; print " <TR>\n"; print " <TH align=right>Name:</TH>\n"; print " <TD><INPUT type=text name=name value=\"" . $data["name"] . "\" "; print "maxlength=25></TD>\n"; print " <TD>"; if ($mode == "confirmAddSchedule" || $mode == "confirmEditSchedule") { printSubmitErr(SCHNAMEERR); } print "</TD>\n"; print " </TR>\n"; print " <TR>\n"; print " <TH align=right>Owner:</TH>\n"; print " <TD><INPUT type=text name=owner value=\""; print $data["owner"] . "\"></TD>\n"; print " <TD>"; if ($mode == "confirmAddSchedule" || $mode == "confirmEditSchedule") { printSubmitErr(SCHOWNERERR); } print "</TD>\n"; print " </TR>\n"; print "</TABLE>\n"; print "<TABLE>\n"; print " <TR valign=top>\n"; print " <TD>\n"; if ($state) { $cont = addContinuationsEntry('confirmAddSchedule', array(), SECINDAY, 0, 1, 1); print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Confirm Schedule\">\n"; } else { $cdata = array('scheduleid' => $data['scheduleid']); if ($newcont) { $cont = addContinuationsEntry('confirmEditSchedule', $cdata); } else { $cont = addContinuationsEntry('confirmEditSchedule', $cdata, SECINDAY, 0, 1, 1); } print " <INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print " <INPUT type=submit value=\"Confirm Changes\">\n"; } print " </FORM>\n"; print " </TD>\n"; print " <TD>\n"; print " <FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print " <INPUT type=hidden name=mode value=viewSchedules>\n"; print " <INPUT type=submit value=Cancel>\n"; print " </FORM>\n"; print " </TD>\n"; print " </TR>\n"; print "</TABLE>\n"; if ($state) { return; } print "The start and end day/times are based on a week's time period with "; print "the start/end point being 'Sunday 12:00 am'. i.e. The earliest "; print "start day/time is 'Sunday 12:00 am' and the latest end day/"; print "time is 'Sunday 12:00 am'<br><br>\n"; if (!$submitErr && $mode == "submitScheduleTime" && $data["submode"] == "Save changes") { print "<font color=green>Changes saved</font><br>\n"; } printSubmitErr(OVERLAPERR); print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print "<TABLE>\n"; print " <TR>\n"; print " <TD></TD>\n"; print " <TH>Start</TH>\n"; print " <TD></TD>\n"; print " <TH>End</TH>\n"; print " <TD></TD>\n"; print " </TR>\n"; $addrow = 0; if ($mode == "submitScheduleTime") { $addrow = 1; } print "<TR><TD colspan=5>"; print "</TD></TR>\n"; $doaddrow = 0; if ($mode == "submitScheduleTime") { if ($data["selrow"] == "") { $end = $data["count"]; } elseif ($data["submode"] == "Insert before selected row") { $doaddrow = 1; $addrow = $data["selrow"]; $end = $data["count"] + 1; } elseif ($data["submode"] == "Insert after selected row") { $doaddrow = 1; $addrow = $data["selrow"] + 1; $end = $data["count"] + 1; } else { $end = $data["count"]; } } else { $end = count($schedules[$data["scheduleid"]]["times"]); } if ($end == 0) { $doaddrow = 1; $addrow = 0; $end = 1; } reset($schedules[$data["scheduleid"]]["times"]); $index = 0; for ($count = 0; $count < $end; $count++) { // if mode == submitScheduleTime, print submitted times if ($mode == "submitScheduleTime") { if ($doaddrow && $count == $addrow) { $startday = ""; $starttime = ""; $endday = ""; $endtime = ""; $doaddrow = 0; $index--; } else { $startday = $data["startDay"][$index]; $starttime = $data["startTime"][$index]; $endday = $data["endDay"][$index]; $endtime = $data["endTime"][$index]; } print " <TR>\n"; print " <TD align=right><INPUT type=radio name=selrow value={$count}></TD>\n"; printStartEndTimeForm2($startday, $starttime, $count, "start"); print " <TD> </TD>\n"; printStartEndTimeForm2($endday, $endtime, $count, "end"); } else { $time = current($schedules[$data["scheduleid"]]["times"]); print " <TR>\n"; print " <TD align=right><INPUT type=radio name=selrow value={$count}></TD>\n"; printStartEndTimeForm($time["start"], $count, "start"); print " <TD> </TD>\n"; printStartEndTimeForm($time["end"], $count, "end"); next($schedules[$data["scheduleid"]]["times"]); } print " <TD width=70>"; if ($data["submode"] == "Save changes") { printSubmitErr(1 << $count); } print "</TD>"; print " </TR>\n"; $index++; } $colspan = 5; print " <TR>\n"; print " <TD align=center colspan={$colspan}><INPUT type=submit name=submode value=\"Delete selected row\"></TD>\n"; print " <TR>\n"; print " </TR>\n"; print " <TD align=center colspan={$colspan}><INPUT type=submit name=submode value=\"Insert before selected row\"></TD>\n"; print " <TR>\n"; print " </TR>\n"; print " <TD align=center colspan={$colspan}><INPUT type=submit name=submode value=\"Insert after selected row\"></TD>\n"; print " <TR>\n"; print " </TR>\n"; print " <TD align=center colspan={$colspan}><INPUT type=submit name=submode value=\"Save changes\"></TD>\n"; print " </TR>\n"; print "</TABLE>\n"; $cdata = array('scheduleid' => $data['scheduleid'], 'count' => $count, 'name' => $data['name'], 'owner' => $data['owner']); if ($newcont) { $cont = addContinuationsEntry('submitScheduleTime', $cdata, SECINDAY, 1, 0); } else { $cont = addContinuationsEntry('submitScheduleTime', $cdata, SECINDAY, 0, 0); } print "<INPUT type=hidden name=continuation value=\"{$cont}\">\n"; print "</FORM>\n"; }
function generateDhcpForm($data) { global $submitErr; $mnipaddr = processInputVar('mnipaddr', ARG_STRING, ""); print "<div>\n"; print "<h3>Generate Data for dhcpd.conf File (Optional)</h3>\n"; print "<form action=\"" . BASEURL . SCRIPT . "\" method=post>\n"; print "Enter the private address for the management node<br>"; print "on which the data will be used:<br>\n"; print "<INPUT type=text name=mnipaddr value=\"{$mnipaddr}\" maxlength=15>\n"; printSubmitErr(IPADDRERR); print "<br>\n"; print "<input type=submit value=\"Download Data\">\n"; $cont = addContinuationsEntry('generateDHCP', $data, SECINDAY, 1, 0); print "<input type=hidden name=continuation value=\"{$cont}\">\n"; print "</form>\n"; print "</div>\n"; }