]> git.parisson.com Git - django-social-auth.git/commitdiff
Extra arguments for request-token process. Closes #235
authorMatías Aguirre <matiasaguirre@gmail.com>
Mon, 6 Feb 2012 19:06:03 +0000 (17:06 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Mon, 6 Feb 2012 19:06:03 +0000 (17:06 -0200)
README.rst
doc/configuration.rst
social_auth/backends/__init__.py

index f758d4a72a5a5f0b8e6e852e48c85091751326bb..9deebfae4d26cbfedf35c52363c0acc6d4887559 100644 (file)
@@ -306,6 +306,12 @@ Configuration
 
       <uppercase backend name>_AUTH_EXTRA_ARGUMENTS = {...}
 
+- Also, you can send extra parameters on request token process by defining
+  settings per provider in the same way explained above but with this other
+  suffix::
+
+      <uppercase backend name>_REQUEST_TOKEN_EXTRA_ARGUMENTS = {...}
+
 - By default the application doesn't make redirects to different domains, to
   disable this behavior::
 
index f62a3a8fdae8115f1b64b203b63e51fdf4a6d1da..9a9c59836f70470bf1f87afd20706ac7d1fafa9f 100644 (file)
@@ -202,6 +202,12 @@ Configuration
 
       <uppercase backend name>_AUTH_EXTRA_ARGUMENTS = {...}
 
+- Also, you can send extra parameters on request token process by defining
+  settings per provider in the same way explained above but with this other
+  suffix::
+
+      <uppercase backend name>_REQUEST_TOKEN_EXTRA_ARGUMENTS = {...}
+
 - By default the application doesn't make redirects to different domains, to
   disable this behavior::
 
index 0adf4c99f50d1a1938d7f51c351063033affb9f4..fff8c302d0035ae27e084655209546215b1f68fd 100644 (file)
@@ -319,9 +319,18 @@ class BaseAuth(object):
         kwargs.update({ self.AUTH_BACKEND.name: True })
         return authenticate(*args, **kwargs)
 
+    def request_token_extra_arguments(self):
+        """Return extra arguments needed on request-token process,
+        setting is per backend and defined by:
+            <backend name in uppercase>_REQUEST_TOKEN_EXTRA_ARGUMENTS.
+        """
+        backend_name = self.AUTH_BACKEND.name.upper().replace('-','_')
+        return setting(backend_name + '_REQUEST_TOKEN_EXTRA_ARGUMENTS', {})
+
     def auth_extra_arguments(self):
-        """Return extra argumens needed on auth process, setting is per bancked
-        and defined by <backend name in uppercase>_AUTH_EXTRA_ARGUMENTS.
+        """Return extra arguments needed on auth process, setting is per
+        backend and defined by:
+            <backend name in uppercase>_AUTH_EXTRA_ARGUMENTS.
         """
         backend_name = self.AUTH_BACKEND.name.upper().replace('-','_')
         return setting(backend_name + '_AUTH_EXTRA_ARGUMENTS', {})
@@ -491,7 +500,8 @@ class ConsumerBasedOAuth(BaseOAuth):
 
     def unauthorized_token(self):
         """Return request for unauthorized token (first stage)"""
-        request = self.oauth_request(token=None, url=self.REQUEST_TOKEN_URL)
+        request = self.oauth_request(token=None, url=self.REQUEST_TOKEN_URL,
+                             extra_params=self.request_token_extra_arguments())
         response = self.fetch_response(request)
         return Token.from_string(response)