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 | 30 ++++++++++++++++-------------- 1 files changed, 16 insertions(+), 14 deletions(-) diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc index 40b2a79..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. | @@ -17,9 +17,6 @@ +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | +-----------------------------------------------------------------------+ - - $Id: copy.inc 471 2007-02-09 21:25:50Z thomasb $ - */ // only process ajax requests @@ -28,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; @@ -60,10 +56,16 @@ foreach ($cid as $cid) { $a_record = $CONTACTS->get_record($cid, true); + // avoid copying groups + if ($a_record['_type'] == 'group') + continue; + // 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 @@ -86,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'; } } @@ -117,7 +119,7 @@ } } -if ($success == 0) +if (!$success) $OUTPUT->show_message($errormsg, 'error'); else $OUTPUT->show_message('copysuccess', 'notice', array('nr' => $success)); -- Gitblit v1.9.1