From: Alfredo Date: Mon, 17 Jan 2011 11:48:21 +0000 (+0000) Subject: Facebook extended permissions settings implemented X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=a6a5860430febee553cb77e924965ade0d5dcfb8;p=django-social-auth.git Facebook extended permissions settings implemented --- diff --git a/README.rst b/README.rst index 44b25f2..79eb1b9 100644 --- a/README.rst +++ b/README.rst @@ -196,10 +196,10 @@ for example, to store user gender, location, etc. Example:: from django.dispatch import receiver - from social_auth.signals import pre_save + from social_auth.signals import pre_update from social_auth.backends import FacebookBackend - @receiver(pre_save, sender=FacebookBackend) + @receiver(pre_update, sender=FacebookBackend) def facebook_extra_values(sender, user, response, details): user.gender = response.get('gender') return True @@ -264,6 +264,9 @@ Further documentation at `Facebook development resources`_: FACEBOOK_APP_ID FACEBOOK_API_SECRET +- Optional setting:: + + FACEBOOK_EXTENDED_PERMISSIONS (list with the required permisions) ----- Orkut diff --git a/social_auth/auth.py b/social_auth/auth.py index c7b3ebe..0515a6e 100644 --- a/social_auth/auth.py +++ b/social_auth/auth.py @@ -413,16 +413,13 @@ class TwitterAuth(ConsumerBasedOAuth): class FacebookAuth(BaseOAuth): """Facebook OAuth mechanism""" - def __init__(self, request, redirect): - super(FacebookAuth, self).__init__(request, redirect) - if settings.DEBUG and self.redirect_uri: - # Facebook doesn't accept custom ports - self.redirect_uri = self.redirect_uri.replace(':8000', '') def auth_url(self): """Returns redirect url""" args = {'client_id': settings.FACEBOOK_APP_ID, 'redirect_uri': self.redirect_uri} + if hasattr(settings, 'FACEBOOK_EXTENDED_PERMISSIONS'): + args['scope'] = ','.join(settings.FACEBOOK_EXTENDED_PERMISSIONS) return FACEBOOK_AUTHORIZATION_URL + '?' + urllib.urlencode(args) def auth_complete(self, *args, **kwargs): diff --git a/social_auth/backends.py b/social_auth/backends.py index 3c627dc..25c9008 100644 --- a/social_auth/backends.py +++ b/social_auth/backends.py @@ -220,7 +220,6 @@ class FacebookBackend(OAuthBackend): 'first_name': response.get('first_name', ''), 'last_name': response.get('last_name', '')} - class OpenIDBackend(SocialAuthBackend): """Generic OpenID authentication backend""" name = 'openid'