function ldapdata_user_update_drupal_account in LDAP integration 5.2        
                          
                  
                        Same name and namespace in other branches
- 5 ldapdata.module \ldapdata_user_update_drupal_account()
1 call to ldapdata_user_update_drupal_account()
  - ldapdata_user_update in ./ldapdata.module
File
 
   - ./ldapdata.module, line 630
Code
function ldapdata_user_update_drupal_account(&$edit, &$user) {
  $ldap_config_name = $user->ldap_config;
  
  $result = db_fetch_array(db_query("SELECT ldapdata_mappings, encrypted FROM {ldapauth} WHERE name = '%s'", $ldap_config_name));
  $mappings = unserialize($result['ldapdata_mappings']);
  $mapping_type = $mappings['access'];
  $encr = $result['encrypted'];
  $account_updated_in_ldap = $mapping_type == LDAP_MAP_ATTRIBUTES;
  $writeout = array();
  if ($user->ldap_dn && $account_updated_in_ldap) {
    
    $d2l_map = _ldapdata_reverse_mappings($user->ldap_config);
    foreach ($edit as $key => $value) {
      $ldap_attr = $d2l_map[$key];
      if ($ldap_attr) {
        if ($key == 'pass') {
          if ($value) {
            $pw = $encr ? '{md5}' . base64_encode(pack('H*', md5($value))) : $value;
            $writeout[$ldap_attr] = $pw;
          }
          
          if (variable_get('ldap_login_process', LDAP_FIRST_LDAP) == LDAP_FIRST_LDAP) {
            $edit['pass'] = null;
          }
        }
        else {
          $writeout[$ldap_attr] = $value;
        }
      }
    }
  }
  return $writeout;
}