]> git.parisson.com Git - django-social-auth.git/commitdiff
Facebook extended permissions settings implemented
authorAlfredo <alfredoaguirre@theteam.co.uk>
Mon, 17 Jan 2011 11:48:21 +0000 (11:48 +0000)
committerAlfredo <alfredoaguirre@theteam.co.uk>
Mon, 17 Jan 2011 11:48:21 +0000 (11:48 +0000)
README.rst
social_auth/auth.py
social_auth/backends.py

index 44b25f288a71a5c6383b53a1c8c278f7db1e0e9d..79eb1b95ca5e6dd1cd4d2428f788903bd5c9eacc 100644 (file)
@@ -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
index c7b3ebe7b152e900ddc98171fa2c53a23480332f..0515a6e7e59542ab0a68e0589b8da9b04a1ed21e 100644 (file)
@@ -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):
index 3c627dc148b5c17aaf05c67468cce8b9e6dc94c4..25c90087e4dde801ac8106a6e3f0fa1c7c378396 100644 (file)
@@ -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'