Skip to content
Snippets Groups Projects
Commit c5866f3a authored by Yann Leboulanger's avatar Yann Leboulanger
Browse files

gpg password is now saved 30 seconds when we enter it, so if it is used in...

gpg password is now saved 30 seconds when we enter it, so if it is used in several accounts, we don't need to enter the password twice.
parent 59029d7c
No related branches found
No related tags found
No related merge requests found
......@@ -785,6 +785,11 @@ class Roster_window:
for u in self.contacts[account][user.jid]:
self.remove_user(u, account)
del self.contacts[account][u.jid]
def forget_gpg_passphrase(self, keyid):
if self.gpg_passphrase.has_key(keyid):
del self.gpg_passphrase[keyid]
return False
def send_status(self, account, status, txt):
if status != 'offline':
......@@ -826,13 +831,19 @@ class Roster_window:
passphrase = gajim.config.get_per('accounts', account,
'gpgpassword')
else:
passphrase = ''
w = dialogs.Passphrase_dialog(
_('Enter GPG key passphrase for account %s') % account,
'Save passphrase')
passphrase, save = w.run()
if self.gpg_passphrase.has_key(keyid):
passphrase = self.gpg_passphrase[keyid]
save = False
else:
w = dialogs.Passphrase_dialog(
_('Enter GPG key passphrase for account %s') % account,
'Save passphrase')
passphrase, save = w.run()
if passphrase == -1:
passphrase = ''
else:
self.gpg_passphrase[keyid] = passphrase
gobject.timeout_add(30000, self.forget_gpg_passphrase, keyid)
if save:
gajim.config.set_per('accounts', account, 'savegpgpass', True)
gajim.config.set_per('accounts', account, 'gpgpassword',
......@@ -1508,6 +1519,7 @@ class Roster_window:
self.to_be_removed = {}
self.popups_notification_height = 0
self.popup_notification_windows = []
self.gpg_passphrase = {}
for a in gajim.connections:
self.contacts[a] = {}
self.groups[a] = {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment