From 2965a981b7ec22866fbdf2d567d87e2d068d3617 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Fri, 31 Jul 2015 16:04:08 -0400
Subject: [PATCH] Allow to search and import missing PGP pubkeys from keyservers using Publickey.js

---
 program/steps/addressbook/copy.inc |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc
index 82917e2..e4e2765 100644
--- a/program/steps/addressbook/copy.inc
+++ b/program/steps/addressbook/copy.inc
@@ -5,7 +5,7 @@
  | program/steps/addressbook/copy.inc                                    |
  |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2007, The Roundcube Dev Team                            |
+ | Copyright (C) 2007-2013, The Roundcube Dev Team                       |
  |                                                                       |
  | Licensed under the GNU General Public License version 3 or            |
  | any later version with exceptions for skins & plugins.                |
@@ -25,15 +25,14 @@
 
 
 $cids         = rcmail_get_cids();
-$target       = get_input_value('_to', RCUBE_INPUT_POST);
-$target_group = get_input_value('_togid', RCUBE_INPUT_POST);
+$target       = rcube_utils::get_input_value('_to', rcube_utils::INPUT_POST);
+$target_group = rcube_utils::get_input_value('_togid', rcube_utils::INPUT_POST);
 
 $success  = 0;
 $errormsg = 'copyerror';
 $maxnum   = $RCMAIL->config->get('max_group_members', 0);
 
-foreach ($cids as $source => $cid)
-{
+foreach ($cids as $source => $cid) {
     // Something wrong, target not specified
     if (!strlen($target)) {
         break;
@@ -63,8 +62,10 @@
 
         // Check if contact exists, if so, we'll need it's ID
         // Note: Some addressbooks allows empty email address field
-        if (!empty($a_record['email']))
-            $result = $TARGET->search('email', $a_record['email'], 1, true, true);
+        // @TODO: should we check all email addresses?
+        $email = $CONTACTS->get_col_values('email', $a_record, true);
+        if (!empty($email))
+            $result = $TARGET->search('email', $email[0], 1, true, true);
         else if (!empty($a_record['name']))
             $result = $TARGET->search('name', $a_record['name'], 1, true, true);
         else
@@ -87,9 +88,9 @@
             }
         }
         else {
-            $record = $result->first();
-            $ids[] = $record['ID'];
-            $errormsg = empty($a_record['email']) ? 'contactnameexists' : 'contactexists';
+            $record   = $result->first();
+            $ids[]    = $record['ID'];
+            $errormsg = empty($email) ? 'contactnameexists' : 'contactexists';
         }
     }
 

--
Gitblit v1.9.1