";
$sToRender .= "
| " . _("User Name") . ": " . getUserDisplay($oUser) . " | ";
$sToRender .= "rootUrl/control.php?action=listUsers\"> ";
$sToRender .= " |
\n";
$sToRender .= "\n";
$sToRender .= "";
$sToRender .= "
";
$sToRender .= "
";
$sToRender .= "
";
$sToRender .= "
";
$sToRender .= "
";
$sToRender .= "
";
return $sToRender;
}
/* Initialise some structures to build ui
* Return an array of:
* Current Users Group Ids
* UnitAdmin Manageable Group Ids
*/
function InitGroups($iUserID) {
global $default;
$aUserGroupIDs = array();
$aManageableGroupIDs = array();
$aUserGroupIDs = GroupUserLink::getGroups($iUserID);
if (Permission::userIsUnitAdministrator()) {
/*ok*/ $sQuery = array("SELECT ST.id FROM " . $default->groups_table . " ST " .
"INNER JOIN " . $default->groups_units_table . " GUL on ST.id=GUL.group_id " .
"WHERE GUL.unit_id = ?", User::getUnitID($_SESSION["userID"]));
$sql = $default->db;
$sql->query($sQuery);
while ($sql->next_record()) {
array_push($aManageableGroupIDs, $sql->f("id"));
}
}
return array($aUserGroupIDs, $aManageableGroupIDs);
}
/* Get all groups of a user */
function getUserGroups($aInfoGroups) {
$aManageableGroupIDs = array();
if (Permission::userIsSystemAdministrator()) {
$aManageableGroupIDs = $aInfoGroups[0];
} else if (Permission::userIsUnitAdministrator()) {
$aManageableGroupIDs = array_intersect($aInfoGroups[0], $aInfoGroups[1]);
}
foreach ($aManageableGroupIDs as $iGroupID) {
$oGroup = Group::get($iGroupID);
$sToRender .= "\n";
}
return $sToRender;
}
// Get other group
function getOtherGroups($aInfoGroups) {
$aOtherGroupIDs = array();
$allGroupIDs = array();
if (Permission::userIsSystemAdministrator()) {
$allGroups = Group::getList("ORDER BY name");/*ok*/
foreach ($allGroups as $oGroup) {
array_push($allGroupIDs, $oGroup->getID());
}
$aOtherGroupIDs = array_diff($allGroupIDs, $aInfoGroups[0]);
} else if (Permission::userIsUnitAdministrator()) {
$aOtherGroupIDs = array_diff($aInfoGroups[1], $aInfoGroups[0]);
}
foreach ($aOtherGroupIDs as $iGroupID) {
$oGroup = Group::get($iGroupID);
$sToRender .= "\n";
}
return $sToRender;
}
// get page for removal
function getPage($iUserID) {
global $default;
$oUser = null;
$oGroup = null;
// change headings if User selected
if (isset($iUserID)) {
$oUser = User::get($iUserID);
} else {
$heading = "| " . _("Please select a User") . ": |
\n";
}
$sToRender .= renderHeading(_("Edit User Groups"));
$sToRender .= "\n";
$sToRender .= $heading;
$sToRender .= "\n";
$sToRender .= "
\n";
$sToRender .= "" . _("User Name") . ": " . getUserDisplay($oUser) . " | \n";
$sToRender .= "\n";
$sToRender .= "
\n";
$sToRender .= "\n";
$sToRender .= "
\n";
$sToRender .= "\n";
$sToRender .= "
\n";
$sToRender .= "
\n";
return $sToRender;
}
// show listbox of Users belonging to Users_Groups_link table
function getUserDisplay($oUser) {
global $default;
if (!isset($oUser)) {
$oPatternListBox = & new PatternListBox($default->users_table, "username", "id", "fUserID");
if (Permission::userIsUnitAdministrator()) {
$oPatternListBox->setFromClause("INNER JOIN $default->users_groups_table UGL on ST.id=UGL.user_id " .
"INNER JOIN $default->groups_units_table GUL on UGL.group_id=GUL.group_id");
$oPatternListBox->setWhereClause("GUL.unit_id=" . User::getUnitID($_SESSION["userID"]));
}
$oPatternListBox->setPostBackOnChange(true);
return $oPatternListBox->render();
} else {
return "iId . "\">\n" .
$oUser->getUserName();
}
}
?>