public static function getByEmail($email) { // create LDAP connection // $ldapConnectionConfig = Config::get('ldap.connections.' . App::environment()); $ldapHost = $ldapConnectionConfig['host']; $ldapPort = $ldapConnectionConfig['port']; $ldapConnection = ldap_connect($ldapHost, $ldapPort); if ($ldapConnection) { // query LDAP for user info // ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3); $ldapUser = $ldapConnectionConfig['users']['web_user']; $ldapbind = ldap_bind($ldapConnection, $ldapUser['user'], $ldapUser['password']); $dn = 'ou=people,o=SWAMP,dc=cosalab,dc=org'; $filter = 'mail=' . LdapSanitize::escapeQueryValue($email); $searchResults = ldap_search($ldapConnection, $dn, $filter); $entries = ldap_get_entries($ldapConnection, $searchResults); // close LDAP connection // ldap_close($ldapConnection); // convert LDAP entry to user // if (sizeof($entries) > 1) { return self::entrytoUser($entries[0]); } else { return null; } } else { return false; } }
public function testEscapesWildcardEmail() { $this->assertEquals("user@\\2a", LdapSanitize::escapeQueryValue("user@*")); }