]> git.parisson.com Git - django-social-auth.git/commitdiff
Clean partial pipeline on Stop exception. Closes #271
authorMatías Aguirre <matiasaguirre@gmail.com>
Sun, 26 Feb 2012 15:07:04 +0000 (13:07 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Sun, 26 Feb 2012 15:07:04 +0000 (13:07 -0200)
social_auth/backends/__init__.py
social_auth/backends/pipeline/misc.py
social_auth/views.py

index ea7e3a8b164d8bce12d589a084e50e999cd5438d..c71f92138ea0399019e2e1893805855619cf7e21 100644 (file)
@@ -136,6 +136,11 @@ class SocialAuthBackend(ModelBackend):
                     try:
                         result = func(*args, **out) or {}
                     except StopPipeline:
+                        # Clean partial pipeline on stop
+                        if 'request' in kwargs:
+                            name = setting('SOCIAL_AUTH_PARTIAL_PIPELINE_KEY',
+                                           'partial_pipeline')
+                            kwargs['request'].session.pop(name, None)
                         break
 
                     if isinstance(result, dict):
index 3b9615ed8428c44446be27330134edba03fd9f7a..03c834d58985a1f0d928e9329db8e64d78033d8c 100644 (file)
@@ -21,4 +21,3 @@ def save_status_to_session(request, auth, *args, **kwargs):
 
     name = setting('SOCIAL_AUTH_PARTIAL_PIPELINE_KEY', 'partial_pipeline')
     request.session[name] = data
-    request.session.modified = True
index 5561268432878609f79b2b612023d607e01c9a8f..14198028c8e0492f3bd49019293646389d5f8a68 100644 (file)
@@ -201,7 +201,6 @@ def auth_complete(request, backend, user=None, *args, **kwargs):
     name = setting('SOCIAL_AUTH_PARTIAL_PIPELINE_KEY', 'partial_pipeline')
     if request.session.get(name):
         data = request.session.pop(name)
-        request.session.modified = True
         idx, args, kwargs = backend.from_session_dict(data, user=user,
                                                       request=request,
                                                       *args, **kwargs)