]> git.openstreetmap.org Git - osqa.git/blobdiff - forum_modules/akismet/startup.py
Some changes necessary to make cache work on Django 1.2.
[osqa.git] / forum_modules / akismet / startup.py
index cb449cc5877f6242b37c4327d591f5846d84a8d4..0688746ba16fe291ecc5535857ba51bd41001faa 100644 (file)
@@ -5,7 +5,8 @@ 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, REP_TO_FOR_NO_SPAM_CHECK
+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
@@ -13,9 +14,9 @@ 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:
+        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 and request.user.is_superuser and request.user.reputation >= REP_FOR_NO_SPAM_CHECK)):
             comment = request.POST[param]
-            user = request.user
 
             data = {
                 "user_ip":request.META["REMOTE_ADDR"],
@@ -24,7 +25,7 @@ def check_spam(param, comment_type):
                 "comment":comment
             }
 
-            if user.is_authenticated():
+            if request.user.is_authenticated():
                 data.update({
                     "comment_author":request.user.username,
                     "comment_author_email":request.user.email,
@@ -32,18 +33,17 @@ def check_spam(param, comment_type):
                 })
 
             api = Akismet(settings.WORDPRESS_API_KEY, APP_URL, "OSQA/%s" % OSQA_VERSION)
-            if not user.is_authenticated() or (user.reputation < settings.REP_TO_FOR_NO_SPAM_CHECK and not user.is_staff and not user.is_superuser):
-                if api.comment_check(comment, data):
-                    if request.is_ajax():
-                        response = {
-                            'success': False,
-                            'error_message': _("Sorry, but akismet thinks your %s is spam.") % comment_type
-                        }
-                        return HttpResponse(simplejson.dumps(response), mimetype="application/json")
-                    else:
-                        return render_to_response('modules/akismet/foundspam.html', {
-                            'action_name': comment_type
-                        })
+            if api.comment_check(comment, data):
+                if request.is_ajax():
+                    response = {
+                        'success': False,
+                        'error_message': _("Sorry, but akismet thinks your %s is spam.") % comment_type
+                    }
+                    return HttpResponse(simplejson.dumps(response), mimetype="application/json")
+                else:
+                    return render_to_response('modules/akismet/foundspam.html', {
+                        'action_name': comment_type
+                    })
                     
         return origin(request, *args, **kwargs)
     return wrapper