X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/07fe485fb0a119fb87f8ec948185b5acdd65300e..178a88bfeb53a6b9520c74c10eea42073098902b:/forum_modules/akismet/startup.py diff --git a/forum_modules/akismet/startup.py b/forum_modules/akismet/startup.py index 2035ea0..1e9e731 100644 --- a/forum_modules/akismet/startup.py +++ b/forum_modules/akismet/startup.py @@ -1,18 +1,24 @@ from django.utils.translation import ugettext as _ from django.http import HttpResponse, HttpResponseRedirect from django.utils import simplejson +from django.utils.encoding import smart_str from django.shortcuts import render_to_response from forum.modules.decorators import decorate from forum import views from lib.akismet import Akismet from forum.settings import APP_URL, OSQA_VERSION +from settings import WORDPRESS_API_KEY, REP_FOR_NO_SPAM_CHECK +from forum.models.user import User + import settings def check_spam(param, comment_type): def wrapper(origin, request, *args, **kwargs): - if request.POST and request.POST.get(param, None) and settings.WORDPRESS_API_KEY: - comment = request.POST[param] + if (request.POST and request.POST.get(param, None) and WORDPRESS_API_KEY) and (not request.user.is_authenticated() + or not (request.user.is_staff or request.user.is_superuser or request.user.reputation >= REP_FOR_NO_SPAM_CHECK)): + comment = smart_str(request.POST[param]) + data = { "user_ip":request.META["REMOTE_ADDR"], "user_agent":request.environ['HTTP_USER_AGENT'], @@ -22,7 +28,7 @@ def check_spam(param, comment_type): if request.user.is_authenticated(): data.update({ - "comment_author":request.user.username, + "comment_author":smart_str(request.user.username), "comment_author_email":request.user.email, "comment_author_url":request.user.website, })