diff --git a/lam/templates/lists/listusers.php b/lam/templates/lists/listusers.php index af856863..9a540a58 100644 --- a/lam/templates/lists/listusers.php +++ b/lam/templates/lists/listusers.php @@ -31,6 +31,9 @@ include_once ("../../lib/status.inc"); session_save_path("../../sess"); @session_start(); +// copy HTTP-GET variables to HTTP-POST +$_POST = $_POST + $_GET; + // check if button was pressed and if we have to add/delete a user if ($_POST['new_user'] || $_POST['del_user']){ // add new user @@ -90,6 +93,16 @@ if (!$sortattrib) $sortattrib = strtolower($attr_array[0]); +// generate search filter for sort links +$searchfilter = ""; +for ($k = 0; $k < sizeof($desc_array); $k++) { + if ($_POST["filter" . strtolower($attr_array[$k])]) { + $searchfilter = $searchfilter . "&filter" . + strtolower($attr_array[$k]) . "=". + $_POST["filter" . strtolower($attr_array[$k])]; + } +} + // configure search filter // Users have the attribute "*" $filter = "(&(&(|(objectClass=posixAccount) (objectClass=sambaAccount)) (!(uid=*$)))"; @@ -102,10 +115,9 @@ for ($k = 0; $k < sizeof($desc_array); $k++) { } $filter = $filter . ")"; - // read entries only from ldap server if not yet stored in session or if refresh // button is pressed or if filter is applied -if ($_SESSION["userlist"] && !$_POST['refresh'] && !$_POST["apply_filter"]) { +if ($_SESSION["userlist"] && $_GET["norefresh"]) { if ($_GET["sort"] == 1) usort ($_SESSION["userlist"], "cmp_array"); $userinfo = $_SESSION["userlist"]; @@ -120,6 +132,7 @@ if ($_SESSION["userlist"] && !$_POST['refresh'] && !$_POST["apply_filter"]) { if ($userinfo["count"] == 0) StatusMessage("WARN", "", _("No Users found!")); + // delete first array entry which is "count" array_shift($userinfo); $_SESSION["userlist"] = $userinfo; } @@ -143,11 +156,11 @@ echo "\n"; // table header for ($k = 0; $k < sizeof ($desc_array); $k++) { if ($sortattrib == strtolower($attr_array[$k])) - echo "\n"; + echo "\n"; else echo "\n"; - echo "" . + echo "" . $desc_array[$k] . "\n"; } echo "\n"; @@ -212,31 +225,39 @@ function draw_navigation_bar ($user_count) { global $max_pageentrys; global $page; global $sortattrib; + global $searchfilter; - echo ("\n"); + echo ("
"); - echo (""); + echo ("=>"); + echo (""); + echo (""); - echo ("
  "); + echo ("  "); if ($page != 1) - echo ("<="); + echo ("<="); else echo ("<="); echo (" "); if ($page < ($user_count / $max_pageentrys)) - echo ("=>"); + echo ("=>"); else - echo ("=>"); + echo " " . $user_count . " " . _("Users found"); + echo (""); + + echo (""); for ($i = 0; $i < ($user_count / $max_pageentrys); $i++) { if ($i == $page - 1) echo (" " . ($i + 1)); else - echo (" " . ($i + 1) . ""); + "&sortattrib=" . $sortattrib . $searchfilter . + "\">" . ($i + 1) . ""); } echo ("
"); }