Commit e5b81bcfc0dc72d5116f246ad20f5bad1fcca964
Committed by
Larissa Reis
1 parent
63f25af1
Exists in
profile_api_improvements
and in
1 other branch
Filters request type in profile_controller
Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
Showing
2 changed files
with
13 additions
and
16 deletions
Show diff stats
app/controllers/public/profile_controller.rb
... | ... | @@ -5,6 +5,7 @@ class ProfileController < PublicController |
5 | 5 | before_filter :store_location, :only => [:join, :join_not_logged, :report_abuse, :send_mail] |
6 | 6 | before_filter :login_required, :only => [:add, :join, :leave, :unblock, :leave_scrap, :remove_scrap, :remove_activity, :view_more_activities, :view_more_network_activities, :report_abuse, :register_report, :leave_comment_on_activity, :send_mail, :follow, :unfollow] |
7 | 7 | before_filter :allow_followers?, :only => [:follow, :unfollow] |
8 | + before_filter :accept_only_post, :only => [:follow, :unfollow] | |
8 | 9 | |
9 | 10 | helper TagsHelper |
10 | 11 | helper ActionTrackerHelper |
... | ... | @@ -161,20 +162,16 @@ class ProfileController < PublicController |
161 | 162 | end |
162 | 163 | |
163 | 164 | def follow |
164 | - if request.post? | |
165 | - if profile.followed_by?(current_person) | |
166 | - render :text => _("You are already following %s.") % profile.name, :status => 400 | |
165 | + if profile.followed_by?(current_person) | |
166 | + render :text => _("You are already following %s.") % profile.name, :status => 400 | |
167 | + else | |
168 | + selected_circles = params[:circles].map{ |circle_name, circle_id| Circle.find_by(:id => circle_id) }.select{ |c| c.present? } | |
169 | + if selected_circles.present? | |
170 | + current_person.follow(profile, selected_circles) | |
171 | + render :text => _("You are now following %s") % profile.name, :status => 200 | |
167 | 172 | else |
168 | - selected_circles = params[:circles].map{|circle_name, circle_id| Circle.find_by(:id => circle_id)}.select{|c|not c.nil?} | |
169 | - if selected_circles.present? | |
170 | - current_person.follow(profile, selected_circles) | |
171 | - render :text => _("You are now following %s") % profile.name, :status => 200 | |
172 | - else | |
173 | - render :text => _("Select at least one circle to follow %s.") % profile.name, :status => 400 | |
174 | - end | |
173 | + render :text => _("Select at least one circle to follow %s.") % profile.name, :status => 400 | |
175 | 174 | end |
176 | - else | |
177 | - render_not_found | |
178 | 175 | end |
179 | 176 | end |
180 | 177 | ... | ... |
test/functional/profile_controller_test.rb
... | ... | @@ -2006,7 +2006,7 @@ class ProfileControllerTest < ActionController::TestCase |
2006 | 2006 | |
2007 | 2007 | should "not unfollow user if not logged" do |
2008 | 2008 | person = fast_create(Person) |
2009 | - get :unfollow, :profile => person.identifier | |
2009 | + post :unfollow, :profile => person.identifier | |
2010 | 2010 | |
2011 | 2011 | assert_redirected_to :controller => 'account', :action => 'login' |
2012 | 2012 | end |
... | ... | @@ -2020,7 +2020,7 @@ class ProfileControllerTest < ActionController::TestCase |
2020 | 2020 | |
2021 | 2021 | assert_not_nil follower |
2022 | 2022 | |
2023 | - get :unfollow, :profile => person.identifier | |
2023 | + post :unfollow, :profile => person.identifier | |
2024 | 2024 | follower = ProfileFollower.find_by(:profile_id => person.id, :circle_id => circle.id) |
2025 | 2025 | assert_nil follower |
2026 | 2026 | end |
... | ... | @@ -2030,7 +2030,7 @@ class ProfileControllerTest < ActionController::TestCase |
2030 | 2030 | person = fast_create(Person) |
2031 | 2031 | |
2032 | 2032 | assert_no_difference 'ProfileFollower.count' do |
2033 | - get :unfollow, :profile => person.identifier | |
2033 | + post :unfollow, :profile => person.identifier | |
2034 | 2034 | end |
2035 | 2035 | end |
2036 | 2036 | |
... | ... | @@ -2041,7 +2041,7 @@ class ProfileControllerTest < ActionController::TestCase |
2041 | 2041 | circle = Circle.create!(:person=> @profile, :name => "Zombies", :profile_type => 'Person') |
2042 | 2042 | fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle.id) |
2043 | 2043 | |
2044 | - get :unfollow, :profile => person.identifier, :redirect_to => "/some/url" | |
2044 | + post :unfollow, :profile => person.identifier, :redirect_to => "/some/url" | |
2045 | 2045 | assert_redirected_to "/some/url" |
2046 | 2046 | end |
2047 | 2047 | ... | ... |