Mercurial > public > sg101
view antispam/decorators.py @ 887:9a15f7c27526
Actually save model object upon change.
This commit was tested on the comments model.
Additional logging added.
Added check for Markdown image references.
Added TODOs after observing behavior on comments.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Tue, 03 Feb 2015 21:09:44 -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