From a6a5860430febee553cb77e924965ade0d5dcfb8 Mon Sep 17 00:00:00 2001 From: Alfredo Date: Mon, 17 Jan 2011 11:48:21 +0000 Subject: [PATCH] Facebook extended permissions settings implemented --- README.rst | 7 +++++-- social_auth/auth.py | 7 ++----- social_auth/backends.py | 1 - 3 files changed, 7 insertions(+), 8 deletions(-) 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' -- 2.39.5