Add more use cases for update_ldap_group_links to unit tests

parent 25415710
...@@ -132,7 +132,7 @@ module Gitlab ...@@ -132,7 +132,7 @@ module Gitlab
active_group_links = group.ldap_group_links.where(cn: cns_with_access(get_ldap_user(user))) active_group_links = group.ldap_group_links.where(cn: cns_with_access(get_ldap_user(user)))
if active_group_links.any? if active_group_links.any?
group.add_user(user, fetch_group_access(group, user, active_group_links)) group.add_users([user.id], fetch_group_access(group, user, active_group_links))
else else
group.users.delete(user) group.users.delete(user)
end end
......
...@@ -253,17 +253,53 @@ objectclass: posixGroup ...@@ -253,17 +253,53 @@ objectclass: posixGroup
access.stub(cns_with_access: cns_with_access) access.stub(cns_with_access: cns_with_access)
end end
context "non existing access for group-1, allowed via ldap-group1 as DEVELOPER" do context "non existing access for group-1, allowed via ldap-group1 as MASTER" do
before do before do
gitlab_group_1.ldap_group_links.create cn: 'ldap-group1', group_access: Gitlab::Access::MASTER gitlab_group_1.ldap_group_links.create cn: 'ldap-group1', group_access: Gitlab::Access::MASTER
end end
it "gives the user master access for group 1" do it "gives the user master access for group 1" do
access.update_ldap_group_links(user) access.update_ldap_group_links(user)
expect( gitlab_group_1.has_master?(user) ).to be_true expect( gitlab_group_1.has_master?(user) ).to be_true
end end
end end
context "existing access as guest for group-1, allowed via ldap-group1 as DEVELOPER" do
before do
gitlab_group_1.users_groups.guests.create(user_id: user.id)
gitlab_group_1.ldap_group_links.create cn: 'ldap-group1', group_access: Gitlab::Access::MASTER
end
it "upgrades the users access to master for group 1" do
expect { access.update_ldap_group_links(user) }.to \
change{ gitlab_group_1.has_master?(user) }.from(false).to(true)
end
end
context "existing access as MASTER for group-1, allowed via ldap-group1 as DEVELOPER" do
before do
gitlab_group_1.users_groups.masters.create(user_id: user.id)
gitlab_group_1.ldap_group_links.create cn: 'ldap-group1', group_access: Gitlab::Access::DEVELOPER
end
it "keeps the users master access for group 1" do
expect { access.update_ldap_group_links(user) }.not_to \
change{ gitlab_group_1.has_master?(user) }
end
end
context "existing access as master for group-1, not allowed" do
before do
gitlab_group_1.users_groups.masters.create(user_id: user.id)
gitlab_group_1.ldap_group_links.create cn: 'ldap-group1', group_access: Gitlab::Access::MASTER
access.stub(cns_with_access: ['ldap-group2'])
end
it "removes user from gitlab_group_1" do
expect { access.update_ldap_group_links(user) }.to \
change{ gitlab_group_1.members.where(user_id: user).any? }.from(true).to(false)
end
end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment