From 8e7ad1b25197d3c782f3f30231686598ce5211f8 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sat, 10 May 2003 17:17:56 +0000 Subject: [PATCH] added search filters --- lam/templates/lists/listgroups.php | 33 +++++++++++++++++++++++++++++ lam/templates/lists/listhosts.php | 34 +++++++++++++++++++++++++++++- 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/lam/templates/lists/listgroups.php b/lam/templates/lists/listgroups.php index 50053d23..86b0fcaa 100644 --- a/lam/templates/lists/listgroups.php +++ b/lam/templates/lists/listgroups.php @@ -63,6 +63,16 @@ $desc_array; // list of descriptions for the attributes $attr_string = $_SESSION["config"]->get_grouplistAttributes(); $temp_array = explode(";", $attr_string); $hash_table = $_SESSION["ldap"]->attributeGroupArray(); + +// get current page +$page = $_GET["page"]; +if (!$page) $page = 1; +// take maximum count of user entries shown on one page out of session +if ($_SESSION["config"]->get_MaxListEntries() <= 0) + $max_pageentrys = 10; // default setting, if not yet set +else + $max_pageentrys = $_SESSION["config"]->get_MaxListEntries(); + 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) == "#") { @@ -78,8 +88,18 @@ else { } } +// configure search filter // Groups have the attribute "posixGroup" $filter = "(objectClass=posixGroup)"; +$filter = "(&(objectClass=posixGroup)"; +for ($k = 0; $k < sizeof($desc_array); $k++) { + if ($_POST["filter" . strtolower($attr_array[$k])]) + $filter = $filter . "(" . strtolower($attr_array[$k]) . "=" . + $_POST["filter" . strtolower($attr_array[$k])] . ")"; + else + $_POST["filter" . strtolower($attr_array[$k])] = ""; +} +$filter = $filter . ")"; $attrs = $attr_array; $sr = @ldap_search($_SESSION["ldap"]->server(), $_SESSION["config"]->get_GroupSuffix(), @@ -106,6 +126,19 @@ for ($k = 0; $k < sizeof($desc_array); $k++) { } echo "\n"; +// print filter row +echo ""; +echo ""; +echo ""; +// print input boxes for filters +for ($k = 0; $k < sizeof ($desc_array); $k++) { + echo ""; + echo (""); + echo ""; +} +echo "\n"; + // print group list for ($i = 0; $i < sizeof($info); $i++) { // ignore last entry in array which is "count" echo("get_hostlistAttributes(); $temp_array = explode(";", $attr_string); $hash_table = $_SESSION["ldap"]->attributeHostArray(); + +// get current page +$page = $_GET["page"]; +if (!$page) $page = 1; +// take maximum count of user entries shown on one page out of session +if ($_SESSION["config"]->get_MaxListEntries() <= 0) + $max_pageentrys = 10; // default setting, if not yet set +else + $max_pageentrys = $_SESSION["config"]->get_MaxListEntries(); + 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) == "#") { @@ -78,8 +88,17 @@ else { } } +// configure search filter // Samba hosts have the attribute "sambaAccount" and end with "$" -$filter = "(&(objectClass=sambaAccount) (uid=*$))"; +$filter = "(&(objectClass=sambaAccount) (uid=*$)"; +for ($k = 0; $k < sizeof($desc_array); $k++) { + if ($_POST["filter" . strtolower($attr_array[$k])]) + $filter = $filter . "(" . strtolower($attr_array[$k]) . "=" . + $_POST["filter" . strtolower($attr_array[$k])] . ")"; + else + $_POST["filter" . strtolower($attr_array[$k])] = ""; +} +$filter = $filter . ")"; $attrs = $attr_array; $sr = @ldap_search($_SESSION["ldap"]->server(), $_SESSION["config"]->get_HostSuffix(), @@ -106,6 +125,19 @@ for ($k = 0; $k < sizeof($desc_array); $k++) { } echo "\n"; +// print filter row +echo ""; +echo ""; +echo ""; +// print input boxes for filters +for ($k = 0; $k < sizeof ($desc_array); $k++) { + echo ""; + echo (""); + echo ""; +} +echo "\n"; + // print host list for ($i = 0; $i < sizeof($info); $i++) { echo("