From 62901caaa1a717ae1c5a3d63dea776c160e59c82 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Tue, 28 Dec 2010 18:33:45 +0100 Subject: [PATCH] [jan] Fix searching for fields matching an email address if using 'emails' attribute instead of 'email' (Bug #9472). --- turba/docs/CHANGES | 2 ++ turba/lib/Api.php | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/turba/docs/CHANGES b/turba/docs/CHANGES index 546d8df79..27309c9d9 100644 --- a/turba/docs/CHANGES +++ b/turba/docs/CHANGES @@ -16,6 +16,8 @@ v3.0-git v2.3.6-cvs ---------- +[jan] Fix searching for fields matching an email address if using 'emails' + attribute instead of 'email' (Bug #9472). [jan] Use personal address books first if determining the default one (Valentin Vidic, Request #9367). [jan] Use name format preference not only for paging, but for sorting too diff --git a/turba/lib/Api.php b/turba/lib/Api.php index de667c382..461bc91f7 100644 --- a/turba/lib/Api.php +++ b/turba/lib/Api.php @@ -1655,8 +1655,16 @@ class Turba_Api extends Horde_Registry_Api } $driver = $GLOBALS['injector']->getInstance('Turba_Driver')->getDriver($source); + $criterium = array('email' => $address); + if (!isset($driver->map['email'])) { + if (isset($driver->map['emails'])) { + $criterium = array('emails' => $address); + } else { + continue; + } + } - $list = $driver->search(array('email' => $address), null, 'AND', array(), $strict ? array('email') : array()); + $list = $driver->search($criterium, null, 'AND', array(), $strict ? array('email') : array()); if (!($list instanceof Turba_List)) { continue; } -- 2.11.0