FIX: If a user is deleted, don't break embedded comments for admins.

This commit is contained in:
Robin Ward 2014-06-18 17:39:12 -04:00
parent 08b8cacdb0
commit 60cb5ea6a9
3 changed files with 9 additions and 2 deletions

View File

@ -13,7 +13,13 @@ class EmbedController < ApplicationController
topic_id = TopicEmbed.topic_id_for_embed(embed_url)
if topic_id
@topic_view = TopicView.new(topic_id, current_user, limit: SiteSetting.embed_post_limit, exclude_first: true)
@topic_view = TopicView.new(topic_id,
current_user,
limit: SiteSetting.embed_post_limit,
exclude_first: true,
exclude_deleted_users: true)
@topic_view.posts.reject! {|p| p.user.blank?}
@second_post_url = "#{@topic_view.topic.url}/2" if @topic_view
@posts_left = 0
if @topic_view && @topic_view.posts.size == SiteSetting.embed_post_limit

View File

@ -307,6 +307,7 @@ class TopicView
def unfiltered_posts
result = @topic.posts
result = result.with_deleted if @user.try(:staff?)
result = @topic.posts.where("user_id IS NOT NULL") if @exclude_deleted_users
result
end

View File

@ -47,7 +47,7 @@ describe EmbedController do
it "creates a topic view when a topic_id is found" do
TopicEmbed.expects(:topic_id_for_embed).returns(123)
TopicView.expects(:new).with(123, nil, {limit: 100, exclude_first: true})
TopicView.expects(:new).with(123, nil, {limit: 100, exclude_first: true, exclude_deleted_users: true})
get :comments, embed_url: embed_url
end
end