From 6eaaf6714cd145c64098bdab4f6a7c97362a5174 Mon Sep 17 00:00:00 2001 From: Sam <sam.saffron@gmail.com> Date: Tue, 5 Aug 2014 14:37:28 +1000 Subject: [PATCH] FIX: logic for can_see_topic? --- lib/guardian/topic_guardian.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/guardian/topic_guardian.rb b/lib/guardian/topic_guardian.rb index 13c90b47e1f..8dc5b27c5ff 100644 --- a/lib/guardian/topic_guardian.rb +++ b/lib/guardian/topic_guardian.rb @@ -59,10 +59,13 @@ module TopicGuardian # Deleted topics return false if topic.deleted_at && !can_see_deleted_topics? + if topic.private_message? + return authenticated? && + topic.all_allowed_users.where(id: @user.id).exists? + end + # not secure, or I can see it - (not(topic.read_restricted_category?) || can_see_category?(topic.category)) && - # not private, or I am allowed (or is staff) - (not(topic.private_message?) || (authenticated? && (is_admin? || topic.all_allowed_users.where(id: @user.id).exists?))) + !topic.read_restricted_category? || can_see_category?(topic.category) end end