Project

General

Profile

« Previous | Next » 

Revision 1e8a5084

Added by Jan Pazdziora about 10 years ago

fixes #5242 - Update external user attributes and group membership on every logon

View differences:

test/unit/user_test.rb
# with existing user groups that are assigned
apache_source = AuthSourceExternal.find_or_create_by_name('apache_module')
usergroup = FactoryGirl.create :usergroup
FactoryGirl.create :external_usergroup, :usergroup => usergroup,
:auth_source => apache_source,
:name => usergroup.name
external = FactoryGirl.create :external_usergroup, :usergroup => usergroup,
:auth_source => apache_source,
:name => usergroup.name
assert User.find_or_create_external_user({:login => 'not_existing_user_4',
:groups => [usergroup.name, 'does-not-exists-for-sure-123']},
:groups => [external.name, 'does-not-exists-for-sure-123']},
apache_source.name)
user = User.find_by_login('not_existing_user_4')
assert_equal [usergroup], user.usergroups
end
test ".find_or_create_external_user updates external groups" do
apache_source = AuthSourceExternal.find_or_create_by_name('apache_module')
user = FactoryGirl.create(:user, :auth_source => apache_source)
external1 = FactoryGirl.create(:external_usergroup, :auth_source => apache_source)
external2 = FactoryGirl.create(:external_usergroup, :auth_source => apache_source)
usergroup = FactoryGirl.create(:usergroup)
user.usergroups << [external1.usergroup, usergroup]
refute_equal 'foo@example.com', user.mail
assert User.find_or_create_external_user({:login => user.login,
:groups => [external2.name],
:mail => 'foo@example.com'},
apache_source.name)
user.reload
assert_includes user.usergroups, external2.usergroup
assert_includes user.usergroups, usergroup
assert_equal 'foo@example.com', user.mail
end
test ".try_to_auto_create_user" do
AuthSourceLdap.any_instance.stubs(:authenticate).returns({ :firstname => "Foo", :lastname => "Bar", :mail => "baz@qux.com" })

Also available in: Unified diff