diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | config/config.inc.php.sample | 4 | ||||
-rw-r--r-- | config/defaults.inc.php | 4 | ||||
-rw-r--r-- | program/js/app.js | 12 | ||||
-rw-r--r-- | program/steps/mail/compose.inc | 1 | ||||
-rw-r--r-- | program/steps/mail/show.inc | 2 | ||||
-rw-r--r-- | program/steps/settings/edit_identity.inc | 1 |
7 files changed, 20 insertions, 5 deletions
@@ -70,6 +70,7 @@ RELEASE 1.4.4 - Security: Fix local file inclusion (and code execution) via crafted 'plugins' option [CVE-2020-12640] - Security: Fix CSRF bypass that could be used to log out an authenticated user [CVE-2020-12626] (#7302) - Mailvelope: Fix size of iframe for PGP-inlined mail (#7348) +- Mailvelope: Add config option to use Main Keyring (#7348) RELEASE 1.4.3 ------------- diff --git a/config/config.inc.php.sample b/config/config.inc.php.sample index 99a54c495..0279a7211 100644 --- a/config/config.inc.php.sample +++ b/config/config.inc.php.sample @@ -86,3 +86,7 @@ $config['plugins'] = array( // skin name: folder from skins/ $config['skin'] = 'elastic'; + +// Use the Main Keyring in Mailvelope? If not, use (creating if required) +// a per-site keyring. Most sites use the Main Keyring, so set this to true. +$config['mailvelope_main_keyring'] = true; diff --git a/config/defaults.inc.php b/config/defaults.inc.php index 35a8257ee..0986720a5 100644 --- a/config/defaults.inc.php +++ b/config/defaults.inc.php @@ -854,6 +854,10 @@ $config['compose_responses_static'] = array( // Note: Lookup is client-side, so the server must support Cross-Origin Resource Sharing $config['keyservers'] = array('keys.openpgp.org'); +// Use the Main Keyring in Mailvelope? If not, use (creating if required) +// a per-site keyring. This is set to false for backwards compatibility. +$config['mailvelope_main_keyring'] = false; + // ---------------------------------- // ADDRESSBOOK SETTINGS // ---------------------------------- diff --git a/program/js/app.js b/program/js/app.js index 0c0cee012..89661fd68 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3711,7 +3711,7 @@ function rcube_webmail() // Load Mailvelope functionality (and initialize keyring if needed) this.mailvelope_load = function(action) { - var keyring = this.env.user_id, + var keyring = this.env.mailvelope_main_keyring ? undefined : this.env.user_id, fn = function(kr) { ref.mailvelope_keyring = kr; ref.mailvelope_init(action, kr); @@ -3722,10 +3722,14 @@ function rcube_webmail() mailvelope.VERSION_MAJOR = Math.floor(parseFloat(v)); return mailvelope.getKeyring(keyring); }).then(fn, function(err) { - // attempt to create a new keyring for this app/user - mailvelope.createKeyring(keyring).then(fn, function(err) { + if (keyring) { + // attempt to create a new keyring for this app/user + mailvelope.createKeyring(keyring).then(fn, function(err) { + console.error(err); + }); + } else { console.error(err); - }); + } }); }; diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 387b5d653..5487e4bf5 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -93,6 +93,7 @@ $OUTPUT->set_env('save_localstorage', (bool)$RCMAIL->config->get('compose_save_l $OUTPUT->set_env('is_sent', false); $OUTPUT->set_env('mimetypes', rcmail_supported_mimetypes()); $OUTPUT->set_env('keyservers', $RCMAIL->config->keyservers()); +$OUTPUT->set_env('mailvelope_main_keyring', $RCMAIL->config->get('mailvelope_main_keyring')); $drafts_mbox = $RCMAIL->config->get('drafts_mbox'); $config_show_sig = $RCMAIL->config->get('show_sig', 1); diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index a36dce918..bb085cb3b 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -85,7 +85,7 @@ if ($uid) { // set configuration $RCMAIL->set_env_config(array('delete_junk', 'flag_for_deletion', 'read_when_deleted', - 'skip_deleted', 'display_next', 'forward_attachment')); + 'skip_deleted', 'display_next', 'forward_attachment', 'mailvelope_main_keyring')); // set special folders foreach (array('drafts', 'trash', 'junk') as $mbox) { diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc index 133c50ffb..8eefa3d96 100644 --- a/program/steps/settings/edit_identity.inc +++ b/program/steps/settings/edit_identity.inc @@ -33,6 +33,7 @@ if (($_GET['_iid'] || $_POST['_iid']) && $RCMAIL->action=='edit-identity') { $RCMAIL->overwrite_action('identities'); return; } + $OUTPUT->set_env('mailvelope_main_keyring', $RCMAIL->config->get('mailvelope_main_keyring')); } // add-identity else { |