function ldap_servers_ldap_attributes_needed_alter in Lightweight Directory Access Protocol (LDAP) 8.2
Same name and namespace in other branches
- 8.3 ldap_servers/ldap_servers.module \ldap_servers_ldap_attributes_needed_alter()
- 7.2 ldap_servers/ldap_servers.module \ldap_servers_ldap_attributes_needed_alter()
Implements hook_ldap_attributes_needed_alter().
File
- ldap_servers/
ldap_servers.module, line 305
Code
function ldap_servers_ldap_attributes_needed_alter(&$attributes, $params) {
$attributes['dn'] = ldap_servers_set_attribute_map(@$attributes['dn'], 'ldap_dn');
// force this data type
if ($params['sid'] && $params['sid']) {
// puid attributes are server specific
if (is_scalar($params['sid'])) {
$ldap_server = ldap_servers_get_servers($params['sid'], 'enabled', TRUE);
}
else {
$ldap_server = $params['sid'];
}
// mail, unique_persistent_attr, user_attr, mail_template, and user_dn_expression are needed for all functionality
if (!isset($attributes[$ldap_server->mail_attr])) {
$attributes[$ldap_server->mail_attr] = ldap_servers_set_attribute_map();
}
if (!isset($attributes[$ldap_server->picture_attr])) {
$attributes[$ldap_server->picture_attr] = ldap_servers_set_attribute_map();
}
if ($ldap_server->unique_persistent_attr && !isset($attributes[$ldap_server->unique_persistent_attr])) {
$attributes[$ldap_server->unique_persistent_attr] = ldap_servers_set_attribute_map();
}
if ($ldap_server->user_dn_expression) {
ldap_servers_token_extract_attributes($attributes, $ldap_server->user_dn_expression, TRUE);
}
if ($ldap_server->mail_template) {
ldap_servers_token_extract_attributes($attributes, $ldap_server->mail_template);
}
if (!isset($attributes[$ldap_server->user_attr])) {
$attributes[$ldap_server->user_attr] = ldap_servers_set_attribute_map();
}
}
}