mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
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:
@ -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
|
||||
|
Reference in New Issue
Block a user