|
|
|
@ -267,6 +267,43 @@ class rcube_ldap_generic extends Net_LDAP3
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Turn an LDAP entry into a regular PHP array with attributes as keys.
|
|
|
|
|
*
|
|
|
|
|
* @param array $entry Attributes array as retrieved from ldap_get_attributes() or ldap_get_entries()
|
|
|
|
|
*
|
|
|
|
|
* @return array Hash array with attributes as keys
|
|
|
|
|
*/
|
|
|
|
|
public static function normalize_entry($entry)
|
|
|
|
|
{
|
|
|
|
|
if (!isset($entry['count'])) {
|
|
|
|
|
return $entry;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$rec = array();
|
|
|
|
|
|
|
|
|
|
for ($i=0; $i < $entry['count']; $i++) {
|
|
|
|
|
$attr = $entry[$i];
|
|
|
|
|
if ($entry[$attr]['count'] == 1) {
|
|
|
|
|
switch ($attr) {
|
|
|
|
|
case 'objectclass':
|
|
|
|
|
$rec[$attr] = array(strtolower($entry[$attr][0]));
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
$rec[$attr] = $entry[$attr][0];
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
for ($j=0; $j < $entry[$attr]['count']; $j++) {
|
|
|
|
|
$rec[$attr][$j] = $entry[$attr][$j];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $rec;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// for backward compat.
|
|
|
|
|