Project

General

Profile

« Previous | Next » 

Revision 17c4b47e

Added by Ondřej Ezr about 5 years ago

Fixes #25795 - Improves external usergroups sync :racehorse: (#6388)

View differences:

test/models/usergroup_test.rb
context 'external usergroups' do
setup do
@usergroup = FactoryBot.create(:usergroup)
@external = @usergroup.external_usergroups.new(:auth_source_id => FactoryBot.create(:auth_source_ldap).id,
auth_source_ldap = FactoryBot.create(:auth_source_ldap)
@external = @usergroup.external_usergroups.new(:auth_source_id => auth_source_ldap.id,
:name => 'aname')
LdapFluff.any_instance.stubs(:ldap).returns(Net::LDAP.new)
users(:one).update_column(:auth_source_id, auth_source_ldap.id)
end
test "can be associated with external_usergroups" do
......
end
test "delete user if not in LDAP directory" do
LdapFluff.any_instance.stubs(:valid_group?).with('aname').returns(false)
@usergroup.users << users(:one)
LdapFluff.any_instance.stubs(:valid_group?).with('aname').returns(true)
@usergroup.user_ids = [users(:one).id]
@usergroup.save
AuthSourceLdap.any_instance.expects(:users_in_group).with('aname').returns([])
......
@usergroup.save
AuthSourceLdap.any_instance.expects(:users_in_group).with('aname').returns([users(:one).login])
@usergroup.external_usergroups.find { |eu| eu.name == 'aname'}.refresh
@usergroup.external_usergroups.find { |eu| eu.name == 'aname' }.refresh
assert_includes @usergroup.users, users(:one)
end
test "keep user if in LDAP directory" do
LdapFluff.any_instance.stubs(:valid_group?).with('aname').returns(true)
@usergroup.users << users(:one)
@usergroup.user_ids = [users(:one).id]
@usergroup.save
AuthSourceLdap.any_instance.expects(:users_in_group).with('aname').returns([users(:one).login])
@usergroup.external_usergroups.find { |eu| eu.name == 'aname'}.refresh
assert_includes @usergroup.users, users(:one)
assert_includes @usergroup.reload.users, users(:one)
end
test 'internal auth source users remain after refresh' do
......
)
internal_user = FactoryBot.create(:user)
LdapFluff.any_instance.stubs(:valid_group?).with('aname').returns(true)
@usergroup.users << internal_user
@usergroup.users << external_user
@usergroup.user_ids = [internal_user.id, external_user.id]
@usergroup.save
AuthSourceLdap.any_instance.expects(:users_in_group).with('aname').

Also available in: Unified diff