Commit 19d4ddf2 authored by Eric Davis's avatar Eric Davis

Fix LDAP on the fly creation. The User object doesn't have a :dn attribute.

Fixes #4918 and adds a test for the behavior.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3485 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 39c97279
......@@ -111,7 +111,8 @@ class User < Principal
# user is not yet registered, try to authenticate with available sources
attrs = AuthSource.authenticate(login, password)
if attrs
user = new(*attrs)
attributes = *attrs
user = new(attributes.symbolize_keys.except(:dn))
user.login = login
user.language = Setting.default_language
if user.save
......
......@@ -120,6 +120,36 @@ class UserTest < ActiveSupport::TestCase
assert_equal nil, user
end
if ldap_configured?
context "#try_to_login using LDAP" do
context "on the fly registration" do
setup do
@auth_source = AuthSourceLdap.generate!(:name => 'localhost',
:host => '127.0.0.1',
:port => 389,
:base_dn => 'OU=Person,DC=redmine,DC=org',
:attr_login => 'uid',
:attr_firstname => 'givenName',
:attr_lastname => 'sn',
:attr_mail => 'mail',
:onthefly_register => true)
end
context "with a successful authentication" do
should "create a new user account" do
assert_difference('User.count') do
User.try_to_login('edavis', '123456')
end
end
end
end
end
else
puts "Skipping LDAP tests."
end
def test_create_anonymous
AnonymousUser.delete_all
anon = User.anonymous
......
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