function ldap_user_ldap_attributes_needed_alter in Lightweight Directory Access Protocol (LDAP) 8.2
Same name and namespace in other branches
- 8.3 ldap_user/ldap_user.module \ldap_user_ldap_attributes_needed_alter()
- 7.2 ldap_user/ldap_user.module \ldap_user_ldap_attributes_needed_alter()
Implements hook_ldap_attributes_needed_alter().
File
- ldap_user/
ldap_user.module, line 201 - Module for the LDAP User Entity
Code
function ldap_user_ldap_attributes_needed_alter(&$attributes, $params) {
if (isset($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'];
}
if ($ldap_server === FALSE) {
// failed to find enabled server
return;
}
$ldap_user_conf = ldap_user_conf();
if (!isset($attributes['dn'])) {
$attributes['dn'] = array();
}
$attributes['dn'] = ldap_servers_set_attribute_map($attributes['dn']);
// force dn "attribute" to exist
switch ($params['ldap_context']) {
// Add the attributes required by the user configuration when provisioning drupal users
case 'ldap_user_insert_drupal_user':
case 'ldap_user_update_drupal_user':
case 'ldap_user_ldap_associate':
$attributes[$ldap_server->user_attr] = ldap_servers_set_attribute_map(@$attributes[$ldap_server->user_attr]);
// array($ldap_server->user_attr, 0, NULL);
$attributes[$ldap_server->mail_attr] = ldap_servers_set_attribute_map(@$attributes[$ldap_server->mail_attr]);
$attributes[$ldap_server->picture_attr] = ldap_servers_set_attribute_map(@$attributes[$ldap_server->picture_attr]);
$attributes[$ldap_server->unique_persistent_attr] = ldap_servers_set_attribute_map(@$attributes[$ldap_server->unique_persistent_attr]);
if ($ldap_server->mail_template) {
ldap_servers_token_extract_attributes($attributes, $ldap_server->mail_template);
}
break;
}
$ldap_context = empty($params['ldap_context']) ? NULL : $params['ldap_context'];
$direction = empty($params['direction']) ? $ldap_user_conf
->ldapContextToProvDirection($ldap_context) : $params['direction'];
$attributes_required_by_user_module_mappings = $ldap_user_conf
->getLdapUserRequiredAttributes($direction, $ldap_context);
$attributes = array_merge($attributes_required_by_user_module_mappings, $attributes);
}
}