FIX: Display group archive topics for groups that the user is in.
This commit is contained in:
parent
b92988a586
commit
733503e67f
|
@ -116,9 +116,14 @@ after_initialize do
|
|||
add_to_class(:topic_query, :list_private_messages_assigned) do |user|
|
||||
list = private_messages_for(user, :all)
|
||||
user_id = user.id.to_s
|
||||
group_ids = user.groups.pluck(:id)
|
||||
|
||||
list = list
|
||||
.joins("LEFT JOIN group_archived_messages gm ON gm.topic_id = topics.id")
|
||||
.joins("
|
||||
LEFT JOIN group_archived_messages gm
|
||||
ON gm.topic_id = topics.id
|
||||
AND gm.group_id IN (#{group_ids.join(',')})
|
||||
")
|
||||
.joins("
|
||||
LEFT JOIN user_archived_messages um ON um.topic_id = topics.id AND um.user_id = #{user_id}
|
||||
")
|
||||
|
|
|
@ -29,12 +29,14 @@ describe TopicQuery do
|
|||
end
|
||||
|
||||
let(:group) { Fabricate(:group).add(user) }
|
||||
let(:group2) { Fabricate(:group) }
|
||||
|
||||
let(:group_assigned_topic) do
|
||||
topic = Fabricate(:private_message_topic,
|
||||
topic_allowed_users: [],
|
||||
topic_allowed_groups: [
|
||||
Fabricate.build(:topic_allowed_group, group: group)
|
||||
Fabricate.build(:topic_allowed_group, group: group),
|
||||
Fabricate.build(:topic_allowed_group, group: group2)
|
||||
],
|
||||
posts: [Fabricate(:post)]
|
||||
)
|
||||
|
@ -76,6 +78,16 @@ describe TopicQuery do
|
|||
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
|
||||
).to contain_exactly(assigned_topic)
|
||||
|
||||
GroupArchivedMessage.archive!(group2.id, group_assigned_topic.id)
|
||||
|
||||
expect(
|
||||
TopicQuery.new(user).list_private_messages_assigned(user).topics
|
||||
).to contain_exactly(group_assigned_topic)
|
||||
|
||||
expect(
|
||||
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
|
||||
).to contain_exactly(assigned_topic)
|
||||
|
||||
GroupArchivedMessage.archive!(group.id, group_assigned_topic.id)
|
||||
|
||||
expect(
|
||||
|
|
Loading…
Reference in New Issue