--- ldap_integration.module 2006-05-09 19:05:32.000000000 -0400 +++ ldap_integration.module.new 2006-05-18 15:09:38.000000000 -0400 @@ -601,7 +601,7 @@ function ldap_integration_user_profile_load(&$user) { global $ldap; - $ldap_drupal_reverse_mappings = variable_get('ldap_drupal_reverse_mappings', array()); + $ldap_drupal_reverse_mappings = _ldap_integration_reverse_mappings(); $ldap_drupal_mappings = array_flip($ldap_drupal_reverse_mappings); // Retrieve profile fields list @@ -620,7 +620,15 @@ $result = db_fetch_object(db_query("SELECT fid FROM profile_fields WHERE name = '$field'")); $fid = $result->fid; $uid = $user->uid; - db_query("UPDATE profile_values SET value = '$value' WHERE fid = $fid AND uid = $uid"); + + // does the user have a value for this field ? then update it : otherwise create it + $result = db_fetch_object(db_query("SELECT value FROM profile_values WHERE fid = $fid AND uid = $uid")); + if ($result) { + db_query("UPDATE {profile_values} SET value = '$value' WHERE fid = $fid AND uid = $uid"); + } + else { + db_query("INSERT {profile_values} SET value = '$value', fid = $fid, uid = $uid"); + } } }