From 725276481e858d9218897b7a165f75f7f3551220 Mon Sep 17 00:00:00 2001 From: Gunnar Wrobel
Date: Wed, 22 Apr 2009 23:03:15 +0200 Subject: [PATCH] Fix the filter definition. Support another way of saving objects. --- .../lib/Horde/Kolab/Server/Object/Inetorgperson.php | 7 ++++++- .../lib/Horde/Kolab/Server/Object/Kolab/Address.php | 17 ++++++++++++++++- .../lib/Horde/Kolab/Server/Object/Kolab/Distlist.php | 11 ++++++++++- .../lib/Horde/Kolab/Server/Object/Kolab/User.php | 19 +++++++++++++++++-- .../Horde/Kolab/Server/Object/Kolabgroupofnames.php | 9 +++++++-- .../Horde/Kolab/Server/Object/Kolabinetorgperson.php | 7 ++++++- .../Horde/Kolab/Server/Object/Kolabpop3account.php | 2 +- .../Horde/Kolab/Server/Object/Kolabsharedfolder.php | 7 ++++++- .../Kolab/Server/Object/Organizationalperson.php | 7 ++++++- .../lib/Horde/Kolab/Server/Object/Person.php | 9 +++++++-- 10 files changed, 82 insertions(+), 13 deletions(-) diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Inetorgperson.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Inetorgperson.php index 9b51aa344..a467df0d1 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Inetorgperson.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Inetorgperson.php @@ -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; } /** diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Address.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Address.php index 1a20272cf..09cbad459 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Address.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Address.php @@ -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; } /** diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Distlist.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Distlist.php index baa788292..a9959c238 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Distlist.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Distlist.php @@ -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; } }; diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/User.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/User.php index f4afe7108..59d9ceb23 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/User.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/User.php @@ -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'])) { diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabgroupofnames.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabgroupofnames.php index ef55303bf..2cf397fae 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabgroupofnames.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabgroupofnames.php @@ -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])) { diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabinetorgperson.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabinetorgperson.php index e47fca499..c02241287 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabinetorgperson.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabinetorgperson.php @@ -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; } /** diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabpop3account.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabpop3account.php index 0309fb53f..dc5a765d1 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabpop3account.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabpop3account.php @@ -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]) diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabsharedfolder.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabsharedfolder.php index 48767784b..d79093e71 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabsharedfolder.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolabsharedfolder.php @@ -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; } /** diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php index 668c5fda1..cd0351aaf 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php @@ -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; } /** diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Person.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Person.php index 67d34fa32..8c9e51129 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Person.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Person.php @@ -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]) -- 2.11.0