Commit 9e4102e25b79d7142a9f822f6c4cc07a9e2ba0b6

Authored by Antonio Terceiro
1 parent c611bd07

Remove useless hotspot

That idea could be useful for streaming comment data, but it is not
useful to notify plugins that a comment was saved before checking e.g.
that it is not SPAM. So this notification must be done by the
CommentHandler class, *after* it decided that the comment received is
valid (e.g. an antispam plugin decided it is not spam).

ActionItem2306
app/controllers/public/content_viewer_controller.rb
@@ -123,7 +123,6 @@ class ContentViewerController < ApplicationController @@ -123,7 +123,6 @@ class ContentViewerController < ApplicationController
123 plugins_filter_comment(@comment) 123 plugins_filter_comment(@comment)
124 return if @comment.rejected? 124 return if @comment.rejected?
125 if (pass_without_comment_captcha? || verify_recaptcha(:model => @comment, :message => _('Please type the words correctly'))) && @comment.save 125 if (pass_without_comment_captcha? || verify_recaptcha(:model => @comment, :message => _('Please type the words correctly'))) && @comment.save
126 - plugins_comment_saved(@comment)  
127 @page.touch 126 @page.touch
128 @comment = nil # clear the comment form 127 @comment = nil # clear the comment form
129 redirect_to :action => 'view_page', :profile => params[:profile], :page => @page.explode_path, :view => params[:view] 128 redirect_to :action => 'view_page', :profile => params[:profile], :page => @page.explode_path, :view => params[:view]
@@ -138,12 +137,6 @@ class ContentViewerController < ApplicationController @@ -138,12 +137,6 @@ class ContentViewerController < ApplicationController
138 end 137 end
139 end 138 end
140 139
141 - def plugins_comment_saved(comment)  
142 - @plugins.each do |plugin|  
143 - plugin.comment_saved(comment)  
144 - end  
145 - end  
146 -  
147 def pass_without_comment_captcha? 140 def pass_without_comment_captcha?
148 logged_in? && !environment.enabled?('captcha_for_logged_users') 141 logged_in? && !environment.enabled?('captcha_for_logged_users')
149 end 142 end
lib/noosfero/plugin.rb
@@ -232,12 +232,6 @@ class Noosfero::Plugin @@ -232,12 +232,6 @@ class Noosfero::Plugin
232 def filter_comment(comment) 232 def filter_comment(comment)
233 end 233 end
234 234
235 - # This method will be called just after a comment has been saved to the  
236 - # database, so that a plugin can perform some action on it.  
237 - #  
238 - def comment_saved(comment)  
239 - end  
240 -  
241 # -> Adds fields to the signup form 235 # -> Adds fields to the signup form
242 # returns = lambda block that creates html code 236 # returns = lambda block that creates html code
243 def signup_extra_contents 237 def signup_extra_contents
test/functional/content_viewer_controller_test.rb
@@ -1395,25 +1395,6 @@ class ContentViewerControllerTest < ActionController::TestCase @@ -1395,25 +1395,6 @@ class ContentViewerControllerTest < ActionController::TestCase
1395 end 1395 end
1396 end 1396 end
1397 1397
1398 - should 'notify plugins after a comment is saved' do  
1399 - class TestNotifyCommentPlugin < Noosfero::Plugin  
1400 - def comment_saved(c)  
1401 - @__saved = c.id  
1402 - @__title = c.title  
1403 - end  
1404 - attr_reader :__title  
1405 - attr_reader :__saved  
1406 - end  
1407 - plugin = TestNotifyCommentPlugin.new  
1408 - Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([plugin])  
1409 - page = profile.articles.create!(:name => 'myarticle', :body => 'the body of the text')  
1410 - post :view_page, :profile => profile.identifier, :page => [ 'myarticle' ], :comment => { :title => 'the title of the comment', :body => 'body', :name => "Spammer", :email => 'damn@spammer.com' }, :confirm => 'true'  
1411 -  
1412 - assert_equal 'the title of the comment', plugin.__title  
1413 - assert plugin.__saved  
1414 -  
1415 - end  
1416 -  
1417 should 'remove email from article followers when unfollow' do 1398 should 'remove email from article followers when unfollow' do
1418 profile = create_user('testuser').person 1399 profile = create_user('testuser').person
1419 follower_email = 'john@doe.br' 1400 follower_email = 'john@doe.br'