]> git.parisson.com Git - django-social-auth.git/commitdiff
Moved transaction management to view, Closes gh-23. Closes gh-24
authorMatías Aguirre <matiasaguirre@gmail.com>
Mon, 21 Feb 2011 21:16:58 +0000 (19:16 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Mon, 21 Feb 2011 21:16:58 +0000 (19:16 -0200)
social_auth/backends/__init__.py
social_auth/views.py

index 6a4a59577acd329bca33f5613e1d090e5dae8bfa..2d00e5155d94b3098c1283fa72ff5f909c0c0941 100644 (file)
@@ -21,7 +21,6 @@ from oauth.oauth import OAuthConsumer, OAuthToken, OAuthRequest, \
                         OAuthSignatureMethod_HMAC_SHA1
 
 from django.conf import settings
-from django.db import transaction
 from django.contrib.auth import authenticate
 from django.contrib.auth.backends import ModelBackend
 from django.utils.hashcompat import md5_constructor
@@ -115,7 +114,6 @@ class SocialAuthBackend(ModelBackend):
                 social_user.save()
 
         return user
-    authenticate = transaction.commit_on_success(authenticate)
 
     def username(self, details):
         """Return an unique username, if SOCIAL_AUTH_FORCE_RANDOM_USERNAME
index e7d442730945f7cfebd1adb9719ea9ef99a5e45c..938958801118195d52e09189c36f7b3ca38fd132 100644 (file)
@@ -3,6 +3,7 @@ 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
 
@@ -17,7 +18,14 @@ def auth(request, backend):
     return auth_process(request, backend, complete_url, redirect)
 
 
+@transaction.commit_on_success
 def complete(request, backend):
+    """Authentication complete view, override this view if transaction
+    management doesn't suit your needs."""
+    return complete_process(request, backend)
+
+
+def complete_process(request, backend):
     """Authentication complete process"""
     backend = get_backend(backend, request, request.path)
     if not backend: