diff --git a/lam/templates/lists/listusers.php b/lam/templates/lists/listusers.php index 7528d735..88383834 100644 --- a/lam/templates/lists/listusers.php +++ b/lam/templates/lists/listusers.php @@ -20,6 +20,10 @@ $Id$ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +// must be put in config file ... +// maximum count of user entries shown on one page +$max_pageentrys = 3; + include_once ("../../lib/config.inc"); include_once("../../lib/ldap.inc"); @@ -29,19 +33,19 @@ session_save_path("../../sess"); // check if button was pressed and if we have to add/delete a user if ($_POST['new_user'] || $_POST['del_user']){ - // add new user - if ($_POST['new_user']){ - echo(""); - exit; - } - // delete user(s) - if ($_POST['del_user']){ - // search for checkboxes - $users = array_keys($_POST, "on"); - $userstr = implode(";", $users); - echo(""); - } - exit; + // add new user + if ($_POST['new_user']){ + echo(""); + exit; + } + // delete user(s) + if ($_POST['del_user']){ + // search for checkboxes + $users = array_keys($_POST, "on"); + $userstr = implode(";", $users); + echo(""); + } + exit; } echo "listusers\n"; @@ -55,20 +59,23 @@ $desc_array; // list of descriptions for the attributes $attr_string = $_SESSION["config"]->get_userlistAttributes(); $temp_array = explode(";", $attr_string); $hash_table = $_SESSION["ldap"]->attributeUserArray(); +$page = $_GET["page"]; +if (!$page) + $page = 1; for ($i = 0; $i < sizeof($temp_array); $i++) { -// if value is predifined, look up description in hash_table -if (substr($temp_array[$i],0,1) == "#") { - $attr = substr($temp_array[$i],1); - $attr_array[$i] = $attr; - $desc_array[] = $hash_table[$attr]; -} -// if not predefined, the attribute is seperated by a ":" from description -else { - $attr = explode(":", $temp_array[$i]); - $attr_array[$i] = $attr[0]; - $desc_array[$i] = $attr[1]; -} + // if value is predifined, look up description in hash_table + if (substr($temp_array[$i],0,1) == "#") { + $attr = substr($temp_array[$i],1); + $attr_array[$i] = $attr; + $desc_array[] = $hash_table[$attr]; + } + // if not predefined, the attribute is seperated by a ":" from description + else { + $attr = explode(":", $temp_array[$i]); + $attr_array[$i] = $attr[0]; + $desc_array[$i] = $attr[1]; + } } // configure search filter @@ -85,41 +92,64 @@ for ($k = 0; $k < sizeof($desc_array); $k++) { $filter = $filter . ")"; -$attrs = $attr_array; -$sr = @ldap_search($_SESSION["ldap"]->server(), - $_SESSION["config"]->get_UserSuffix(), - $filter, $attrs, 0, 1000); -if ($sr) { - $info = ldap_get_entries($_SESSION["ldap"]->server, $sr); - ldap_free_result($sr); - if ($info["count"] == 0) echo ("

" . - _("No Users found!") . - "

"); +if ($_SESSION["userlist"] && !$_POST['refresh'] && !$_POST["apply_filter"]) { + if ($_GET["sort"]) + usort ($_SESSION["userlist"], "cmp_array"); + $userinfo = $_SESSION["userlist"]; +} else { + + $attrs = $attr_array; + $sr = @ldap_search($_SESSION["ldap"]->server(), + $_SESSION["config"]->get_UserSuffix(), + $filter, $attrs, 0, 1000); + if ($sr) { + $userinfo = ldap_get_entries ($_SESSION["ldap"]->server, $sr); + ldap_free_result ($sr); + if ($userinfo["count"] == 0) echo ("

" . + _("No Users found!") . + "

"); + // delete first array entry which is "count" + array_shift($userinfo); + $_SESSION["userlist"] = $userinfo; + } + else echo ("

" . + _("LDAP Search failed! Please check your preferences.
No Users found!") . + "


"); } -else echo ("

" . _("LDAP Search failed! Please check your preferences.
No Users found!") . "


"); echo ("
\n"); -// delete first array entry which is "count" -array_shift($info); -// sort rows by sort column ($list) -usort($info, "cmp_array"); + + +// create navigation bar on top of user table +echo (""); +echo (""); +echo (""); +for ($i = 0; $i < (sizeof ($userinfo) / $max_pageentrys); $i++) { + if ($i == $page - 1) + echo (""); + else + echo (""); +} +echo ("
" . ($i + 1) . "" . ($i + 1) . "
"); +echo ("
"); // print user table header echo "\n"; echo ""; // table header -for ($k = 0; $k < sizeof($desc_array); $k++) { - echo ""; +for ($k = 0; $k < sizeof ($desc_array); $k++) { + echo ""; } echo "\n"; echo ""; // table header -for ($k = 0; $k < sizeof($desc_array); $k++) { +for ($k = 0; $k < sizeof ($desc_array); $k++) { echo "\n"; // print user list -for ($i = 0; $i < sizeof($info); $i++) { // ignore last entry in array which is "count" - echo("" . - " " . - " "); +$userinfo = array_slice ($userinfo, ($page - 1) * $max_pageentrys, + $max_pageentrys); +for ($i = 0; $i < sizeof ($userinfo); $i++) { // ignore last entry in array which is "count" + echo("" . + " " . + " "); for ($k = 0; $k < sizeof($attr_array); $k++) { echo ("");
" . - $desc_array[$k] . "" . + $desc_array[$k] . "
"; echo ""; echo ""; echo (""); @@ -128,29 +158,31 @@ for ($k = 0; $k < sizeof($desc_array); $k++) { echo "
" . _("Edit") . "
" . _("Edit") . ""); // print all attribute entries seperated by "; " - if (sizeof($info[$i][strtolower($attr_array[$k])]) > 0) { + if (sizeof($userinfo[$i][strtolower($attr_array[$k])]) > 0) { // delete first array entry which is "count" - array_shift($info[$i][strtolower($attr_array[$k])]); + array_shift($userinfo[$i][strtolower($attr_array[$k])]); // generate links for user members if (strtolower($attr_array[$k]) == "memberuid") { $linklist = array(); - for ($d = 0; $d < sizeof($info[$i][strtolower($attr_array[$k])]); $d++) { - $user = $info[$i][strtolower($attr_array[$k])][$d]; // user name + for ($d = 0; $d < sizeof($userinfo[$i][strtolower($attr_array[$k])]); $d++) { + $user = $userinfo[$i][strtolower($attr_array[$k])][$d]; // user name $dn = $_SESSION["ldap"]->search_username($user); // DN entry // if user was found in LDAP make link, otherwise just print name if ($dn) { $linklist[$d] = "" . - $info[$i][strtolower($attr_array[$k])][$d] . ""; + $userinfo[$i][strtolower($attr_array[$k])][$d] . ""; } else $linklist[$d] = $user; } @@ -158,7 +190,7 @@ for ($i = 0; $i < sizeof($info); $i++) { // ignore last entry in array which is } // print all other attributes else { - echo implode("; ", $info[$i][strtolower($attr_array[$k])]); + echo implode("; ", $userinfo[$i][strtolower($attr_array[$k])]); } } echo ("