diff --git a/app/Services/Ldap.php b/app/Services/Ldap.php index cfefbb4b6..196e46a2f 100644 --- a/app/Services/Ldap.php +++ b/app/Services/Ldap.php @@ -33,6 +33,17 @@ class Ldap return ldap_set_option($ldapConnection, $option, $value); } + /** + * Set the version number for the given ldap connection. + * @param $ldapConnection + * @param $version + * @return bool + */ + public function setVersion($ldapConnection, $version) + { + return $this->setOption($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, $version); + } + /** * Search LDAP tree using the provided filter. * @param resource $ldapConnection diff --git a/app/Services/LdapService.php b/app/Services/LdapService.php index 3d89e1e44..b7f101ad2 100644 --- a/app/Services/LdapService.php +++ b/app/Services/LdapService.php @@ -122,7 +122,7 @@ class LdapService // Set any required options if ($this->config['version']) { - $this->ldap->setOption($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, $this->config['version']); + $this->ldap->setVersion($ldapConnection, $this->config['version']); } $this->ldapConnection = $ldapConnection; diff --git a/tests/Auth/LdapTest.php b/tests/Auth/LdapTest.php index b52b6ffe1..76fbc662a 100644 --- a/tests/Auth/LdapTest.php +++ b/tests/Auth/LdapTest.php @@ -22,7 +22,7 @@ class LdapTest extends \TestCase public function test_login() { $this->mockLdap->shouldReceive('connect')->once()->andReturn($this->resourceId); - $this->mockLdap->shouldReceive('setOption')->once(); + $this->mockLdap->shouldReceive('setVersion')->once(); $this->mockLdap->shouldReceive('searchAndGetEntries')->times(4) ->with($this->resourceId, config('services.ldap.base_dn'), Mockery::type('string'), Mockery::type('array')) ->andReturn(['count' => 1, 0 => [ @@ -49,7 +49,7 @@ class LdapTest extends \TestCase public function test_login_works_when_no_uid_provided_by_ldap_server() { $this->mockLdap->shouldReceive('connect')->once()->andReturn($this->resourceId); - $this->mockLdap->shouldReceive('setOption')->once(); + $this->mockLdap->shouldReceive('setVersion')->once(); $ldapDn = 'cn=test-user,dc=test' . config('services.ldap.base_dn'); $this->mockLdap->shouldReceive('searchAndGetEntries')->times(2) ->with($this->resourceId, config('services.ldap.base_dn'), Mockery::type('string'), Mockery::type('array')) @@ -73,7 +73,7 @@ class LdapTest extends \TestCase public function test_initial_incorrect_details() { $this->mockLdap->shouldReceive('connect')->once()->andReturn($this->resourceId); - $this->mockLdap->shouldReceive('setOption')->once(); + $this->mockLdap->shouldReceive('setVersion')->once(); $this->mockLdap->shouldReceive('searchAndGetEntries')->times(2) ->with($this->resourceId, config('services.ldap.base_dn'), Mockery::type('string'), Mockery::type('array')) ->andReturn(['count' => 1, 0 => [