function crm_core_user_sync_user_insert in CRM Core 7
Same name and namespace in other branches
- 8.3 modules/crm_core_user_sync/crm_core_user_sync.module \crm_core_user_sync_user_insert()
- 8 modules/crm_core_user_sync/crm_core_user_sync.module \crm_core_user_sync_user_insert()
- 8.2 modules/crm_core_user_sync/crm_core_user_sync.module \crm_core_user_sync_user_insert()
Implements hook_user_insert().
File
- modules/
crm_core_user_sync/ crm_core_user_sync.module, line 143
Code
function crm_core_user_sync_user_insert(&$edit, $account, $category) {
if (variable_get('crm_core_user_sync_auto_sync_user_create', 1)) {
// We want to try to search for existing contact.
if (variable_get('crm_core_user_sync_auto_sync_user_match', 1)) {
$contact_types = entity_load('crm_core_contact_type');
$match = FALSE;
foreach ($contact_types as $contact_type) {
if (isset($contact_type->primary_fields) && !empty($contact_type->primary_fields['email'])) {
$email_field = $contact_type->primary_fields['email'];
$email_field_info = field_info_field($email_field);
reset($email_field_info['columns']);
$column = key($email_field_info['columns']);
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'crm_core_contact')
->entityCondition('bundle', $contact_type->type)
->fieldCondition($email_field, $column, $account->mail);
$results = $query
->execute();
if (!empty($results['crm_core_contact'])) {
$match = TRUE;
$cids = array_keys($results['crm_core_contact']);
$contact_id = array_shift($cids);
crm_core_user_sync_sync($account, crm_core_contact_load($contact_id));
break;
}
}
}
if (!$match) {
crm_core_user_sync_sync($account);
}
}
else {
crm_core_user_sync_sync($account);
}
}
}