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 .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "
" . $oPattern->render() . "
\n"; return $sToRender; } // if fails .. function getAddFailPage() { global $default; $sToRender .= renderHeading(_("Edit Group Properties")); $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "
" . _("Add Group Failed") . ":
" . _("Sorry, Group Already Exists!") . "
rootUrl/control.php?action=listGroups\">
\n"; return $sToRender; } // if its the manual edit page..then display normally function getEditPage($iGroupID) { global $default; $oGroup = null; if (isset($iGroupID)) { $oGroup = Group::get($iGroupID); } $sToRender .= renderHeading(_("Edit Group Properties")); $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; // if a group selected...show checkboxes if (isset($iGroupID)) { $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; if (Permission::userIsSystemAdministrator()) { $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; } $sToRender .= "\n"; $sToRender .= "\n"; } $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "" . getUpdateButton($oGroup); $sToRender .= getCancelButton($oGroup); $sToRender .= "
" . _("Group Name") . ": " . getGroupDisplay($oGroup) . "
" . _("Unit Administrator") . ": " . getUnitAdminCheckBox($oGroup) . "
" . _("System Administrator") . ": " . getSysAdminCheckBox($oGroup) . "
\n"; return $sToRender; } // if edition is successful print otu success page function getEditPageSuccess() { global $default; $sToRender .= renderHeading(_("Edit Group Properties")); $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "
" . _("Success") . "!
" . _("The Group was successfully modified") . "
rootUrl/control.php?action=listGroups\">
\n"; return $sToRender; } // gets the page if edition fails function getEditPageFail() { global $default; $sToRender .= renderHeading(_("Edit Group Properties")); $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "
" . _("Failure") . "!
" . _("The Group modification Failed!") . "
rootUrl/control.php?action=listGroups\">
\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 "rootUrl/control.php?action=groupManagement\">\n"; } else { return "rootUrl/control.php?action=listGroups\">\n"; } } ?>