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:
Bianca Nenciu
2021-02-03 16:11:08 +02:00
committed by GitHub
parent 0cc178d58b
commit 901cee55cd
15 changed files with 425 additions and 101 deletions

View File

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