From a9e594706022287b78911885352cfb91f4b697d7 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Fri, 21 Jan 2011 11:40:49 -0700 Subject: [PATCH] Bug #9514: Don't allow adding public key if already exists --- imp/lib/Mime/Viewer/Smime.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/imp/lib/Mime/Viewer/Smime.php b/imp/lib/Mime/Viewer/Smime.php index 7169ff9ca..1d5b3ee08 100644 --- a/imp/lib/Mime/Viewer/Smime.php +++ b/imp/lib/Mime/Viewer/Smime.php @@ -295,7 +295,13 @@ class IMP_Mime_Viewer_Smime extends Horde_Mime_Viewer_Base isset($sig_result->email) && $GLOBALS['registry']->hasMethod('contacts/addField') && $GLOBALS['prefs']->getValue('add_source')) { - $status[] = '[' . $this->getConfigParam('imp_contents')->linkViewJS($this->_mimepart, 'view_attach', _("View Certificate"), array('params' => array('mode' => IMP_Contents::RENDER_INLINE, 'view_smime_key' => 1))) . '] [' . Horde::link('#', '', null, null, $this->_impsmime->savePublicKeyURL($this->getConfigParam('imp_contents')->getMailbox(), $this->getConfigParam('imp_contents')->getUid(), $base_id) . ' return false;') . _("Save Certificate in your Address Book") . ']'; + $status_out = '[' . $this->getConfigParam('imp_contents')->linkViewJS($this->_mimepart, 'view_attach', _("View Certificate"), array('params' => array('mode' => IMP_Contents::RENDER_INLINE, 'view_smime_key' => 1))) . ']'; + try { + $this->_impsmime->getPublicKey($sig_result->email); + } catch (Horde_Exception $e) { + $status_out .= ' [' . Horde::link('#', '', null, null, $this->_impsmime->savePublicKeyURL($this->getConfigParam('imp_contents')->getMailbox(), $this->getConfigParam('imp_contents')->getUid(), $base_id) . ' return false;') . _("Save Certificate in your Address Book") . ']'; + } + $status[] = $status_out; } } catch (Horde_Exception $e) { self::$_cache[$base_id]['status'][0]['icon'] = Horde::img('alerts/error.png', _("Error")); -- 2.11.0