added a signal for when a user gets locked out

This commit is contained in:
Ken Cochrane 2012-11-25 17:42:55 -05:00
parent 9682a39528
commit 2b77673336
2 changed files with 9 additions and 1 deletions

View file

@ -24,6 +24,7 @@ except ImportError:
from datetime import datetime
from axes.models import AccessAttempt, AccessLog
from axes.signals import user_locked_out
import axes
# see if the user has overridden the failure limit
@ -239,6 +240,8 @@ def log_access_request(request, login_unsuccessful):
def check_request(request, login_unsuccessful):
log_access_request(request, login_unsuccessful)
ip_address = request.META.get('REMOTE_ADDR', '')
username = request.POST.get('username', None)
failures = 0
attempts = get_user_attempts(request)
@ -293,7 +296,9 @@ def check_request(request, login_unsuccessful):
# password
logout(request)
log.warn('AXES: locked out %s after repeated login attempts.' %
(attempt.ip_address,))
(ip_address,))
# send signal when someone is locked out.
user_locked_out.send(request=request, username=username)
# if a trusted login has violated lockout, revoke trust
for attempt in [a for a in attempts if a.trusted]:

3
axes/signals.py Normal file
View file

@ -0,0 +1,3 @@
from django.dispatch import Signal
user_locked_out = Signal(providing_args=['request', 'username'])