diff --git a/connector.module b/connector.module index e58dcba..3ed8a92 100644 --- a/connector.module +++ b/connector.module @@ -485,6 +485,27 @@ function _connector_create_account($connector_name, $cid = NULL, $consumer = NUL drupal_set_message(t("Error saving user account."), 'error'); } else { watchdog('user', 'New external user: %name using module %module.', array('%name' => $authname, '%module' => 'connector'), WATCHDOG_NOTICE, l(t('edit'), 'user/' . $new_account->uid . '/edit')); + + // Try to assign additional mapped fields. + if (module_exists('entity')) { + $user_w = entity_metadata_wrapper('user', $new_account); + + foreach ($info as $field) { + if (isset($field['sync']) && $field['sync'] && !in_array($field['sync'], $allowed_fields)) { + if (!empty($field['value'])) { + try { + $user_w->{$field['sync']}->set($field['value']); + } + catch (EntityMetadataWrapperException $e) { + watchdog('connector', 'Unable to set field %field_name on new user profile: %message', array('%field_name' => $field['sync'], '%message' => $e->getMessage()), WATCHDOG_NOTICE); + } + } + } + } + + $user_w->save(); + } + return $new_account; } }