Allow other objectclass combination operators than 'and'.
authorJan Schneider <jan@horde.org>
Mon, 20 Sep 2010 22:03:07 +0000 (00:03 +0200)
committerJan Schneider <jan@horde.org>
Mon, 20 Sep 2010 22:38:04 +0000 (00:38 +0200)
framework/Ldap/lib/Horde/Ldap/Filter.php

index b2a6cd0..4370ab6 100644 (file)
@@ -259,17 +259,19 @@ class Horde_Ldap_Filter
      * Builds a filter (commonly for objectClass attributes) from different
      * configuration options.
      *
-     * @param array $params  Hash with configuration options that build the
-     *                       search filter. Possible hash keys:
-     *                       - 'filter': An LDAP filter string.
-     *                       - 'objectclass' (string): An objectClass name.
-     *                       - 'objectclass' (array): A list of objectClass
-     *                                                names.
+     * @param array $params    Hash with configuration options that build the
+     *                         search filter. Possible hash keys:
+     *                         - 'filter': An LDAP filter string.
+     *                         - 'objectclass' (string): An objectClass name.
+     *                         - 'objectclass' (array): A list of objectClass
+     *                                                  names.
+     * @param string $operator How to combine mutliple 'objectclass' entries.
+     *                         'and' or 'or'.
      *
      * @return Horde_Ldap_Filter  A filter matching the specified criteria.
      * @throws Horde_Ldap_Exception
      */
-    public static function build(array $params)
+    public static function build(array $params, $operator = 'and')
     {
         if (!empty($params['filter'])) {
             return Horde_Ldap_Filter::parse($params['filter']);
@@ -284,7 +286,7 @@ class Horde_Ldap_Filter
         if (count($filters) == 1) {
             return $filters[0];
         }
-        return Horde_Ldap_Filter::combine('and', $filters);
+        return Horde_Ldap_Filter::combine($operator, $filters);
     }
 
     /**