Fix the filter definition.
authorGunnar Wrobel <p@rdus.de>
Wed, 22 Apr 2009 21:03:15 +0000 (23:03 +0200)
committerGunnar Wrobel <p@rdus.de>
Wed, 22 Apr 2009 21:03:15 +0000 (23:03 +0200)
Support another way of saving objects.

framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Inetorgperson.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Address.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Distlist.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/User.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabgroupofnames.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabinetorgperson.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabpop3account.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabsharedfolder.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Person.php

index 9b51aa3..a467df0 100644 (file)
@@ -186,7 +186,12 @@ class Horde_Kolab_Server_Object_Inetorgperson extends Horde_Kolab_Server_Object_
      */
     public static function getFilter()
     {
-        return '(&(' . self::ATTRIBUTE_OC . '=' . self::OBJECTCLASS_INETORGPERSON . '))';
+        $criteria = array('AND' => array(array('field' => self::ATTRIBUTE_OC,
+                                               'op'    => '=',
+                                               'test'  => self::OBJECTCLASS_INETORGPERSON),
+                          ),
+        );
+        return $criteria;
     }
 
     /**
index 1a20272..09cbad4 100644 (file)
@@ -60,7 +60,22 @@ class Horde_Kolab_Server_Object_Kolab_Address extends Horde_Kolab_Server_Object_
      */
     public static function getFilter()
     {
-        return '(&(objectclass=inetOrgPerson)(!(uid=*))(sn=*))';
+        $criteria = array('AND' => array(
+                              array('field' => self::ATTRIBUTE_SN,
+                                    'op'    => '=',
+                                    'test'  => '*'),
+                              array('field' => self::ATTRIBUTE_OC,
+                                    'op'    => '=',
+                                    'test'  => self::OBJECTCLASS_INETORGPERSON),
+                              array('NOT' => array(
+                                        array('field' => self::ATTRIBUTE_SID,
+                                              'op'    => '=',
+                                              'test'  => '*'),
+                                    ),
+                              ),
+                          ),
+        );
+        return $criteria;
     }
 
     /**
index baa7882..a9959c2 100644 (file)
@@ -37,6 +37,15 @@ class Horde_Kolab_Server_Object_Kolab_Distlist extends Horde_Kolab_Server_Object
      */
     public static function getFilter()
     {
-        return '(&(objectClass=kolabGroupOfNames)(mail=*))';
+        $criteria = array('AND' => array(
+                              array('field' => self::ATTRIBUTE_MAIL,
+                                    'op'    => '=',
+                                    'test'  => '*'),
+                              array('field' => self::ATTRIBUTE_OC,
+                                    'op'    => '=',
+                                    'test'  => self::OBJECTCLASS_KOLABGROUPOFNAMES),
+                          ),
+        );
+        return $criteria;
     }
 };
index f4afe71..59d9ceb 100644 (file)
@@ -98,7 +98,22 @@ class Horde_Kolab_Server_Object_Kolab_User extends Horde_Kolab_Server_Object_Kol
      */
     public static function getFilter()
     {
-        return  '(&(objectClass=kolabInetOrgPerson)(uid=*)(mail=*)(sn=*))';
+        $criteria = array('AND' => array(
+                              array('field' => self::ATTRIBUTE_SN,
+                                    'op'    => '=',
+                                    'test'  => '*'),
+                              array('field' => self::ATTRIBUTE_MAIL,
+                                    'op'    => '=',
+                                    'test'  => '*'),
+                              array('field' => self::ATTRIBUTE_SID,
+                                    'op'    => '=',
+                                    'test'  => '*'),
+                              array('field' => self::ATTRIBUTE_OC,
+                                    'op'    => '=',
+                                    'test'  => self::OBJECTCLASS_KOLABINETORGPERSON),
+                          ),
+        );
+        return $criteria;
     }
 
     /**
@@ -273,7 +288,7 @@ class Horde_Kolab_Server_Object_Kolab_User extends Horde_Kolab_Server_Object_Kol
      * @throws Horde_Kolab_Server_Exception If the information to be saved is
      *                                      invalid.
      */
-    public function save($info)
+    public function save($info = null)
     {
         if (!$this->exists()) {
             if (!isset($info['cn'])) {
index ef55303..2cf397f 100644 (file)
@@ -69,7 +69,12 @@ class Horde_Kolab_Server_Object_Kolabgroupofnames extends Horde_Kolab_Server_Obj
      */
     public static function getFilter()
     {
-        return '(' . self::ATTRIBUTE_OC . '=' . self::OBJECTCLASS_KOLABGROUPOFNAMES . ')';
+        $criteria = array('AND' => array(array('field' => self::ATTRIBUTE_OC,
+                                               'op'    => '=',
+                                               'test'  => self::OBJECTCLASS_KOLABGROUPOFNAMES),
+                          ),
+        );
+        return $criteria;
     }
 
     /**
@@ -120,7 +125,7 @@ class Horde_Kolab_Server_Object_Kolabgroupofnames extends Horde_Kolab_Server_Obj
      *
      * @return boolean|PEAR_Error True on success.
      */
-    public function save($info)
+    public function save($info = null)
     {
         if (!$this->exists()) {
             if (!isset($info[self::ATTRIBUTE_CN])) {
index e47fca4..c022412 100644 (file)
@@ -209,7 +209,12 @@ class Horde_Kolab_Server_Object_Kolabinetorgperson extends Horde_Kolab_Server_Ob
      */
     public static function getFilter()
     {
-        return '(&(' . self::ATTRIBUTE_OC . '=' . self::OBJECTCLASS_KOLABINETORGPERSON . '))';
+        $criteria = array('AND' => array(array('field' => self::ATTRIBUTE_OC,
+                                               'op'    => '=',
+                                               'test'  => self::OBJECTCLASS_KOLABINETORGPERSON),
+                          ),
+        );
+        return $criteria;
     }
 
     /**
index 0309fb5..dc5a765 100644 (file)
@@ -185,7 +185,7 @@ class Horde_Kolab_Server_Object_Kolabpop3account extends Horde_Kolab_Server_Obje
      *
      * @return boolean|PEAR_Error True on success.
      */
-    public function save($info)
+    public function save($info = null)
     {
         if (!$this->exists() && empty($info[self::ATTRIBUTE_CN])
             && !empty($info[self::ATTRIBUTE_SERVER])
index 4876778..d79093e 100644 (file)
@@ -70,7 +70,12 @@ class Horde_Kolab_Server_Object_Kolabsharedfolder extends Horde_Kolab_Server_Obj
      */
     public static function getFilter()
     {
-        return '(' . self::ATTRIBUTE_OC . '=' . self::OBJECTCLASS_KOLABSHAREDFOLDER .')';
+        $criteria = array('AND' => array(array('field' => self::ATTRIBUTE_OC,
+                                               'op'    => '=',
+                                               'test'  => self::OBJECTCLASS_KOLABSHAREDFOLDER),
+                          ),
+        );
+        return $criteria;
     }
 
     /**
index 668c5fd..cd0351a 100644 (file)
@@ -116,7 +116,12 @@ class Horde_Kolab_Server_Object_Organizationalperson extends Horde_Kolab_Server_
      */
     public static function getFilter()
     {
-        return '(&(' . self::ATTRIBUTE_OC . '=' . self::OBJECTCLASS_ORGANIZATIONALPERSON . '))';
+        $criteria = array('AND' => array(array('field' => self::ATTRIBUTE_OC,
+                                               'op'    => '=',
+                                               'test'  => self::OBJECTCLASS_ORGANIZATIONALPERSON),
+                          ),
+        );
+        return $criteria;
     }
 
     /**
index 67d34fa..8c9e511 100644 (file)
@@ -196,7 +196,12 @@ class Horde_Kolab_Server_Object_Person extends Horde_Kolab_Server_Object
      */
     public static function getFilter()
     {
-        return '(&(' . self::ATTRIBUTE_OC . '=' . self::OBJECTCLASS_PERSON . '))';
+        $criteria = array('AND' => array(array('field' => self::ATTRIBUTE_OC,
+                                               'op'    => '=',
+                                               'test'  => self::OBJECTCLASS_PERSON),
+                          ),
+        );
+        return $criteria;
     }
 
     /**
@@ -233,7 +238,7 @@ class Horde_Kolab_Server_Object_Person extends Horde_Kolab_Server_Object
      *
      * @return boolean|PEAR_Error True on success.
      */
-    public function save($info)
+    public function save($info = null)
     {
         if (!$this->exists()
             && empty($info[self::ATTRIBUTE_CN])