auto_authorization is now keept in mem. This way it works correctly, but doesn't if you close gajim before your contact ask your auth. Fixes #1630
This commit is contained in:
parent
119c5ed55f
commit
d4cbe39fc2
|
@ -204,6 +204,7 @@ class Connection:
|
||||||
HAS_IDLE = False
|
HAS_IDLE = False
|
||||||
self.on_connect_success = None
|
self.on_connect_success = None
|
||||||
self.retrycount = 0
|
self.retrycount = 0
|
||||||
|
self.auto_auth = [] # list of jid to auto-authorize
|
||||||
# END __init__
|
# END __init__
|
||||||
|
|
||||||
def get_full_jid(self, iq_obj):
|
def get_full_jid(self, iq_obj):
|
||||||
|
@ -565,7 +566,8 @@ class Connection:
|
||||||
|
|
||||||
if ptype == 'subscribe':
|
if ptype == 'subscribe':
|
||||||
gajim.log.debug('subscribe request from %s' % who)
|
gajim.log.debug('subscribe request from %s' % who)
|
||||||
if gajim.config.get('alwaysauth') or who.find("@") <= 0:
|
if gajim.config.get('alwaysauth') or who.find("@") <= 0 or \
|
||||||
|
jid_stripped in self.auto_auth:
|
||||||
if self.connection:
|
if self.connection:
|
||||||
p = common.xmpp.Presence(who, 'subscribed')
|
p = common.xmpp.Presence(who, 'subscribed')
|
||||||
p = self.add_sha(p)
|
p = self.add_sha(p)
|
||||||
|
@ -2198,10 +2200,13 @@ class Connection:
|
||||||
p = common.xmpp.Presence(jid, 'unsubscribe')
|
p = common.xmpp.Presence(jid, 'unsubscribe')
|
||||||
self.connection.send(p)
|
self.connection.send(p)
|
||||||
|
|
||||||
def request_subscription(self, jid, msg, name = '', groups = []):
|
def request_subscription(self, jid, msg, name = '', groups = [],
|
||||||
|
auto_auth = False):
|
||||||
if not self.connection:
|
if not self.connection:
|
||||||
return
|
return
|
||||||
gajim.log.debug('subscription request for %s' % jid)
|
gajim.log.debug('subscription request for %s' % jid)
|
||||||
|
if auto_auth:
|
||||||
|
self.auto_auth.append(jid)
|
||||||
# RFC 3921 section 8.2
|
# RFC 3921 section 8.2
|
||||||
infos = {'jid': jid}
|
infos = {'jid': jid}
|
||||||
if name:
|
if name:
|
||||||
|
|
|
@ -416,10 +416,9 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
||||||
end_iter = message_buffer.get_end_iter()
|
end_iter = message_buffer.get_end_iter()
|
||||||
message = message_buffer.get_text(start_iter, end_iter).decode('utf-8')
|
message = message_buffer.get_text(start_iter, end_iter).decode('utf-8')
|
||||||
group = self.group_comboboxentry.child.get_text().decode('utf-8')
|
group = self.group_comboboxentry.child.get_text().decode('utf-8')
|
||||||
|
auto_auth = self.xml.get_widget('auto_authorize_checkbutton').get_active()
|
||||||
gajim.interface.roster.req_sub(self, jid, message, self.account,
|
gajim.interface.roster.req_sub(self, jid, message, self.account,
|
||||||
group = group, pseudo = nickname)
|
group = group, pseudo = nickname, auto_auth = auto_auth)
|
||||||
if self.xml.get_widget('auto_authorize_checkbutton').get_active():
|
|
||||||
gajim.connections[self.account].send_authorization(jid)
|
|
||||||
self.window.destroy()
|
self.window.destroy()
|
||||||
|
|
||||||
def fill_jid(self):
|
def fill_jid(self):
|
||||||
|
|
|
@ -1398,13 +1398,15 @@ class RosterWindow:
|
||||||
dialogs.InformationDialog(_('Authorization has been sent'),
|
dialogs.InformationDialog(_('Authorization has been sent'),
|
||||||
_('Now "%s" will know your status.') %jid)
|
_('Now "%s" will know your status.') %jid)
|
||||||
|
|
||||||
def req_sub(self, widget, jid, txt, account, group=None, pseudo=None):
|
def req_sub(self, widget, jid, txt, account, group = None, pseudo = None,
|
||||||
|
auto_auth = False):
|
||||||
'''Request subscription to a contact'''
|
'''Request subscription to a contact'''
|
||||||
if group:
|
if group:
|
||||||
group = [group]
|
group = [group]
|
||||||
else:
|
else:
|
||||||
group = []
|
group = []
|
||||||
gajim.connections[account].request_subscription(jid, txt, pseudo, group)
|
gajim.connections[account].request_subscription(jid, txt, pseudo, group,
|
||||||
|
auto_auth)
|
||||||
contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
|
contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
|
||||||
if not contact:
|
if not contact:
|
||||||
keyID = ''
|
keyID = ''
|
||||||
|
|
Loading…
Reference in New Issue