about summary refs log tree commit diff stats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin/comments_controller.rb23
-rw-r--r--app/controllers/comments_controller.rb7
-rw-r--r--app/views/admin/comments/pending.haml1
3 files changed, 29 insertions, 2 deletions
diff --git a/app/controllers/admin/comments_controller.rb b/app/controllers/admin/comments_controller.rb index 9958232..d3d948c 100644 --- a/app/controllers/admin/comments_controller.rb +++ b/app/controllers/admin/comments_controller.rb
@@ -31,6 +31,29 @@ class Admin::CommentsController < Admin::AdminController
31 redirect_to pending_admin_comments_url 31 redirect_to pending_admin_comments_url
32 end 32 end
33 33
34 def mark_spam
35 @comment = Comment.find(params[:id])
36
37 akismet_params = {
38 type: "comment",
39 text: @comment.body,
40 created_at: @comment.created_at,
41 author: @comment.username,
42 author_email: @comment.email,
43 author_url: @comment.website,
44 post_url: url_for(@comment.blog),
45 post_modified_at: @comment.blog.updated_at,
46 referrer: @comment.referrer
47 }
48
49 Akismet.spam @comment.request_ip, @comment.user_agent, akismet_params
50
51 @comment.destroy!
52
53 flash.notice = "Comment successfully marked as spam."
54 redirect_back pending_admin_comments_url
55 end
56
34 def destroy 57 def destroy
35 if Comment.destroy(params[:id]) 58 if Comment.destroy(params[:id])
36 flash.notice = "Comment successfully deleted." 59 flash.notice = "Comment successfully deleted."
diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 2f3117f..9fa05e4 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb
@@ -6,6 +6,9 @@ class CommentsController < ApplicationController
6 raise ActiveRecord::RecordNotFound unless @blog.published 6 raise ActiveRecord::RecordNotFound unless @blog.published
7 7
8 @comment = @blog.comments.new(comment_params) 8 @comment = @blog.comments.new(comment_params)
9 @comment.request_ip = request.ip
10 @comment.user_agent = request.user_agent
11 @comment.referrer = request.referrer
9 12
10 unless @comment.valid? 13 unless @comment.valid?
11 flash.alert = "Error posting comment." 14 flash.alert = "Error posting comment."
@@ -23,11 +26,11 @@ class CommentsController < ApplicationController
23 author_url: @comment.website, 26 author_url: @comment.website,
24 post_url: url_for(@comment.blog), 27 post_url: url_for(@comment.blog),
25 post_modified_at: @comment.blog.updated_at, 28 post_modified_at: @comment.blog.updated_at,
26 referrer: request.referrer, 29 referrer: @comment.referrer,
27 env: request.env.slice(*akismet_vars) 30 env: request.env.slice(*akismet_vars)
28 } 31 }
29 32
30 is_spam, is_blatant = Akismet.check(request.ip, request.user_agent, akismet_params) 33 is_spam, is_blatant = Akismet.check(@comment.ip, @comment.user_agent, akismet_params)
31 34
32 if is_blatant 35 if is_blatant
33 # I am lying. 36 # I am lying.
diff --git a/app/views/admin/comments/pending.haml b/app/views/admin/comments/pending.haml index 18ae6c2..3303457 100644 --- a/app/views/admin/comments/pending.haml +++ b/app/views/admin/comments/pending.haml
@@ -22,4 +22,5 @@
22 %ul.admin-actions 22 %ul.admin-actions
23 %li= link_to "Accept", accept_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to accept this comment?" } 23 %li= link_to "Accept", accept_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to accept this comment?" }
24 %li= link_to "Reject", reject_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to reject this comment?" } 24 %li= link_to "Reject", reject_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to reject this comment?" }
25 %li= link_to "Mark Spam", mark_spam_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to mark this comment as spam?" }
25= will_paginate @comments 26= will_paginate @comments