From: Gunnar Wrobel Date: Fri, 10 Apr 2009 11:00:38 +0000 (+0200) Subject: Fix the generation of IDs if on of the ID attributes has more than one value. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=5661f958d4461ad4771915e16b355b15bc3ee7cc;p=horde.git Fix the generation of IDs if on of the ID attributes has more than one value. --- diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Groupofnames.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Groupofnames.php index f8d07518d..abd7dce36 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Groupofnames.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Groupofnames.php @@ -81,7 +81,11 @@ class Horde_Kolab_Server_Object_Groupofnames extends Horde_Kolab_Server_Object */ public function generateId($info) { - return trim(self::ATTRIBUTE_CN . '=' . $info[self::ATTRIBUTE_CN], " \t\n\r\0\x0B,"); + $id = $info[self::ATTRIBUTE_CN]; + if (is_array($id)) { + $id = $id[0]; + } + return trim(self::ATTRIBUTE_CN . '=' . $id, " \t\n\r\0\x0B,"); } /** 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 384a87081..ef2e6eb28 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Inetorgperson.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Inetorgperson.php @@ -159,7 +159,11 @@ class Horde_Kolab_Server_Object_Inetorgperson extends Horde_Kolab_Server_Object_ $fieldarray = array(); foreach ($id_mapfields as $mapfield) { if (isset($info[$mapfield])) { - $fieldarray[] = $this->server->structure->quoteForUid($info[$mapfield]); + $id = $info[$mapfield]; + if (is_array($id)) { + $id = $id[0]; + } + $fieldarray[] = $this->server->structure->quoteForUid($id); } else { $fieldarray[] = ''; } 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 710c3e6f9..ae816d6ed 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 @@ -251,7 +251,11 @@ class Horde_Kolab_Server_Object_Kolab_User extends Horde_Kolab_Server_Object_Kol $fieldarray = array(); foreach ($id_mapfields as $mapfield) { if (isset($info[$mapfield])) { - $fieldarray[] = $this->server->structure->quoteForUid($info[$mapfield]); + $id = $info[$mapfield]; + if (is_array($id)) { + $id = $id[0]; + } + $fieldarray[] = $this->server->structure->quoteForUid($id); } else { $fieldarray[] = ''; } 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 e36c571cf..a029ab889 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Person.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Person.php @@ -193,9 +193,14 @@ class Horde_Kolab_Server_Object_Person extends Horde_Kolab_Server_Object public function generateId($info) { if (!empty($info[self::ATTRIBUTE_CN])) { - return self::ATTRIBUTE_CN . '=' . $this->server->structure->quoteForUid($info[self::ATTRIBUTE_CN]); + $id = $info[self::ATTRIBUTE_CN]; + } else { + $id = $info[self::ATTRIBUTE_SN]; } - return self::ATTRIBUTE_CN . '=' . $this->server->structure->quoteForUid($info[self::ATTRIBUTE_SN]); + if (is_array($id)) { + $id = $id[0]; + } + return self::ATTRIBUTE_CN . '=' . $this->server->structure->quoteForUid($id); } /**