mirror of
https://github.com/neocities/neocities.git
synced 2025-04-25 01:32:36 +02:00
unfollow sites when blocked
This commit is contained in:
parent
e96bce69bd
commit
c7764d3ed5
2 changed files with 42 additions and 0 deletions
|
@ -627,10 +627,23 @@ class Site < Sequel::Model
|
||||||
@blocking_site_ids ||= blockings_dataset.select(:site_id).all.collect {|s| s.site_id}
|
@blocking_site_ids ||= blockings_dataset.select(:site_id).all.collect {|s| s.site_id}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def unfollow_blocked_sites!
|
||||||
|
blockings.each do |blocking|
|
||||||
|
follows.each do |follow|
|
||||||
|
follow.destroy if follow.actioning_site_id == blocking.site_id
|
||||||
|
end
|
||||||
|
|
||||||
|
followings.each do |following|
|
||||||
|
following.destroy if following.site_id == blocking.site_id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def block!(site)
|
def block!(site)
|
||||||
block = blockings_dataset.filter(site_id: site.id).first
|
block = blockings_dataset.filter(site_id: site.id).first
|
||||||
return true if block
|
return true if block
|
||||||
add_blocking site: site
|
add_blocking site: site
|
||||||
|
unfollow_blocked_sites!
|
||||||
end
|
end
|
||||||
|
|
||||||
def unblock!(site)
|
def unblock!(site)
|
||||||
|
|
|
@ -104,6 +104,35 @@ describe 'site page' do
|
||||||
visit "/browse?tag=#{@tag}"
|
visit "/browse?tag=#{@tag}"
|
||||||
_(page.find('.website-Gallery .username a')['href']).must_match /\/site\/#{@blocked_site.username}/
|
_(page.find('.website-Gallery .username a')['href']).must_match /\/site\/#{@blocked_site.username}/
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'removes follows/followings when blocking' do
|
||||||
|
site = Fabricate :site
|
||||||
|
not_blocked_site = Fabricate :site
|
||||||
|
blocked_site = Fabricate :site
|
||||||
|
|
||||||
|
site.add_follow actioning_site: not_blocked_site
|
||||||
|
site.add_following site: not_blocked_site
|
||||||
|
|
||||||
|
site.add_follow actioning_site: blocked_site
|
||||||
|
site.add_following site: blocked_site
|
||||||
|
|
||||||
|
_(site.follows.count).must_equal 2
|
||||||
|
_(site.followings.count).must_equal 2
|
||||||
|
|
||||||
|
page.set_rack_session id: site.id
|
||||||
|
|
||||||
|
visit "/site/#{blocked_site.username}"
|
||||||
|
|
||||||
|
click_link 'Block'
|
||||||
|
click_button 'Block Site'
|
||||||
|
|
||||||
|
_(site.follows.count).must_equal 1
|
||||||
|
_(site.followings.count).must_equal 1
|
||||||
|
|
||||||
|
_(site.follows.count {|s| s.actioning_site == blocked_site}).must_equal 0
|
||||||
|
_(site.followings.count {|s| s.site == blocked_site}).must_equal 0
|
||||||
|
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it '404s if site is banned' do
|
it '404s if site is banned' do
|
||||||
|
|
Loading…
Add table
Reference in a new issue