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
This commit is contained in:
parent
39c97279ca
commit
19d4ddf2f2
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue