FEATURE: Allow admins to access group chats (#31440)

In #31366, we added the ability for admins to remove people from group chats. However, that only works as long as the admin is already in the group chat.

For forum-side group messages, admins can join any of them at will. This PR extends that same ability to chat for parity.
This commit is contained in:
Ted Johansson
2025-03-03 09:20:13 +08:00
committed by GitHub
parent 258dfab8d7
commit c0bbff598a
2 changed files with 36 additions and 1 deletions

View File

@ -120,4 +120,39 @@ describe Chat::DirectMessage do
end
end
end
describe "#user_can_access?" do
context "when user is part of the chat" do
it "allows access" do
direct_message = Fabricate(:direct_message, users: [user1, user2])
expect(direct_message.user_can_access?(user1)).to eq(true)
end
end
context "when user is not part of the chat" do
it "denies access" do
user3 = Fabricate(:user)
direct_message = Fabricate(:direct_message, users: [user1, user2])
expect(direct_message.user_can_access?(user3)).to eq(false)
end
end
context "when the user is an admin" do
it "allows access to a group chat" do
admin = Fabricate(:admin)
direct_message = Fabricate(:direct_message, users: [user1, user2], group: true)
expect(direct_message.user_can_access?(admin)).to eq(true)
end
it "denies access to a personal chat" do
admin = Fabricate(:admin)
direct_message = Fabricate(:direct_message, users: [user1, user2], group: false)
expect(direct_message.user_can_access?(admin)).to eq(false)
end
end
end
end