You are here

public function LdapUserManager::getUserDataByIdentifier in Lightweight Directory Access Protocol (LDAP) 8.4

Fetch user data from server by Identifier.

Parameters

string $identifier: User identifier.

Return value

\Symfony\Component\Ldap\Entry|false

This should go into LdapUserProcessor or LdapUserManager, leaning toward the former.

1 call to LdapUserManager::getUserDataByIdentifier()
LdapUserManager::getUserDataByAccount in ldap_servers/src/LdapUserManager.php
Fetch user data from server by user account.

File

ldap_servers/src/LdapUserManager.php, line 199

Class

LdapUserManager
LDAP User Manager.

Namespace

Drupal\ldap_servers

Code

public function getUserDataByIdentifier(string $identifier) {
  if (!$this
    ->checkAvailability()) {
    return FALSE;
  }

  // Try to retrieve the user from the cache.
  $cache = $this->cache
    ->get('ldap_servers:user_data:' . $identifier);
  if ($cache && $cache->data) {
    return $cache->data;
  }
  $ldap_entry = $this
    ->queryAllBaseDnLdapForUsername($identifier);
  if ($ldap_entry) {
    $ldap_entry = $this
      ->sanitizeUserDataResponse($ldap_entry, $identifier);
    $cache_expiry = 5 * 60 + time();
    $cache_tags = [
      'ldap',
      'ldap_servers',
      'ldap_servers.user_data',
    ];
    $this->cache
      ->set('ldap_servers:user_data:' . $identifier, $ldap_entry, $cache_expiry, $cache_tags);
  }
  return $ldap_entry;
}