use NEC to handle gpg paswword things
This commit is contained in:
parent
d94a85f5a2
commit
10b735636d
|
@ -300,7 +300,8 @@ class CommonConnection:
|
||||||
composing_xep, label, forward_from, delayed,
|
composing_xep, label, forward_from, delayed,
|
||||||
session, form_node, user_nick, keyID,
|
session, form_node, user_nick, keyID,
|
||||||
callback)
|
callback)
|
||||||
self.dispatch('GPG_ALWAYS_TRUST', _on_always_trust)
|
gajim.nec.push_incoming_event(GPGTrustKey(None,
|
||||||
|
conn=self, callback=_on_always_trust))
|
||||||
else:
|
else:
|
||||||
self._message_encrypted_cb(output, type_, msg, msgtxt,
|
self._message_encrypted_cb(output, type_, msg, msgtxt,
|
||||||
original_message, fjid, resource, jid, xhtml,
|
original_message, fjid, resource, jid, xhtml,
|
||||||
|
|
|
@ -1991,8 +1991,8 @@ ConnectionJingle, ConnectionIBBytestream):
|
||||||
signed = self.get_signed_presence(msg,
|
signed = self.get_signed_presence(msg,
|
||||||
self._send_first_presence)
|
self._send_first_presence)
|
||||||
if signed is None:
|
if signed is None:
|
||||||
self.dispatch('GPG_PASSWORD_REQUIRED',
|
gajim.nec.push_incoming_event(GPGPasswordRequired(None,
|
||||||
(self._send_first_presence,))
|
conn=self, callback=self._send_first_presence))
|
||||||
# _send_first_presence will be called when user enter
|
# _send_first_presence will be called when user enter
|
||||||
# passphrase
|
# passphrase
|
||||||
send_first_presence = False
|
send_first_presence = False
|
||||||
|
|
|
@ -1373,3 +1373,15 @@ class CapsReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
|
||||||
self.resource = self.base_event.resource
|
self.resource = self.base_event.resource
|
||||||
self.client_caps = self.base_event.client_caps
|
self.client_caps = self.base_event.client_caps
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
class GPGTrustKey(nec.NetworkIncomingEvent):
|
||||||
|
name = 'gpg-trust-key'
|
||||||
|
base_network_events = []
|
||||||
|
|
||||||
|
class GPGPasswordRequired(nec.NetworkIncomingEvent):
|
||||||
|
name = 'gpg-password-required'
|
||||||
|
base_network_events = []
|
||||||
|
|
||||||
|
def generate(self):
|
||||||
|
self.keyid = gajim.config.get_per('accounts', self.conn.name, 'keyid')
|
||||||
|
return True
|
|
@ -876,26 +876,24 @@ class Interface:
|
||||||
_('You are currently connected without your OpenPGP key.'))
|
_('You are currently connected without your OpenPGP key.'))
|
||||||
self.forget_gpg_passphrase(obj.keyID)
|
self.forget_gpg_passphrase(obj.keyID)
|
||||||
|
|
||||||
def handle_event_gpg_password_required(self, account, array):
|
def handle_event_gpg_password_required(self, obj):
|
||||||
#('GPG_PASSWORD_REQUIRED', account, (callback,))
|
#('GPG_PASSWORD_REQUIRED', account, (callback,))
|
||||||
callback = array[0]
|
if obj.keyid in self.gpg_passphrase:
|
||||||
keyid = gajim.config.get_per('accounts', account, 'keyid')
|
request = self.gpg_passphrase[obj.keyid]
|
||||||
if keyid in self.gpg_passphrase:
|
|
||||||
request = self.gpg_passphrase[keyid]
|
|
||||||
else:
|
else:
|
||||||
request = PassphraseRequest(keyid)
|
request = PassphraseRequest(obj.keyid)
|
||||||
self.gpg_passphrase[keyid] = request
|
self.gpg_passphrase[obj.keyid] = request
|
||||||
request.add_callback(account, callback)
|
request.add_callback(obj.conn.name, obj.callback)
|
||||||
|
|
||||||
def handle_event_gpg_always_trust(self, account, callback):
|
def handle_event_gpg_trust_key(self, obj):
|
||||||
#('GPG_ALWAYS_TRUST', account, callback)
|
#('GPG_ALWAYS_TRUST', account, callback)
|
||||||
def on_yes(checked):
|
def on_yes(checked):
|
||||||
if checked:
|
if checked:
|
||||||
gajim.connections[account].gpg.always_trust = True
|
obj.conn.gpg.always_trust = True
|
||||||
callback(True)
|
obj.callback(True)
|
||||||
|
|
||||||
def on_no():
|
def on_no():
|
||||||
callback(False)
|
obj.callback(False)
|
||||||
|
|
||||||
dialogs.YesNoDialog(_('GPG key not trusted'), _('The GPG key used to '
|
dialogs.YesNoDialog(_('GPG key not trusted'), _('The GPG key used to '
|
||||||
'encrypt this chat is not trusted. Do you really want to encrypt '
|
'encrypt this chat is not trusted. Do you really want to encrypt '
|
||||||
|
@ -1731,8 +1729,6 @@ class Interface:
|
||||||
[self.handle_event_unique_room_id_unsupported],
|
[self.handle_event_unique_room_id_unsupported],
|
||||||
'UNIQUE_ROOM_ID_SUPPORTED': \
|
'UNIQUE_ROOM_ID_SUPPORTED': \
|
||||||
[self.handle_event_unique_room_id_supported],
|
[self.handle_event_unique_room_id_supported],
|
||||||
'GPG_PASSWORD_REQUIRED': [self.handle_event_gpg_password_required],
|
|
||||||
'GPG_ALWAYS_TRUST': [self.handle_event_gpg_always_trust],
|
|
||||||
'PASSWORD_REQUIRED': [self.handle_event_password_required],
|
'PASSWORD_REQUIRED': [self.handle_event_password_required],
|
||||||
'SSL_ERROR': [self.handle_event_ssl_error],
|
'SSL_ERROR': [self.handle_event_ssl_error],
|
||||||
'FINGERPRINT_ERROR': [self.handle_event_fingerprint_error],
|
'FINGERPRINT_ERROR': [self.handle_event_fingerprint_error],
|
||||||
|
@ -1747,6 +1743,8 @@ class Interface:
|
||||||
'gc-invitation-received': [self.handle_event_gc_invitation],
|
'gc-invitation-received': [self.handle_event_gc_invitation],
|
||||||
'gc-presence-received': [self.handle_event_gc_presence],
|
'gc-presence-received': [self.handle_event_gc_presence],
|
||||||
'gmail-notify': [self.handle_event_gmail_notify],
|
'gmail-notify': [self.handle_event_gmail_notify],
|
||||||
|
'gpg_password-required': [self.handle_event_gpg_password_required],
|
||||||
|
'gpg-trust-key': [self.handle_event_gpg_trust_key],
|
||||||
'http-auth-received': [self.handle_event_http_auth],
|
'http-auth-received': [self.handle_event_http_auth],
|
||||||
'iq-error-received': [self.handle_event_iq_error],
|
'iq-error-received': [self.handle_event_iq_error],
|
||||||
'jingle-connected-received': [self.handle_event_jingle_connected],
|
'jingle-connected-received': [self.handle_event_jingle_connected],
|
||||||
|
|
Loading…
Reference in New Issue