You are here

function sf_user_salesforce_form_submit in Salesforce Suite 6.2

Same name and namespace in other branches
  1. 5.2 sf_user/sf_user.module \sf_user_salesforce_form_submit()

File

sf_user/sf_user.module, line 412
Integrates the core user object and profile module with the Salesforce API.

Code

function sf_user_salesforce_form_submit($form, &$form_state) {
  switch ($form_state['values']['op']) {

    // Export the user to Salesforce.
    case t('Export user'):
    case t('Export changes to Salesforce'):
      if (sf_user_export($form_state['values']['uid'], $form_state['values']['name'], $form_state['values']['sfid'])) {
        drupal_set_message(t('User successfully exported to Salesforce.'));
      }
      else {
        drupal_set_message(t('An error occurred while exporting the user to Salesforce.  Check the watchdog for more information.'), 'error');
      }
      break;

    // Import changes from Salesforce.
    case t('Import changes from Salesforce'):
      if (sf_user_import($form_state['values']['sfid'], $form_state['values']['name'], $form_state['values']['uid'])) {
        drupal_set_message(t('The user has been updated with values from Salesforce.'));
      }
      else {
        drupal_set_message(t('An error occurred while importing the changes from Salesforce.  Check the watchdog for more information.'), 'error');
      }
      break;
    case $form_state['values']['link']:
      if (!is_sfid($form_state['values']['sfid'])) {
        drupal_set_message(t('Invalid SFID provided.'), 'error');
        break;
      }
      salesforce_api_id_save('user', $form_state['values']['uid'], $form_state['values']['sfid'], $form_state['values']['fieldmap'], 'link');
      break;
    case $form_state['values']['unlink']:
    case t('Unlink'):
      if (!isset($form_state['storage']['confirm'])) {
        $form_state['storage']['confirm'] = TRUE;
        $form_state['rebuild'] = TRUE;
      }
      else {
        unset($form_state['storage']['confirm']);
        $account = $form_state['values']['account'];
        salesforce_api_id_unlink(array(
          'oid' => $account->uid,
          'name' => $account->salesforce->name,
        ));
        drupal_set_message(t('The user !uid has been unlinked from Salesforce record !sfid.', array(
          '!uid' => $account->uid,
          '!sfid' => $account->salesforce->sfid,
        )));
      }
      break;
  }
}