- $userFilter = $this->buildFilter(config('services.ldap.user_filter'), ['user' => $userName]);
- $baseDn = config('services.ldap.base_dn');
- $ldapSearch = ldap_search($ldapConnection, $baseDn, $userFilter, ['cn', 'uid', 'dn']);
- $users = ldap_get_entries($ldapConnection, $ldapSearch);
- if ($users['count'] === 0) return null;
+ $userFilter = $this->buildFilter($this->config['user_filter'], ['user' => $userName]);
+ $baseDn = $this->config['base_dn'];
+ $emailAttr = $this->config['email_attribute'];
+ $followReferrals = $this->config['follow_referrals'] ? 1 : 0;
+ $this->ldap->setOption($ldapConnection, LDAP_OPT_REFERRALS, $followReferrals);
+ $users = $this->ldap->searchAndGetEntries($ldapConnection, $baseDn, $userFilter, ['cn', 'uid', 'dn', $emailAttr]);
+ if ($users['count'] === 0) {
+ return null;
+ }