Mercurial > public > sg101
view antispam/decorators.py @ 1182:d7ff63d83973
Add Hi-Tide to community banners
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 01 Jan 2020 13:10:45 -0600 |
parents | 4a49d4ac319f |
children |
line wrap: on
line source
""" This module contains decorators for the antispam application. """ from functools import wraps import logging def log_auth_failures(auth_type): def decorator(fn): logger = logging.getLogger('auth') @wraps(fn) def wrapped(request, *args, **kwargs): response = fn(request, *args, **kwargs) if request.method == 'POST': # Figure out if the view succeeded; success means a redirect is # about to occur. success = (response and response.has_header('location') and response.status_code == 302) if not success: username = request.POST.get('username') username = username if username else '(None)' logger.error("%s failure from [%s] for %s", auth_type, request.META.get('REMOTE_ADDR', '?'), username) return response return wrapped return decorator