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("|