Mercurial > public > sg101
view antispam/receivers.py @ 1132:1407af5472e4
Add our own table stack.
Foundation's table.stack only shows the first th in a thead. Added my own
version that shows all of them.
Updated templates to use new class.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 28 Sep 2016 20:25:29 -0500 |
parents | 9d6c2ed2f348 |
children |
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')