Code

Workarounded filter for empty RDN settings
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 22 Feb 2010 08:40:27 +0000 (08:40 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 22 Feb 2010 08:40:27 +0000 (08:40 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15659 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-core/include/class_filterLDAP.inc

index 8375a3832a536fc37cc6b05d193c97fe944526d7..34aff04a8e5652b6c00a9e61cb5bdb8df7dbb459 100644 (file)
@@ -2,7 +2,7 @@
 
 class filterLDAP {
 
-  static function query($base, $scope, $filter, $attributes, $category, $objectStorage= "")
+  static function query($base, $scope, $filter, $attributes, $category, $objectStorage= array(""))
   {
     $config= session::global_get('config');
     $ldap= $config->get_ldap_link(TRUE);
@@ -21,16 +21,17 @@ class filterLDAP {
     if (!is_array($category)) {
       $category= array($category);
     }
-    if (!is_array($objectStorage)) {
-      $objectStorage= array($objectStorage);
-    }
-    $method= (empty($objectStorage) && !($flags & GL_SUBSEARCH))?"ls":"search";
+
+    // Store in base - i.e. is a rdn value empty?
+    $storeOnBase= count($objectStorage) == 1 && empty($objectStorage[0]);
+
+    $method= ($storeOnBase && !($flags & GL_SUBSEARCH))?"ls":"search";
 
     // Initialize search bases
     $bases= array();
     
     // Get list of sub bases to search on
-    if (count($objectStorage) == 0) {
+    if ($storeOnBase) {
       $bases[$base]= "";
     } else {
       foreach ($objectStorage as $oc) {