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|
|
add_to_class(:topic_query, :list_private_messages_assigned) do |user|
|
||||||
list = private_messages_for(user, :all)
|
list = private_messages_for(user, :all)
|
||||||
user_id = user.id.to_s
|
user_id = user.id.to_s
|
||||||
|
group_ids = user.groups.pluck(:id)
|
||||||
|
|
||||||
list = list
|
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("
|
.joins("
|
||||||
LEFT JOIN user_archived_messages um ON um.topic_id = topics.id AND um.user_id = #{user_id}
|
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
|
end
|
||||||
|
|
||||||
let(:group) { Fabricate(:group).add(user) }
|
let(:group) { Fabricate(:group).add(user) }
|
||||||
|
let(:group2) { Fabricate(:group) }
|
||||||
|
|
||||||
let(:group_assigned_topic) do
|
let(:group_assigned_topic) do
|
||||||
topic = Fabricate(:private_message_topic,
|
topic = Fabricate(:private_message_topic,
|
||||||
topic_allowed_users: [],
|
topic_allowed_users: [],
|
||||||
topic_allowed_groups: [
|
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)]
|
posts: [Fabricate(:post)]
|
||||||
)
|
)
|
||||||
|
@ -76,6 +78,16 @@ describe TopicQuery do
|
||||||
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
|
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
|
||||||
).to contain_exactly(assigned_topic)
|
).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)
|
GroupArchivedMessage.archive!(group.id, group_assigned_topic.id)
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
|
|
Loading…
Reference in New Issue