From bd0551b22076b82a6d49e9f7a2b2e0c90a1b2326 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Fri, 05 Feb 2016 07:25:27 -0500 Subject: [PATCH] Secure also downloads of addressbook exports, managesieve script exports and Enigma keys exports --- program/lib/Roundcube/rcube_csv2vcard.php | 27 +++++++++++++++++++-------- 1 files changed, 19 insertions(+), 8 deletions(-) diff --git a/program/lib/Roundcube/rcube_csv2vcard.php b/program/lib/Roundcube/rcube_csv2vcard.php index 8eff4d5..ef85507 100644 --- a/program/lib/Roundcube/rcube_csv2vcard.php +++ b/program/lib/Roundcube/rcube_csv2vcard.php @@ -1,6 +1,6 @@ <?php -/* +/** +-----------------------------------------------------------------------+ | This file is part of the Roundcube Webmail client | | Copyright (C) 2008-2012, The Roundcube Dev Team | @@ -52,9 +52,9 @@ 'company' => 'organization', //'company_main_phone' => '', 'department' => 'department', - //'email_2_address' => '', //@TODO + 'email_2_address' => 'email:other', //'email_2_type' => '', - //'email_3_address' => '', //@TODO + 'email_3_address' => 'email:other', //'email_3_type' => '', 'email_address' => 'email:pref', //'email_type' => '', @@ -186,9 +186,9 @@ //'company_main_phone' => "Company Main Phone", 'department' => "Department", //'directory_server' => "Directory Server", - //'email_2_address' => "E-mail 2 Address", + 'email_2_address' => "E-mail 2 Address", //'email_2_type' => "E-mail 2 Type", - //'email_3_address' => "E-mail 3 Address", + 'email_3_address' => "E-mail 3 Address", //'email_3_type' => "E-mail 3 Type", 'email_address' => "E-mail Address", //'email_type' => "E-mail Type", @@ -394,7 +394,9 @@ } /** + * Import contacts from CSV file * + * @param string $csv Content of the CSV file */ public function import($csv) { @@ -457,6 +459,8 @@ } /** + * Export vCards + * * @return array rcube_vcard List of vcards */ public function export() @@ -554,7 +558,13 @@ foreach ($this->map as $idx => $name) { $value = $data[$idx]; if ($value !== null && $value !== '') { - $contact[$name] = $value; + if (!empty($contact[$name])) { + $contact[$name] = (array) $contact[$name]; + $contact[$name][] = $value; + } + else { + $contact[$name] = $value; + } } } @@ -571,9 +581,10 @@ if ($value !== null && $value !== '') { foreach (array($type, '*') as $_type) { if ($data_idx = $this->gmail_label_map[$key][$item_key][$_type]) { + $value = explode(' ::: ', $value); + if (!empty($contact[$data_idx])) { - $contact[$data_idx] = (array) $contact[$data_idx]; - $contact[$data_idx][] = $value; + $contact[$data_idx] = array_merge((array) $contact[$data_idx], $value); } else { $contact[$data_idx] = $value; -- Gitblit v1.9.1