mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Improve group settings and members management (#11878)
This pull requests contains a series of improvements to groups settings and member management such as: - Showing which users have set a group as primary - Moving similar settings together under Effects - Adding bulk select and actions to members page
This commit is contained in:
@@ -157,6 +157,9 @@ RSpec.describe Admin::GroupsController do
|
||||
end
|
||||
|
||||
describe '#remove_owner' do
|
||||
let(:user2) { Fabricate(:user) }
|
||||
let(:user3) { Fabricate(:user) }
|
||||
|
||||
it 'should work' do
|
||||
group.add_owner(user)
|
||||
|
||||
@@ -168,6 +171,20 @@ RSpec.describe Admin::GroupsController do
|
||||
expect(group.group_users.where(owner: true)).to eq([])
|
||||
end
|
||||
|
||||
it 'should work with multiple users' do
|
||||
group.add_owner(user)
|
||||
group.add_owner(user3)
|
||||
|
||||
delete "/admin/groups/#{group.id}/owners.json", params: {
|
||||
group: {
|
||||
usernames: "#{user.username},#{user2.username},#{user3.username}"
|
||||
}
|
||||
}
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
expect(group.group_users.where(owner: true)).to eq([])
|
||||
end
|
||||
|
||||
it 'returns not-found error when there is no group' do
|
||||
group.destroy!
|
||||
|
||||
@@ -190,6 +207,36 @@ RSpec.describe Admin::GroupsController do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#set_primary" do
|
||||
let(:user2) { Fabricate(:user) }
|
||||
let(:user3) { Fabricate(:user) }
|
||||
|
||||
it 'sets with multiple users' do
|
||||
user2.update!(primary_group_id: group.id)
|
||||
|
||||
put "/admin/groups/#{group.id}/primary.json", params: {
|
||||
group: { usernames: "#{user.username},#{user2.username},#{user3.username}" },
|
||||
primary: "true"
|
||||
}
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
expect(User.where(primary_group_id: group.id).size).to eq(3)
|
||||
end
|
||||
|
||||
it 'unsets with multiple users' do
|
||||
user.update!(primary_group_id: group.id)
|
||||
user3.update!(primary_group_id: group.id)
|
||||
|
||||
put "/admin/groups/#{group.id}/primary.json", params: {
|
||||
group: { usernames: "#{user.username},#{user2.username},#{user3.username}" },
|
||||
primary: "false"
|
||||
}
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
expect(User.where(primary_group_id: group.id).size).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#bulk_perform" do
|
||||
fab!(:group) do
|
||||
Fabricate(:group,
|
||||
|
||||
Reference in New Issue
Block a user