request = self.oauth_request(token, self.ACCESS_TOKEN_URL)
return Token.from_string(self.fetch_response(request))
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
raise NotImplementedError('Implement in subclass')
error = response.get('error_description') or response.get('error')
raise AuthFailed(self, error)
else:
- try:
- argnum = self.user_data.im_func.func_code.co_argcount
- except AttributeError:
- argnum = 2
- finally:
- user_data_args = [response['access_token']]
- if argnum == 3:
- user_data_args.append(response)
-
- response.update(self.user_data(*user_data_args) or {})
+ data = self.user_data(response['access_token'], response)
+ response.update(data or {})
kwargs.update({
'auth': self,
'response': response,
SETTINGS_KEY_NAME = 'DROPBOX_APP_ID'
SETTINGS_SECRET_NAME = 'DROPBOX_API_SECRET'
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
url = 'https://' + DROPBOX_API + '/1/account/info'
request = self.oauth_request(access_token, url)
else None
return token
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
return {
'id': access_token.user_nsid,
else None
return token
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
return {
'id': access_token.user_nsid,
SETTINGS_KEY_NAME = 'FOURSQUARE_CONSUMER_KEY'
SETTINGS_SECRET_NAME = 'FOURSQUARE_CONSUMER_SECRET'
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
params = {'oauth_token': access_token}
url = FOURSQUARE_CHECK_AUTH + '?' + urllib.urlencode(params)
})
return authenticate(*args, **kwargs)
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
url = GITHUB_USER_DATA_URL + urlencode({
'access_token': access_token
SETTINGS_KEY_NAME = 'INSTAGRAM_CLIENT_ID'
SETTINGS_SECRET_NAME = 'INSTAGRAM_CLIENT_SECRET'
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
params = {'access_token': access_token}
url = INSTAGRAM_CHECK_AUTH + '?' + urllib.urlencode(params)
SETTINGS_KEY_NAME = 'LINKEDIN_CONSUMER_KEY'
SETTINGS_SECRET_NAME = 'LINKEDIN_CONSUMER_SECRET'
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Return user data provided"""
fields_selectors = LINKEDIN_FIELD_SELECTORS + \
setting('LINKEDIN_EXTRA_FIELD_SELECTORS', [])
SETTINGS_KEY_NAME = 'ORKUT_CONSUMER_KEY'
SETTINGS_SECRET_NAME = 'ORKUT_CONSUMER_SECRET'
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from Orkut service"""
fields = ORKUT_DEFAULT_DATA
if setting('ORKUT_EXTRA_DATA'):
from urllib import urlencode, urlopen
from django.utils import simplejson
-from django.contrib.auth import authenticate
from social_auth.utils import setting
from social_auth.backends import BaseOAuth2, OAuthBackend, USERNAME
-from social_auth.backends.exceptions import AuthFailed
# Vkontakte configuration
('id', 'id'),
('expires', setting('SOCIAL_AUTH_EXPIRATION', 'expires'))
]
-
+
def get_user_id(self, details, response):
"OAuth providers return an unique user id in response"""
return response['user_id']
def get_user_details(self, response):
"""Return user details from Vkontakte account"""
print response
- return {USERNAME: response.get('nickname') or response.get('screen_name') ,
+ return {USERNAME: response.get('nickname') or \
+ response.get('screen_name'),
'email': '',
'first_name': response.get('first_name'),
'last_name': response.get('last_name')}
AUTH_BACKEND = VkontakteBackend
SETTINGS_KEY_NAME = 'VK_APP_ID'
SETTINGS_SECRET_NAME = 'VK_API_SECRET'
-
- def user_data(self, access_token, response):
+
+ def user_data(self, access_token, response, *args, **kwargs):
"""Loads user data from service"""
params = {'access_token': access_token,
'fields': 'first_name,last_name,screen_name,nickname',
return setting('VK_EXTRA_SCOPE', [])
-
# Backend definition
BACKENDS = {
'vkontakte': VkontakteAuth,
def get_scope(self):
return setting('FACEBOOK_EXTENDED_PERMISSIONS', [])
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
data = None
params = setting('FACEBOOK_PROFILE_EXTRA_PARAMS', {})
ACCESS_TOKEN_URL = ACCESS_TOKEN_URL
SERVER_URL = GOOGLE_OAUTH_SERVER
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Loads user data from G service"""
raise NotImplementedError('Implement in subclass')
SETTINGS_KEY_NAME = 'GOOGLE_CONSUMER_KEY'
SETTINGS_SECRET_NAME = 'GOOGLE_CONSUMER_SECRET'
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Return user data from Google API"""
request = self.oauth_request(access_token, GOOGLEAPIS_EMAIL,
{'alt': 'json'})
def get_scope(self):
return GOOGLE_OAUTH2_SCOPE + setting('GOOGLE_OAUTH_EXTRA_SCOPE', [])
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Return user data from Google API"""
return googleapis_profile(GOOGLEAPIS_PROFILE, access_token)
SETTINGS_KEY_NAME = 'TWITTER_CONSUMER_KEY'
SETTINGS_SECRET_NAME = 'TWITTER_CONSUMER_SECRET'
- def user_data(self, access_token):
+ def user_data(self, access_token, *args, **kwargs):
"""Return user data provided"""
request = self.oauth_request(access_token, TWITTER_CHECK_AUTH)
json = self.fetch_response(request)