From f81fb6af4403cacddf81081cee2273b657a8aae5 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Sat, 21 Jan 2012 00:19:59 -0800 Subject: [PATCH] Require explicitly setting access_token value. Silently substituting the password field was nice, but for mechs that can use either the password or an access token, it makes things very difficult. This really only affects MSN clients since Facebook clients should already be setting the api key. --- .../features/feature_mechanisms/mechanisms.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sleekxmpp/features/feature_mechanisms/mechanisms.py b/sleekxmpp/features/feature_mechanisms/mechanisms.py index 48a5de1c..5df1ea63 100644 --- a/sleekxmpp/features/feature_mechanisms/mechanisms.py +++ b/sleekxmpp/features/feature_mechanisms/mechanisms.py @@ -36,18 +36,17 @@ class feature_mechanisms(base_plugin): return 'starttls' in self.xmpp.features def basic_callback(mech, values): + creds = self.xmpp.credentials for value in values: if value == 'username': values['username'] = self.xmpp.boundjid.user elif value == 'password': - values['password'] = self.xmpp.credentials['password'] - elif value == 'access_token': - if 'access_token' in self.xmpp.credentials: - values['access_token'] = self.xmpp.credentials['access_token'] - else: - values['access_token'] = self.xmpp.credentials['password'] - elif value in self.xmpp.credentials: - values[value] = self.xmpp.credentials[value] + values['password'] = creds['password'] + elif value == 'email': + jid = self.xmpp.boundjid.bare + values['email'] = creds.get('email', jid) + elif value in creds: + values[value] = creds[value] mech.fulfill(values) sasl_callback = self.config.get('sasl_callback', None)