]> git.parisson.com Git - django-social-auth.git/commitdiff
Allow views to pass extra parameters to authentication backends
authorMatías Aguirre <matiasaguirre@gmail.com>
Fri, 16 Sep 2011 20:25:07 +0000 (17:25 -0300)
committerMatías Aguirre <matiasaguirre@gmail.com>
Fri, 16 Sep 2011 20:25:07 +0000 (17:25 -0300)
social_auth/backends/__init__.py
social_auth/views.py

index 8fa45a1e495ad3107e379e0d89d5406a933dc99c..c0be5e65a81beef891997dceaafc0580c9406f8f 100644 (file)
@@ -110,7 +110,7 @@ class SocialAuthBackend(ModelBackend):
             social_user = self.get_social_auth_user(uid)
         except UserSocialAuth.DoesNotExist:
             if user is None:  # new user
-                if not CREATE_USERS:
+                if not CREATE_USERS or not kwargs.get('create_user', True):
                     return None
 
                 email = details.get('email')
index 45afdf2d9181008ad615dd91f35dc977db41fe79..e5e30dd2e686926a89965aa8055abbce87b68f0c 100644 (file)
@@ -11,7 +11,6 @@ from django.conf import settings
 from django.http import HttpResponseRedirect, HttpResponse, \
                         HttpResponseServerError
 from django.core.urlresolvers import reverse
-from django.db import transaction
 from django.contrib.auth import login, REDIRECT_FIELD_NAME
 from django.contrib.auth.decorators import login_required
 from django.views.decorators.csrf import csrf_exempt
@@ -88,7 +87,6 @@ def auth(request, backend):
 
 
 @csrf_exempt
-#@transaction.commit_on_success
 @dsa_view()
 def complete(request, backend):
     """Authentication complete view, override this view if transaction
@@ -106,9 +104,9 @@ def associate(request, backend):
 @csrf_exempt
 @login_required
 @dsa_view()
-def associate_complete(request, backend):
+def associate_complete(request, backend, *args, **kwargs):
     """Authentication complete process"""
-    if auth_complete(request, backend, request.user):
+    if auth_complete(request, backend, request.user, *args, **kwargs):
         url = NEW_ASSOCIATION_REDIRECT if NEW_ASSOCIATION_REDIRECT else \
               request.session.pop(REDIRECT_FIELD_NAME, '') or \
               DEFAULT_REDIRECT
@@ -148,9 +146,9 @@ def auth_process(request, backend):
                             content_type='text/html;charset=UTF-8')
 
 
-def complete_process(request, backend):
+def complete_process(request, backend, *args, **kwargs):
     """Authentication complete process"""
-    user = auth_complete(request, backend)
+    user = auth_complete(request, backend, *args, **kwargs)
 
     if user and getattr(user, 'is_active', True):
         login(request, user)
@@ -179,8 +177,8 @@ def complete_process(request, backend):
     return HttpResponseRedirect(url)
 
 
-def auth_complete(request, backend, user=None):
+def auth_complete(request, backend, user=None, *args, **kwargs):
     """Complete auth process. Return authenticated user or None."""
     if user and not user.is_authenticated():
         user = None
-    return backend.auth_complete(user=user)
+    return backend.auth_complete(user=user, *args, **kwargs)