mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-10 06:58:27 +03:00
Remove remembered passphrase after 15 minutes of inactivity
https://github.com/the-djmaze/snappymail/issues/1142#issuecomment-1635839009
This commit is contained in:
parent
9bc56a5abd
commit
190db75c19
5 changed files with 16 additions and 5 deletions
|
|
@ -4,5 +4,16 @@ export const Passphrases = new WeakMap();
|
|||
|
||||
Passphrases.ask = async (key, sAskDesc, btnText) =>
|
||||
Passphrases.has(key)
|
||||
? {password:Passphrases.get(key)/*, remember:false*/}
|
||||
? {password:Passphrases.handle(key)/*, remember:false*/}
|
||||
: await AskPopupView.password(sAskDesc, btnText);
|
||||
|
||||
const timeouts = {};
|
||||
// get/set accessor to control deletion after 15 minutes of inactivity
|
||||
Passphrases.handle = (key, pass) => {
|
||||
if (!timeouts[key]) {
|
||||
timeouts[key] = (()=>Passphrases.delete(key)).debounce(900000);
|
||||
}
|
||||
pass && Passphrases.set(key, pass);
|
||||
timeouts[key]();
|
||||
return Passphrases.get(key);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ export const GnuPGUserStore = new class {
|
|||
'GnuPG key<br>' + key.id + ' ' + key.emails[0],
|
||||
btnTxt
|
||||
);
|
||||
pass && pass.remember && Passphrases.set(key, pass.password);
|
||||
pass && pass.remember && Passphrases.handle(key, pass.password);
|
||||
return pass?.password;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ const
|
|||
privateKey: privateKey.key,
|
||||
passphrase
|
||||
});
|
||||
result && pass.remember && Passphrases.set(privateKey, passphrase);
|
||||
result && pass.remember && Passphrases.handle(privateKey, passphrase);
|
||||
return result;
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1571,7 +1571,7 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
);
|
||||
if (null != pass) {
|
||||
params.signPassphrase = pass.password;
|
||||
// pass.remember && Passphrases.set(identity, pass.password);
|
||||
// pass.remember && Passphrases.handle(identity, pass.password);
|
||||
} else {
|
||||
sign = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -655,7 +655,7 @@ export class MailMessageView extends AbstractViewRight {
|
|||
message.smimeDecrypted(true);
|
||||
MimeToMessage(response.Result.data, message);
|
||||
message.html() ? message.viewHtml() : message.viewPlain();
|
||||
pass && pass.remember && Passphrases.set(identity, pass.password);
|
||||
pass && pass.remember && Passphrases.handle(identity, pass.password);
|
||||
if ('signed' in response.Result) {
|
||||
message.smimeSigned(response.Result.signed);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue