allow an adapter to adapt auth.login() (#14476)

This commit is contained in:
Frédéric Péters 2017-01-02 13:41:41 +01:00
parent a838336442
commit d89ecdfbce
2 changed files with 10 additions and 1 deletions

View File

@ -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)

View File

@ -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)