]> git.parisson.com Git - django-social-auth.git/commitdiff
Change get_scope method in BaseOAuth2 class.
authorSlava Bacherikov <slava@bacher09.org>
Thu, 3 May 2012 21:20:22 +0000 (00:20 +0300)
committerSlava Bacherikov <slava@bacher09.org>
Thu, 3 May 2012 21:20:22 +0000 (00:20 +0300)
social_auth/backends/__init__.py
social_auth/backends/contrib/github.py
social_auth/backends/contrib/vkontakte.py
social_auth/backends/facebook.py
social_auth/backends/google.py

index 0f71154bffa2c3de7fb4707384b59ae4d10eeb7e..10c733dfb4c96056afc45d879400cd9d6a149ad3 100644 (file)
@@ -662,6 +662,9 @@ class BaseOAuth2(BaseOAuth):
     ACCESS_TOKEN_URL = None
     SCOPE_SEPARATOR = ' '
     RESPONSE_TYPE = 'code'
+    
+    SCOPE_VAR_NAME = None
+    DEFAULT_SCOPE = []
 
     def auth_url(self):
         """Return redirect url"""
@@ -719,7 +722,12 @@ class BaseOAuth2(BaseOAuth):
 
     def get_scope(self):
         """Return list with needed access scope"""
-        return []
+        scope_var_name = getattr(self, 'SCOPE_VAR_NAME', None)
+        scope = getattr(self, 'DEFAULT_SCOPE', [])
+        # scope_var_name should not be empty string
+        if scope_var_name:
+            scope = scope + setting(scope_var_name, [])
+        return scope
 
 
 # Backend loading was previously performed via the
index 8ccb2d19179cb9a1d99ef75dea71e1bc8942235e..6006279842785c734142fb20ff58af3c281768f6 100644 (file)
@@ -51,12 +51,9 @@ class GithubAuth(BaseOAuth2):
     SETTINGS_KEY_NAME = 'GITHUB_APP_ID'
     SETTINGS_SECRET_NAME = 'GITHUB_API_SECRET'
     SCOPE_SEPARATOR = ','
-
-    def get_scope(self):
-        """Return list with needed access scope"""
-        # Look at http://developer.github.com/v3/oauth/
-        return setting('GITHUB_EXTENDED_PERMISSIONS', [])
-
+    # Look at http://developer.github.com/v3/oauth/
+    SCOPE_VAR_NAME = 'GITHUB_EXTENDED_PERMISSIONS'
+    
     def user_data(self, access_token, *args, **kwargs):
         """Loads user data from service"""
         url = GITHUB_USER_DATA_URL + '?' + urlencode({
index 62dfd2a9b86d8c9847f928743ec5e42595dd2df1..90fdc6357aab29195137df3b2d5e658260869e1f 100644 (file)
@@ -47,6 +47,8 @@ class VkontakteAuth(BaseOAuth2):
     AUTH_BACKEND = VkontakteBackend
     SETTINGS_KEY_NAME = 'VK_APP_ID'
     SETTINGS_SECRET_NAME = 'VK_API_SECRET'
+    # Look at http://vk.com/developers.php?oid=-1&p=%D0%9F%D1%80%D0%B0%D0%B2%D0%B0_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
+    SCOPE_VAR_NAME = 'VK_EXTRA_SCOPE'
 
     def user_data(self, access_token, response, *args, **kwargs):
         """Loads user data from service"""
@@ -62,10 +64,6 @@ class VkontakteAuth(BaseOAuth2):
         except (ValueError, IndexError):
             return None
 
-    def get_scope(self):
-        """Return list with needed access scope"""
-        # Look at http://vk.com/developers.php?oid=-1&p=%D0%9F%D1%80%D0%B0%D0%B2%D0%B0_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
-        return setting('VK_EXTRA_SCOPE', [])
 
 
 # Backend definition
index b1fbbbcdb2843350b922b9931cb2b8721528a9de..fa0befd9c9fc507076273f61376996bfaf2cb496 100644 (file)
@@ -56,10 +56,8 @@ class FacebookAuth(BaseOAuth2):
     AUTHORIZATION_URL = 'https://www.facebook.com/dialog/oauth'
     SETTINGS_KEY_NAME = 'FACEBOOK_APP_ID'
     SETTINGS_SECRET_NAME = 'FACEBOOK_API_SECRET'
-
-    def get_scope(self):
-        return setting('FACEBOOK_EXTENDED_PERMISSIONS', [])
-
+    SCOPE_VAR_NAME = 'FACEBOOK_EXTENDED_PERMISSIONS'
+    
     def user_data(self, access_token, *args, **kwargs):
         """Loads user data from service"""
         data = None
index e7d76ab8c1fcbbbc4d63788ab4dba71882ceea22..6198bc201d72c076042db16aaed4648f43878e6b 100644 (file)
@@ -184,10 +184,9 @@ class GoogleOAuth2(BaseOAuth2):
     ACCESS_TOKEN_URL = 'https://accounts.google.com/o/oauth2/token'
     SETTINGS_KEY_NAME = _OAUTH2_KEY_NAME
     SETTINGS_SECRET_NAME = 'GOOGLE_OAUTH2_CLIENT_SECRET'
-
-    def get_scope(self):
-        return GOOGLE_OAUTH2_SCOPE + setting('GOOGLE_OAUTH_EXTRA_SCOPE', [])
-
+    SCOPE_VAR_NAME = 'GOOGLE_OAUTH_EXTRA_SCOPE'
+    DEFAULT_SCOPE = GOOGLE_OAUTH2_SCOPE
+    
     def user_data(self, access_token, *args, **kwargs):
         """Return user data from Google API"""
         return googleapis_profile(GOOGLEAPIS_PROFILE, access_token)