mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-11-01 16:13:00 +00:00
Fix support for upgrading encrypted wikis
Importing an encrypted wiki ordinarily doesn’t place the password in the password vault on the basis that one ought to be able to import from a file without automatically inheriting its password. Now there’s a configuration option that can be used by the upgrade plugin to cause the password vault to be updated with any password entered by the user. The end result is that the user only needs to enter their password once.
This commit is contained in:
@@ -46,7 +46,17 @@ exports.decryptStoreArea = function(encryptedStoreArea,password) {
|
||||
}
|
||||
};
|
||||
|
||||
exports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback) {
|
||||
|
||||
/*
|
||||
Attempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.
|
||||
encryptedStoreArea: text of the TiddlyWiki encrypted store area
|
||||
callback: function(tiddlers) called with the array of decrypted tiddlers
|
||||
|
||||
The following configuration settings are supported:
|
||||
|
||||
$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault
|
||||
*/
|
||||
exports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {
|
||||
// Try to decrypt with the current password
|
||||
var tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);
|
||||
if(tiddlers) {
|
||||
@@ -66,6 +76,9 @@ exports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback) {
|
||||
// Attempt to decrypt the tiddlers
|
||||
var tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);
|
||||
if(tiddlers) {
|
||||
if($tw.config.usePasswordVault) {
|
||||
$tw.crypto.setPassword(data.password);
|
||||
}
|
||||
callback(tiddlers);
|
||||
// Exit and remove the password prompt
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user