authentic2-auth-kerberos/src/authentic2_auth_kerberos/views.py

35 lines
1.2 KiB
Python

import logging
from django_kerberos.views import NegotiateView
from authentic2.models import AuthenticationEvent
__ALL_ = [ 'login' ]
class A2NegotiateView(NegotiateView):
def __init__(self, *args, **kwargs):
self.logger = logging.getLogger(__name__)
super(A2NegotiateView, self).__init__(*args, **kwargs)
def user_found(self, request, user, *args, **kwargs):
response = super(A2NegotiateView, self).user_found(request, user,
*args, **kwargs)
nonce = request.REQUEST.get('nonce', '')
if nonce:
self.logger.info('logged in %r as %r (nonce %r)', self.principal,
user, nonce)
else:
self.logger.info('logged in %r as %r', self.principal, user)
AuthenticationEvent.objects.create(
who=unicode(user),
how='kerberos',
nonce=nonce)
return response
def user_not_found(self, request, user, *args, **kwargs):
self.logger.debug('unable to log in %r', self.principal)
return super(A2NegotiateView, self).user_not_found(request, user,
*args, **kwargs)
login = A2NegotiateView.as_view()