view antispam/receivers.py @ 1096:d9cd3180c12c

More GCalendar V3 conversion in progress. Built a brand new post editor. It is hardcoded into GCalendar right now. We will make it more general in the future.
author Brian Neal <bgneal@gmail.com>
date Tue, 14 Jun 2016 21:16:09 -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')