]> git.parisson.com Git - django-social-auth.git/commitdiff
Send orkut scope on each request, check email value properly. Closes gh-77
authorMatías Aguirre <matiasaguirre@gmail.com>
Fri, 27 May 2011 20:32:50 +0000 (17:32 -0300)
committerMatías Aguirre <matiasaguirre@gmail.com>
Fri, 27 May 2011 20:32:50 +0000 (17:32 -0300)
social_auth/backends/contrib/orkut.py

index ebd3021bc8c15174d8f188db0f5393c33e2289b0..9b0669819981256e77d07322ad3407a45135592f 100644 (file)
@@ -33,8 +33,13 @@ class OrkutBackend(OAuthBackend):
 
     def get_user_details(self, response):
         """Return user details from Orkut account"""
+        try:
+            emails = response['emails'][0]['value']
+        except (KeyError, IndexError):
+            emails = ''
+
         return {USERNAME: response['displayName'],
-                'email': response['emails'][0]['value'],
+                'email': emails,
                 'fullname': response['displayName'],
                 'first_name': response['name']['givenName'],
                 'last_name': response['name']['familyName']}
@@ -65,6 +70,12 @@ class OrkutAuth(BaseGoogleOAuth):
         except (ValueError, KeyError):
             return None
 
+    def oauth_request(self, token, url, extra_params=None):
+        extra_params = extra_params or {}
+        scope = ORKUT_SCOPE + getattr(settings, 'ORKUT_EXTRA_SCOPE', [])
+        extra_params['scope'] = ' '.join(scope)
+        return super(OrkutAuth, self).oauth_request(token, url, extra_params)
+
 
 # Backend definition
 BACKENDS = {