From: Matías Aguirre Date: Sun, 26 Feb 2012 15:07:04 +0000 (-0200) Subject: Clean partial pipeline on Stop exception. Closes #271 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=92bee86e6ba8d332a6c633e3da6f1ace081379fc;p=django-social-auth.git Clean partial pipeline on Stop exception. Closes #271 --- diff --git a/social_auth/backends/__init__.py b/social_auth/backends/__init__.py index ea7e3a8..c71f921 100644 --- a/social_auth/backends/__init__.py +++ b/social_auth/backends/__init__.py @@ -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): diff --git a/social_auth/backends/pipeline/misc.py b/social_auth/backends/pipeline/misc.py index 3b9615e..03c834d 100644 --- a/social_auth/backends/pipeline/misc.py +++ b/social_auth/backends/pipeline/misc.py @@ -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 diff --git a/social_auth/views.py b/social_auth/views.py index 5561268..1419802 100644 --- a/social_auth/views.py +++ b/social_auth/views.py @@ -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)