From 3bd3c93b902a8d6e52486f49a1238cb4c2dc5acd Mon Sep 17 00:00:00 2001 From: Drew Blessing Date: Wed, 6 Jul 2016 16:50:39 -0500 Subject: [PATCH] Test for stale group owner data --- app/models/group.rb | 4 ---- spec/lib/gitlab/ldap/group_sync_spec.rb | 17 ++++++++--------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/models/group.rb b/app/models/group.rb index 2b4fd148441e48..9b95e3ec809aba 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -104,10 +104,6 @@ def avatar_url(size = nil) end end - def owners - @owners ||= group_members.owners.includes(:user).map(&:user) - end - def add_users(user_ids, access_level, current_user = nil, skip_notification: false) user_ids.each do |user_id| Member.add_user(self.group_members, user_id, access_level, current_user, skip_notification: skip_notification) diff --git a/spec/lib/gitlab/ldap/group_sync_spec.rb b/spec/lib/gitlab/ldap/group_sync_spec.rb index 46ff87a9172ab1..d692de89d413bb 100644 --- a/spec/lib/gitlab/ldap/group_sync_spec.rb +++ b/spec/lib/gitlab/ldap/group_sync_spec.rb @@ -160,18 +160,17 @@ group_access: Gitlab::Access::DEVELOPER, provider: 'ldapmain' ) - group1.add_users([user1.id], + + group1.add_users([user1.id, user2.id], Gitlab::Access::OWNER, skip_notification: true) end - it 'refuses to downgrade the last owner' do - expect { group_sync.sync_groups } - .not_to change { - group1.members.where( - user_id: user1.id, - access_level: Gitlab::Access::OWNER - ).any? - } + # Check two users in a loop to uncover any stale group owner data + it 'downgrades one user but not the other' do + group_sync.sync_groups + + expect(group1.members.pluck(:access_level).sort) + .to eq([Gitlab::Access::DEVELOPER, Gitlab::Access::OWNER]) end context 'when user is a member of two groups from different providers' do -- GitLab