Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/roundcube/roundcubemail.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG1
-rw-r--r--config/config.inc.php.sample4
-rw-r--r--config/defaults.inc.php4
-rw-r--r--program/js/app.js12
-rw-r--r--program/steps/mail/compose.inc1
-rw-r--r--program/steps/mail/show.inc2
-rw-r--r--program/steps/settings/edit_identity.inc1
7 files changed, 20 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 5dd622766..721eab16d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -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 {