From f389c75ffa032e4b113831f79be76743b7f295bc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mat=C3=ADas=20Aguirre?= Date: Fri, 16 Sep 2011 17:25:07 -0300 Subject: [PATCH] Allow views to pass extra parameters to authentication backends --- social_auth/backends/__init__.py | 2 +- social_auth/views.py | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/social_auth/backends/__init__.py b/social_auth/backends/__init__.py index 8fa45a1..c0be5e6 100644 --- a/social_auth/backends/__init__.py +++ b/social_auth/backends/__init__.py @@ -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') diff --git a/social_auth/views.py b/social_auth/views.py index 45afdf2..e5e30dd 100644 --- a/social_auth/views.py +++ b/social_auth/views.py @@ -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) -- 2.39.5