FEATURE: Allow admins to remove users from chat DMs (#31366)

This feature allows admins to remove users from channels.
This commit is contained in:
Ted Johansson
2025-02-20 15:16:57 +08:00
committed by GitHub
parent b8a4b11cbb
commit b5147a4634
16 changed files with 375 additions and 17 deletions

View File

@ -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