private function TokenProcessor::processSingleLdapEntryToken in Lightweight Directory Access Protocol (LDAP) 8.3
Process a single ldap_entry token.
Parameters
array $ldap_entry: LDAP entry.
string $pre: Preamble.
string $post: Postamble.
string $attribute_name: Actual data.
Return value
array Tokens.
1 call to TokenProcessor::processSingleLdapEntryToken()
- TokenProcessor::compileLdapTokenEntries in ldap_servers/
src/ Processor/ TokenProcessor.php - Compile LDAP token entries.
File
- ldap_servers/
src/ Processor/ TokenProcessor.php, line 447
Class
- TokenProcessor
- Helper to manage LDAP tokens and process their content.
Namespace
Drupal\ldap_servers\ProcessorCode
private function processSingleLdapEntryToken(array $ldap_entry, $pre, $post, $attribute_name) {
$tokens = [];
$attribute_value = $ldap_entry[$attribute_name];
if (is_array($attribute_value) && is_scalar($attribute_value[0]) && $attribute_value['count'] == 1) {
// Only one entry, example output: ['cn', 'cn:0', 'cn:last'].
$tokens[$pre . mb_strtolower($attribute_name) . $post] = $attribute_value[0];
$tokens[$pre . mb_strtolower($attribute_name) . self::DELIMITER . '0' . $post] = $attribute_value[0];
$tokens[$pre . mb_strtolower($attribute_name) . self::DELIMITER . 'last' . $post] = $attribute_value[0];
}
elseif (is_array($attribute_value) && $attribute_value['count'] > 1) {
// Multiple entries, example: ['cn:last', 'cn:0', 'cn:1'].
$tokens[$pre . mb_strtolower($attribute_name) . self::DELIMITER . 'last' . $post] = $attribute_value[$attribute_value['count'] - 1];
for ($i = 0; $i < $attribute_value['count']; $i++) {
$tokens[$pre . mb_strtolower($attribute_name) . self::DELIMITER . $i . $post] = $attribute_value[$i];
}
}
elseif (is_scalar($attribute_value)) {
// Only one entry (as string), example output: ['cn', 'cn:0', 'cn:last'].
$tokens[$pre . mb_strtolower($attribute_name) . $post] = $attribute_value;
$tokens[$pre . mb_strtolower($attribute_name) . self::DELIMITER . '0' . $post] = $attribute_value;
$tokens[$pre . mb_strtolower($attribute_name) . self::DELIMITER . 'last' . $post] = $attribute_value;
}
return $tokens;
}