"; $sToRender .= "" . _("User Name") . ": " . getUserDisplay($oUser) . ""; $sToRender .= "rootUrl/control.php?action=listUsers\">"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= ""; // Headings $sToRender .= ""; $sToRender .= ""; $sToRender .= ""; $sToRender .= ""; $sToRender .= ""; // Initialise structure $aInfoGroups = InitGroups($iUserID); // Select Boxes $sToRender .= ""; $sToRender .= ""; // Move buttons $sToRender .= ""; $sToRender .= ""; $sToRender .= ""; // Filter Button $sToRender .= ""; $sToRender .= ""; $sToRender .= ""; $sToRender .= ""; $sToRender .= ""; // Assign/Cancel button $sToRender .= ""; // Insert all user's groups $sBgColor = "#F5F6EE"; $sToRender .= ""; $sToRender .= ""; $sToRender .= "
" . _("Assigned Groups") . "" . _("Available Groups") . "
\n"; $sToRender .= ""; $sToRender .= ""; $sToRender .= "
"; $sToRender .= ""; $sToRender .= "
\n"; $sToRender .= "
" . _("Filter") . "
" . _("Filter") . "
"; $sToRender .= ""; $sToRender .= "\n"; $sToRender .= "
" . _("Current Groups") . "
"; $sToRender .= ""; for ($i=0; $i < count($aInfoGroups[0]); $i++) { $oGroup = Group::get($aInfoGroups[0][$i]); $sToRender .= "\n"; } $sToRender .= "
" . ($i+1) . "". $oGroup->getName() ."
"; $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(); $oUser = User::get($iUserID); $aGroups = GroupUtil::listGroupsForUser($oUser); $aGroupIDs = array(); foreach ($aGroups as $oGroup) { $aGroupIDs[] = $oGroup->getID(); } 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($aGroupIDs, $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 .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "
" . _("User Name") . ": " . getUserDisplay($oUser) . "
\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(); } } ?>