You are here

function ldap_servers_ldap_attributes_needed_alter in Lightweight Directory Access Protocol (LDAP) 8.2

Same name and namespace in other branches
  1. 8.3 ldap_servers/ldap_servers.module \ldap_servers_ldap_attributes_needed_alter()
  2. 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();
    }
  }
}