From 872d9eae458fd2ee3a18433997f79a4c4e3e6559 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 2 Mar 2017 09:42:56 -0500 Subject: [PATCH] FEATURE: add :all filter for messages --- lib/topic_query.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/topic_query.rb b/lib/topic_query.rb index 0f754b6007b..61cfc91eddc 100644 --- a/lib/topic_query.rb +++ b/lib/topic_query.rb @@ -406,6 +406,18 @@ class TopicQuery elsif type == :user result = result.includes(:allowed_users) result = result.where("topics.id IN (SELECT topic_id FROM topic_allowed_users WHERE user_id = #{user.id.to_i})") + elsif type == :all + result = result.includes(:allowed_users) + result = result.where("topics.id IN ( + SELECT topic_id + FROM topic_allowed_users + WHERE user_id = #{user.id.to_i} + UNION ALL + SELECT topic_id FROM topic_allowed_groups + WHERE group_id IN ( + SELECT group_id FROM group_users WHERE user_id = #{user.id.to_i} + ) + )") end result = result.joins("LEFT OUTER JOIN topic_users AS tu ON (topics.id = tu.topic_id AND tu.user_id = #{user.id.to_i})")