mirror of
https://github.com/discourse/discourse.git
synced 2025-06-01 09:08:10 +08:00
FEATURE: Allow admins to remove users from chat DMs (#31366)
This feature allows admins to remove users from channels.
This commit is contained in:
@ -2,14 +2,16 @@
|
||||
|
||||
RSpec.describe Chat::Api::ChannelsMembershipsController do
|
||||
fab!(:current_user) { Fabricate(:user) }
|
||||
fab!(:other_user) { Fabricate(:user) }
|
||||
fab!(:channel_1) do
|
||||
Fabricate(:direct_message_channel, group: true, users: [current_user, Fabricate(:user)])
|
||||
Fabricate(:direct_message_channel, group: true, users: [current_user, other_user])
|
||||
end
|
||||
|
||||
before do
|
||||
SiteSetting.chat_enabled = true
|
||||
SiteSetting.chat_allowed_groups = Group::AUTO_GROUPS[:everyone]
|
||||
channel_1.add(current_user)
|
||||
channel_1.add(other_user)
|
||||
sign_in(current_user)
|
||||
end
|
||||
|
||||
@ -52,4 +54,42 @@ RSpec.describe Chat::Api::ChannelsMembershipsController do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#destroy" do
|
||||
context "when acting user is an admin" do
|
||||
let(:current_user) { Fabricate(:admin) }
|
||||
|
||||
describe "success" do
|
||||
it "works" do
|
||||
delete "/chat/api/channels/#{channel_1.id}/memberships/#{other_user.id}"
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
end
|
||||
|
||||
context "when channel is not found" do
|
||||
it "returns a 404" do
|
||||
delete "/chat/api/channels/-999/memberships/#{other_user.id}"
|
||||
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
end
|
||||
|
||||
context "when target user is not found" do
|
||||
it "returns a 404" do
|
||||
delete "/chat/api/channels/#{channel_1.id}/memberships/31337"
|
||||
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "when acting user is not an admin" do
|
||||
it "returns a 403" do
|
||||
delete "/chat/api/channels/#{channel_1.id}/memberships/#{other_user.id}"
|
||||
|
||||
expect(response.status).to eq(403)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user