groups_table WHERE id = ?", $iGroupID);
// #2978 if you're not a system administrator, you can't add a sys admin group
// FIXME: there must be a more elegant way to do this? possibly some exclusions to the pattern
if (Permission::userIsSystemAdministrator()) {
$aDisplayColumns = array("name","is_sys_admin","is_unit_admin");
$aStoreColumns = array("name","is_sys_admin","is_unit_admin");
$aColumnNames = array(_("Name") . ":", _("System Administrator") . ":", _("Unit Administrator") . ":");
$aDisplayColumnTypes = array(1,2,2);
$aDatabaseColumnTypes = array(1,2,2);
} else {
$aDisplayColumns = array("name","is_unit_admin");
$aStoreColumns = array("name","is_unit_admin");
$aColumnNames = array(_("Name") . ":", _("Unit Administrator") . ":");
$aDisplayColumnTypes = array(1,2);
$aDatabaseColumnTypes = array(1,2);
}
// get list of group properties...name...text field...is_Sys_admin and is_unit_admin..checkboxes
$oPattern = & new PatternEditableListFromQuery($sQuery, $default->groups_table, $aDisplayColumns, $aStoreColumns, $aColumnNames, $aDisplayColumnTypes, $aDatabaseColumnTypes);
$oPattern->setUniqueName("groupEdit");
$oPattern->setColumnsRequired(array(1,0,0));
$sToRender .= renderHeading(_("Add Group Properties"));
$sToRender .= "
\n";
$sToRender .= "
\n";
$sToRender .= "
\n";
$sToRender .= "
" . $oPattern->render() . "
\n";
$sToRender .= "
\n";
$sToRender .= "
\n";
$sToRender .= "
\n";
$sToRender .= "
\n";
$sToRender .= "
\n";
$sToRender .= "
\n";
$sToRender .= "
\n";
return $sToRender;
}
// if fails ..
function getAddFailPage() {
global $default;
$sToRender .= renderHeading(_("Edit Group Properties"));
$sToRender .= "
\n";
return $sToRender;
}
// if edition is successful print otu success page
function getEditPageSuccess() {
global $default;
$sToRender .= renderHeading(_("Edit Group Properties"));
$sToRender .= "
\n";
return $sToRender;
}
// gets the page if edition fails
function getEditPageFail() {
global $default;
$sToRender .= renderHeading(_("Edit Group Properties"));
$sToRender .= "
\n";
return $sToRender;
}
// show the list box when no group selected
// then shows a text box with the group's name
function getGroupDisplay($oGroup) {
global $default;
if (!isset($oGroup)) {
if (Permission::userIsSystemAdministrator()) {
// if this is the system administrator, prepend group names with unit name
$oPatternListBox = & new PatternListBox($default->groups_table, "name", "id", "fGroupID");
$oPatternListBox->setFromClause("LEFT OUTER JOIN groups_units_link GUL on ST.id=GUL.group_id " .
"LEFT OUTER JOIN units_lookup UL on GUL.unit_id=UL.id");
$oPatternListBox->setCompositeDisplayName("DISTINCT COALESCE(CONCAT(CONCAT(UL.name, '-'),ST.name),ST.name)");
} else if (Permission::userIsUnitAdministrator()) {
// else if this is a unit administrator, only display the groups in your unit
$oPatternListBox = & new PatternListBox($default->groups_table, "name", "id", "fGroupID");
$oPatternListBox->setFromClause("INNER JOIN $default->groups_units_table GUL on ST.id=GUL.group_id");
$oPatternListBox->setWhereClause("GUL.unit_id=" . User::getUnitID($_SESSION["userID"]));
$oUnassignedUsersLB = & new PatternListBox($default->groups_table, "name", "id", "fGroupID");
$oUnassignedUsersLB->setFromClause("LEFT OUTER JOIN $default->groups_units_table GUL ON ST.id=GUL.group_id");
$oUnassignedUsersLB->setWhereClause("ISNULL(GUL.unit_id) AND ST.name <> 'Anonymous' AND ST.name <> 'System Administrators'");
$oPatternListBox->setAdditionalEntries($oUnassignedUsersLB->getEntries());
}
$oPatternListBox->setPostBackOnChange(true);
return $oPatternListBox->render();
} else {
return "iId . "\">\n" .
"getName() . "\">";
}
}
// returns the checkbox ticked or unticked
function getUnitAdminCheckBox($oGroup) {
if (!isset($oGroup)) {
return "";
} else {
return "getUnitAdmin() ? "CHECKED " : " ") . " />";
}
}
// returns the checkbox ticked or unticked
function getSysAdminCheckBox($oGroup) {
if (!isset($oGroup)) {
return "";
} else {
return "getSysAdmin() ? "CHECKED " : " ") . " />";
}
}
// gets the updatebutton when a group is selected
function getUpdateButton($oGroup) {
global $default;
if (!isset($oGroup)) {
return _("Please select a Group") . ": ";
} else {
return "
\n";
}
}
// gets the cancel button when a group is selected
function getCancelButton($oGroup) {
global $default;
if (!isset($oGroup)) {
return "