public function test_getUser_UsesCorrectLDAPFilterAndBaseDn() { $usedBaseDn = null; $usedFilter = null; $filterBind = null; $mockLdapClient = $this->makeMockLdapClient(); $mockLdapClient->expects($this->any())->method('bind')->will($this->returnValue(true)); $mockLdapClient->expects($this->any())->method('fetchAll')->will($this->returnCallback(function ($baseDn, $filter, $bind) use(&$usedBaseDn, &$usedFilter, &$filterBind) { $usedBaseDn = $baseDn; $usedFilter = $filter; $filterBind = $bind; return array(array('uid' => LdapUsersTest::TEST_USER)); })); $this->ldapUsers->setLdapClientClass($mockLdapClient); $this->setSingleLdapServer(); $this->ldapUsers->setAuthenticationLdapFilter(self::TEST_EXTRA_FILTER); $this->ldapUsers->setAuthenticationRequiredMemberOf(self::TEST_MEMBER_OF); $this->ldapUsers->setAuthenticationMemberOfField(self::TEST_MEMBER_OF_Field); $this->ldapUsers->getUser(self::TEST_USER); $this->assertEquals(self::TEST_BASE_DN, $usedBaseDn); $this->assertContains(self::TEST_EXTRA_FILTER, $usedFilter); $this->assertContains("(" . self::TEST_MEMBER_OF_Field . "=?)", $usedFilter); $this->assertContains(self::TEST_MEMBER_OF, $filterBind); }
/** * Creates a new {@link LdapUsers} instance using config.ini.php values. * * @return LdapUsers */ public static function makeConfigured() { $result = new LdapUsers(); $result->setLdapServers(Config::getConfiguredLdapServers()); $usernameSuffix = Config::getLdapUserEmailSuffix(); if (!empty($usernameSuffix)) { $result->setAuthenticationUsernameSuffix($usernameSuffix); } $requiredMemberOf = Config::getRequiredMemberOf(); if (!empty($requiredMemberOf)) { $result->setAuthenticationRequiredMemberOf($requiredMemberOf); } $memberOfField = Config::getRequiredMemberOfField(); if (!empty($memberOfField)) { $result->setAuthenticationMemberOfField($memberOfField); } $filter = Config::getLdapUserFilter(); if (!empty($filter)) { $result->setAuthenticationLdapFilter($filter); } $timeoutSecs = Config::getLdapNetworkTimeout(); if (!empty($timeoutSecs)) { $result->setLdapNetworkTimeout($timeoutSecs); } $result->setLdapUserMapper(UserMapper::makeConfigured()); Log::debug("LdapUsers::%s: configuring with userEmailSuffix = %s, requiredMemberOf = %s, filter = %s, timeoutSecs = %s", __FUNCTION__, $usernameSuffix, $requiredMemberOf, $filter, $timeoutSecs); return $result; }
/** * Creates a new {@link LdapUsers} instance using config.ini.php values. * * @return LdapUsers */ public static function makeConfigured() { $result = new LdapUsers(); $result->setLdapServers(Config::getConfiguredLdapServers()); $usernameSuffix = Config::getLdapUserEmailSuffix(); if (!empty($usernameSuffix)) { $result->setAuthenticationUsernameSuffix($usernameSuffix); } $requiredMemberOf = Config::getRequiredMemberOf(); if (!empty($requiredMemberOf)) { $result->setAuthenticationRequiredMemberOf($requiredMemberOf); } $memberOfField = Config::getRequiredMemberOfField(); if (!empty($memberOfField)) { $result->setAuthenticationMemberOfField($memberOfField); } $filter = Config::getLdapUserFilter(); if (!empty($filter)) { $result->setAuthenticationLdapFilter($filter); } $timeoutSecs = Config::getLdapNetworkTimeout(); if (!empty($timeoutSecs)) { $result->setLdapNetworkTimeout($timeoutSecs); } $result->setLdapUserMapper(UserMapper::makeConfigured()); return $result; }