/posts.atom: fix banned posts being visible to Members.

Bug: /posts.atom only hid loli/shota, not banned posts and not unsafe
posts when safe mode was on.
This commit is contained in:
evazion
2019-08-25 20:29:32 -05:00
parent 0101b5f5f4
commit 62875eabb2
3 changed files with 26 additions and 6 deletions

View File

@@ -10,7 +10,7 @@
<% end %>
<author><name><%= Danbooru.config.app_name %></name></author>
<% Danbooru.config.select_posts_visible_to_user(CurrentUser.user, @posts).each do |post| %>
<% @posts.select(&:visible?).each do |post| %>
<entry>
<title><%= post.presenter.humanized_essential_tag_string %></title>
<link href="<%= post_url(post) %>" rel="alternate"/>

View File

@@ -405,10 +405,6 @@ module Danbooru
end
end
def select_posts_visible_to_user(user, posts)
posts.select {|x| can_user_see_post?(user, x)}
end
def max_appeals_per_day
1
end

View File

@@ -4,7 +4,7 @@ class PostsControllerTest < ActionDispatch::IntegrationTest
context "The posts controller" do
setup do
PopularSearchService.stubs(:enabled?).returns(false)
@user = travel_to(1.month.ago) {create(:user)}
as_user do
@post = create(:post, :tag_string => "aaaa")
@@ -92,6 +92,30 @@ class PostsControllerTest < ActionDispatch::IntegrationTest
assert_response :success
end
end
context "with the .atom format" do
should "render without tags" do
get posts_path(format: :atom)
assert_response :success
assert_select "entry", 1
end
should "render with tags" do
get posts_path(format: :atom), params: { tags: "aaaa" }
assert_response :success
assert_select "entry", 1
end
should "hide restricted posts" do
@post.update(is_banned: true)
get posts_path(format: :atom)
assert_response :success
assert_select "entry", 0
end
end
end
context "show_seq action" do