Fix namespaces_helper reporting multiple groups
This commit is contained in:
parent
0085b76fb3
commit
852b5613c5
2 changed files with 14 additions and 2 deletions
|
@ -14,8 +14,11 @@ module NamespacesHelper
|
|||
extra_group = Group.find(extra_group) if Namespace.find(extra_group).kind == 'group'
|
||||
end
|
||||
|
||||
if extra_group && extra_group.is_a?(Group) && (!Group.exists?(name: extra_group.name) || Ability.allowed?(current_user, :read_group, extra_group))
|
||||
groups |= [extra_group]
|
||||
if extra_group && extra_group.is_a?(Group)
|
||||
# Avoid duplicate groups if one already exists by that name
|
||||
existing_group = Group.find_by(name: extra_group.name)
|
||||
extra_group = existing_group if existing_group
|
||||
groups |= [extra_group] if Ability.allowed?(current_user, :read_group, extra_group)
|
||||
end
|
||||
|
||||
options = []
|
||||
|
|
|
@ -31,6 +31,15 @@ describe NamespacesHelper do
|
|||
expect(options).to include(user.name)
|
||||
end
|
||||
|
||||
it 'avoids duplicate groups when extra_group is used' do
|
||||
allow(helper).to receive(:current_user).and_return(admin)
|
||||
|
||||
options = helper.namespaces_options(user_group.id, display_path: true, extra_group: build(:group, name: admin_group.name))
|
||||
|
||||
expect(options.scan("data-name=\"#{admin_group.name}\"").count).to eq(1)
|
||||
expect(options).to include(admin_group.name)
|
||||
end
|
||||
|
||||
it 'returns only groups if groups_only option is true' do
|
||||
allow(helper).to receive(:current_user).and_return(user)
|
||||
|
||||
|
|
Loading…
Reference in a new issue