Index: ldapdata.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/ldap_integration/ldapdata.module,v
retrieving revision 1.15.2.5
diff -u -r1.15.2.5 ldapdata.module
--- ldapdata.module	22 Jul 2008 13:06:51 -0000	1.15.2.5
+++ ldapdata.module	30 Jul 2008 20:26:16 -0000
@@ -42,9 +42,6 @@
     case 'load':
       _ldapdata_user_load($account);
       break;
-    case 'login':
-      _ldapdata_user_login($account);
-      break;
     case 'submit':
       _ldapdata_user_submit($edit, $account, $category);
       break;
@@ -215,6 +212,12 @@
     $ldap_drupal_mappings = array_flip(_ldapdata_reverse_mappings($user->ldap_config));
     foreach ($ldap_drupal_mappings as $ldap_attr => $drupal_field) {
       if (isset($user->$drupal_field) && $ldap_attr && $drupal_field != 'access') {
+        if ($drupal_field == 'mail') {
+          $mail = $entry[strtolower($ldap_attr)][0];
+          if ($mail != $user->mail) {
+            user_save($user, array('mail' => $mail));
+          }
+        }
         if ($drupal_field != 'pass') {
           $user->$drupal_field = $entry[strtolower($ldap_attr)][0];
         }
@@ -227,44 +230,6 @@
 }
 
 /**
- * Implements hook_user() login operation.
- */
-function _ldapdata_user_login(&$user) {
-  global $_ldapdata_ldap;
-
-  // The whole point of implementing this hook is getting the
-  // e-mail address written to the DB as soon as possible.
-  // This is because it could not be written along with the rest
-  // of the user info when the user was first created in
-  // _ldapauth_ldap_login at the ldapauth module.
-
-  $mapping_type = _ldapdata_ldap_info($user, 'mapping_type');
-  $authmap = user_get_authmaps($user->name);
-  if (!isset($authmap['ldapauth']) || ($mapping_type = LDAPDATA_MAP_NOTHING)) {
-    return;
-  }
-
-  $bind_info = _ldapdata_edition($user);
-  if (!$_ldapdata_ldap->connect($bind_info[0], $bind_info[1])) {
-    watchdog('user', "User login: user %name's data could not be read in the LDAP directory", array('%name' => $user->name), WATCHDOG_WARNING);
-    return;
-  }
-
-  $entry = $_ldapdata_ldap->retrieveAttributes($user->ldap_dn);
-  $_ldapdata_ldap->disconnect();
-
-  $d2l_mappings = _ldapdata_reverse_mappings($user->ldap_config);
-
-  if (isset($d2l_mappings['mail'])) {
-    $mail_attr = drupal_strtolower($d2l_mappings['mail']);
-    $mail = $entry[$mail_attr][0];
-    if ($mail != $user->mail) {
-      user_save($user, array('mail' => $mail));
-    }
-  }
-}
-
-/**
  * Implements hook_user() submit operation.
  */
 function _ldapdata_user_submit(&$edit, &$user, $category) {

