From ad8c9db557d367a8369381384d6cd8e52ccfe4de Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 04 Jan 2012 05:58:00 -0500
Subject: [PATCH] Improve support for multiple composite address fields in LDAP directories

---
 program/include/rcube_ldap.php |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php
index 5c0bd00..c11bbb5 100644
--- a/program/include/rcube_ldap.php
+++ b/program/include/rcube_ldap.php
@@ -1320,12 +1320,13 @@
                 if (!($value = $rec[$lf][$i]))
                     continue;
 
+                list($col, $subtype) = explode(':', $rf);
                 $out['_raw_attrib'][$lf][$i] = $value;
 
                 if ($rf == 'email' && $this->mail_domain && !strpos($value, '@'))
                     $out[$rf][] = sprintf('%s@%s', $value, $this->mail_domain);
-                else if (in_array($rf, array('street','zipcode','locality','country','region')))
-                    $out['address'][$i][$rf] = $value;
+                else if (in_array($col, array('street','zipcode','locality','country','region')))
+                    $out['address'.($subtype?':':'').$subtype][$i][$col] = $value;
                 else if ($rec[$lf]['count'] > 1)
                     $out[$rf][] = $value;
                 else

--
Gitblit v1.9.1