Mercurial > public > sg101
view antispam/receivers.py @ 691:81e0be69b3a5
Oops, last commit has a bug. Must provide auth_type parameter to decorator.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 01 Sep 2013 11:59:28 -0500 |
parents | 988782c6ce6c |
children | 9d6c2ed2f348 |
line wrap: on
line source
""" receivers.py - Signal receivers for login related events. We log these events so that fail2ban can perform rate limiting. """ import logging from django.contrib.auth.signals import (user_logged_in, user_logged_out, user_login_failed) # Get the auth logger that is monitored by fail2ban: logger = logging.getLogger('auth') def login_callback(sender, request, user, **kwargs): """Signal callback function for a user logging in.""" logger.info('User login signal: %s', user.username) def logout_callback(sender, request, user, **kwargs): """Signal callback function for a user logging in.""" if user: logger.info('User logout signal: %s', user.username) def login_failed_callback(sender, credentials, **kwargs): """Signal callback for a login failure event.""" logger.error('User login failed signal from %s: %s', sender, credentials.get('username')) user_logged_in.connect(login_callback, dispatch_uid='antispam.receivers') user_logged_out.connect(logout_callback, dispatch_uid='antispam.receivers') user_login_failed.connect(login_failed_callback, dispatch_uid='antispam.receivers')