[Ldap] fix refreshUser() ignoring extra_fields
This commit is contained in:
parent
5b719d1ee4
commit
cb8f12996c
|
@ -108,7 +108,7 @@ class LdapUserProvider implements UserProviderInterface, PasswordUpgraderInterfa
|
||||||
throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', \get_class($user)));
|
throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', \get_class($user)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return new LdapUser($user->getEntry(), $user->getUsername(), $user->getPassword(), $user->getRoles());
|
return new LdapUser($user->getEntry(), $user->getUsername(), $user->getPassword(), $user->getRoles(), $user->getExtraFields());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -330,4 +330,14 @@ class LdapUserProviderTest extends TestCase
|
||||||
$provider = new LdapUserProvider($ldap, 'ou=MyBusiness,dc=symfony,dc=com', null, null, [], 'sAMAccountName', '({uid_key}={username})', 'userpassword', ['email']);
|
$provider = new LdapUserProvider($ldap, 'ou=MyBusiness,dc=symfony,dc=com', null, null, [], 'sAMAccountName', '({uid_key}={username})', 'userpassword', ['email']);
|
||||||
$this->assertInstanceOf(LdapUser::class, $provider->loadUserByUsername('foo'));
|
$this->assertInstanceOf(LdapUser::class, $provider->loadUserByUsername('foo'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRefreshUserShouldReturnUserWithSameProperties()
|
||||||
|
{
|
||||||
|
$ldap = $this->createMock(LdapInterface::class);
|
||||||
|
$provider = new LdapUserProvider($ldap, 'ou=MyBusiness,dc=symfony,dc=com', null, null, [], 'sAMAccountName', '({uid_key}={username})', 'userpassword', ['email']);
|
||||||
|
|
||||||
|
$user = new LdapUser(new Entry('foo'), 'foo', 'bar', ['ROLE_DUMMY'], ['email' => 'foo@symfony.com']);
|
||||||
|
|
||||||
|
$this->assertEquals($user, $provider->refreshUser($user));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue