function create_new_user(&$row) { msg('create_new_user'); if (!$row->is_cell_valid && !$row->is_email_valid) { msg("no email and no cell"); $log = import_user_log_get_default($user->uid, $row->record_id, 'import', 'no-cell-or-email'); import_user_log_insert($log); return false; } if (user_exists_by_phone($row)) { msg('user_exists_by_phone'); return false; } if (user_exists_by_email($row)) { msg('user_exists_by_email'); return false; } msg('creating'); $log_type = 'import'; $log_value = 'new'; $existing_log = import_user_log_get_by_rid_type($row->record_id, $log_type); if ($existing_log) { msg('already have a log for this id,type ' . $row->record_id . ',' . $log_type); return false; } // cell $number = $row->cell; if (strlen($number) > 0) { $sms_user[0] = array(status => 2, number => $number); } // password // just a random sha hash including time so we can set the password // we don't know/don't care what it is // it's secure and will need to be reset by the user if they register via email later $token = base64_encode(hash_hmac('sha256', $number, drupal_get_private_key() . time(), TRUE)); $token = strtr($token, array('+' => '-', '/' => '_', '=' => '')); $details = array('name' => strlen($row->handle) > 1 ? $row->handle . $row->record_id : $number, 'pass' => $token, 'mail' => $row->is_email_valid ? $row->email : $number, 'access' => 0, 'status' => 1, 'sms_user' => $sms_user); $user = user_save(null, $details); // set values for the imported profile fields healthimo_profile_save($user, 'profile_age', $row->age, null); healthimo_profile_save($user, 'profile_zip_code', $row->zip, null); healthimo_profile_save($user, 'profile_gender', $row->gender, null); healthimo_profile_save($user, 'profile_goal', $row->goal, null); healthimo_profile_save($user, 'profile_areas_of_interest_reply', $row->interest_areas, null); healthimo_profile_save($user, 'profile_areas_of_interest_diabetes', $row->interest_diabetes, null); //healthimo_profile_save($user, 'xxxxxxxxxxx', $row->interest_asthma, null); if ($user) { msg("import_user created user {$user->uid}"); // link to import record $log = import_user_log_get_default($user->uid, $row->record_id, $log_type, $log_value); import_user_log_insert($log); print_r($user); return $user; } return false; }
function import_user(&$row) { //print_r($row); $uniq_phones = get_unique_phones($row); //print_r($uniq_phones); $existing_user = FALSE; foreach ($uniq_phones as $phone) { $phone_row = user_exists_by_phone($phone); if ($phone_row) { msg("import_user existing user for {$phone_row->uid}"); $existing_user = TRUE; $type = 'import'; $existing_log = import_user_log_get_by_rid_type($row->recordId, $type); if (!$existing_log) { $value = 'existing'; $log = import_user_log_get_default($phone_row->uid, $row->recordId, $type, $value); import_user_log_insert($log); } else { msg("import_user existing log for {$row->recordId}, {$phone_row->uid}"); } break; // just use the first found } } if (!$existing_user) { $type = 'import'; $value = 'new'; $existing_log = import_user_log_get_by_rid_type($row->recordId, $type); //print_r($existing_log); if (!$existing_log) { // create new user $user = create_new_account_for_handle($row->caseId); if ($user) { msg("import_user created user {$user->uid}"); // link to import record $log = import_user_log_get_default($user->uid, $row->recordId, $type, $value); import_user_log_insert($log); } } else { msg("import_user skipping create, existing log for {$row->recordId}"); } } }