$NetBSD: patch-aa,v 1.1.1.1 2005/07/06 12:32:50 marttikuparinen Exp $

--- options.php.orig	2003-05-03 22:39:13.000000000 +0200
+++ options.php
@@ -64,7 +64,15 @@ if (compatibility_check_sm_version(1, 3)
           return $Messages;
       }
       $r=ldap_bind($ds,"","");
-      $sr=ldap_search($ds,$ldap_base_dn,"($ldap_user_field=$username)"); //search for uid
+      $user_filter = "($ldap_user_field=$username)";
+      if ($ldap_filter != "") {
+      	$user_filter = "(&($ldap_filter)$user_filter)";
+      }
+      if ($ldap_scope == "onelevel") {
+      	$sr=ldap_list($ds,$ldap_base_dn,$user_filter); //search for uid
+      } else {
+      	$sr=ldap_search($ds,$ldap_base_dn,$user_filter); //search for uid
+      }
       if (ldap_count_entries($ds,$sr)>1) {
           array_push($Messages,'Duplicate mailaddress entries detected, cannot change forwarding!');
           return $Messages;
@@ -162,7 +170,15 @@ function change_qldforward_go($debug) {
 		if ($debug) array_push($Messages,"New forward: $newforward");
 		$newentry=array();
                 if ($newforward == "") {
-                        $sr = ldap_search($ds,$dn,"($ldap_user_field=$username)");
+			$user_filter = "($ldap_user_field=$username)";
+			if ($ldap_filter != "") {
+				$user_filter = "(&($ldap_filter)$user_filter)";
+			}
+			if ($ldap_scope == "onelevel") {
+                        	$sr = ldap_list($ds,$dn,$user_filter);
+			} else {
+                        	$sr = ldap_search($ds,$dn,$user_filter);
+			}
                         $info = ldap_first_entry($ds,$sr);
 			$current_forward = @ldap_get_values($ds,$info,$forwarding_field);
 			if (!$current_forward) {
