You are here

private function TokenProcessor::discoverUserAttributes in Lightweight Directory Access Protocol (LDAP) 8.3

Discover user attributes from user.

Parameters

\Drupal\user\UserInterface $account: User account.

Return value

array User attributes.

1 call to TokenProcessor::discoverUserAttributes()
TokenProcessor::tokenizeUserAccount in ldap_servers/src/Processor/TokenProcessor.php
Tokenize a user account.

File

ldap_servers/src/Processor/TokenProcessor.php, line 203

Class

TokenProcessor
Helper to manage LDAP tokens and process their content.

Namespace

Drupal\ldap_servers\Processor

Code

private function discoverUserAttributes(UserInterface $account) {
  $token_keys = [];

  // Add lowercase keyed entries to LDAP array.
  $userData = $account
    ->toArray();
  foreach ($userData as $propertyName => $propertyData) {
    if (isset($propertyData[0], $propertyData[0]['value']) && is_scalar($propertyData[0]['value'])) {
      if (substr($propertyName, 0, strlen('field')) === 'field') {
        $token_keys[] = 'field.' . mb_strtolower($propertyName);
      }
      else {
        $token_keys[] = 'property.' . mb_strtolower($propertyName);
      }
    }
  }
  $token_keys[] = 'password.random';
  $token_keys[] = 'password.user-random';
  $token_keys[] = 'password.user-only';
  return $token_keys;
}