From d89ecdfbcef565eb3b1d25343e04111db41b3849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 2 Jan 2017 13:41:41 +0100 Subject: [PATCH] allow an adapter to adapt auth.login() (#14476) --- mellon/utils.py | 9 +++++++++ mellon/views.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mellon/utils.py b/mellon/utils.py index 1660dec..ab092a7 100644 --- a/mellon/utils.py +++ b/mellon/utils.py @@ -4,6 +4,7 @@ import importlib from functools import wraps import isodate +from django.contrib import auth from django.core.urlresolvers import reverse from django.template.loader import render_to_string from django.utils.timezone import make_aware, now, make_naive, is_aware, get_default_timezone @@ -237,3 +238,11 @@ def get_status_codes_and_message(profile): if status.statusMessage: message = status.statusMessage.decode('utf-8') return status_codes, message + +def login(request, user): + for adapter in get_adapters(): + if hasattr(adapter, 'auth_login'): + adapter.auth_login(request, user) + break + else: + auth.login(request, user) diff --git a/mellon/views.py b/mellon/views.py index 9879364..4697eca 100644 --- a/mellon/views.py +++ b/mellon/views.py @@ -192,7 +192,7 @@ class LoginView(ProfileMixin, LogMixin, View): next_url = self.get_next_url(default=resolve_url(settings.LOGIN_REDIRECT_URL)) if user is not None: if user.is_active: - auth.login(request, user) + utils.login(request, user) self.log.info('user %r (NameID is %r) logged in using SAML', unicode(user), attributes['name_id_content']) request.session['mellon_session'] = utils.flatten_datetime(attributes)