You are here

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

Compile LDAP token entries.

Parameters

array $ldap_entry: LDAP entry.

array $token_keys: Token keys.

string $pre: Preamble.

string $post: Postamble.

Return value

array Tokens.

1 call to TokenProcessor::compileLdapTokenEntries()
TokenProcessor::tokenizeLdapEntry in ldap_servers/src/Processor/TokenProcessor.php
Turn an LDAP entry into a token array suitable for the t() function.

File

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

Class

TokenProcessor
Helper to manage LDAP tokens and process their content.

Namespace

Drupal\ldap_servers\Processor

Code

private function compileLdapTokenEntries(array $ldap_entry, array $token_keys, $pre, $post) {
  $tokens = [];

  // Add lowercase keyed entries to LDAP array.
  foreach ($ldap_entry as $key => $values) {
    $ldap_entry[mb_strtolower($key)] = $values;
  }
  $tokens = array_merge($tokens, $this
    ->ldapTokenizationProcessDnParts($ldap_entry, $pre, $post));
  if (empty($token_keys)) {

    // Get all attributes.
    $token_keys = array_keys($ldap_entry);
    $token_keys = array_filter($token_keys, "is_string");
    foreach ($token_keys as $attribute_name) {
      $tokens = array_merge($tokens, $this
        ->processSingleLdapEntryToken($ldap_entry, $pre, $post, $attribute_name));
    }
  }
  else {
    foreach ($token_keys as $full_token_key) {
      $tokens = array_merge($tokens, $this
        ->processSingleLdapTokenKey($ldap_entry, $pre, $post, $full_token_key));
    }
  }
  return [
    $ldap_entry,
    $tokens,
  ];
}