better SSL authentication handling

This commit is contained in:
Serghei Mihai 2015-05-19 14:44:23 +02:00
parent c403ac1ff3
commit d3eb245d96
1 changed files with 12 additions and 4 deletions

View File

@ -7,7 +7,7 @@ from django.contrib.auth import authenticate, login
from django.contrib import messages
from authentic2.auth2_auth.auth2_ssl import models, util
from authentic2.utils import continue_to_next_url, redirect
from authentic2.utils import continue_to_next_url, redirect, redirect_to_login
from .backends import BeIDBackend
@ -17,12 +17,20 @@ logger = logging.getLogger(__name__)
def handle_authentication(request, *args, **kwargs):
ssl_info = util.SSLInfo(request)
logger.debug('received SSL info: %s', ssl_info)
user = authenticate(ssl_info=ssl_info)
logger.debug('got user: %s', user)
if not request.user.is_authenticated():
login(request, user)
user = authenticate(ssl_info=ssl_info)
logger.debug('got user: %s', user)
if user:
login(request, user)
else:
messages.error(request, _('Authentication with your BeID card failed.'
'Please make sure your eID card is linked to your account and is plugged in.'
))
return redirect_to_login(request)
return continue_to_next_url(request)
def add_beid(request):
if request.user.is_authenticated:
ssl_info = util.SSLInfo(request)