function salesforce_api_settings_form_validate in Salesforce Suite 6.2
Same name and namespace in other branches
- 7 salesforce_api/salesforce_api.admin.inc \salesforce_api_settings_form_validate()
- 7.2 salesforce_api/salesforce_api.admin.inc \salesforce_api_settings_form_validate()
Settings form validate handler to verify new salesforce credentials before saving them.
1 string reference to 'salesforce_api_settings_form_validate'
- salesforce_api_settings_form in salesforce_api/
salesforce_api.admin.inc - The settings form at admin/settings/salesforce.
File
- salesforce_api/
salesforce_api.admin.inc, line 201 - Contains the admin page callbacks for the Salesforce module, including forms for general settings and fieldmap administration.
Code
function salesforce_api_settings_form_validate($form, &$form_state) {
$values = $form_state['values'];
if (isset($values['salesforce_api_dir_wsdl']) && !file_exists($values['salesforce_api_dir_wsdl'])) {
form_set_error('salesforce_api_dir_wsdl', 'The specified WSDL directory does not exist. Please make sure the directory exists, check your input, and try again.');
}
// If we are clearing values, no need to continue validation.
if ($values['salesforce_api_reset_credentials']) {
return;
}
foreach (array(
'salesforce_api_username',
'salesforce_api_password',
'salesforce_api_token',
) as $value) {
if (empty($values[$value])) {
$errors[$value] = ucwords(str_replace('salesforce_api_', ' ', $value)) . ' is required';
}
}
if (count($errors) == 3) {
// If all 3 fields are empty, the user has not tried to change credentials.
// Unset the form values in order to preserve existing credentials.
unset($form_state['values']['salesforce_api_username'], $form_state['values']['salesforce_api_password'], $form_state['values']['salesforce_api_token']);
return;
}
elseif (!empty($errors)) {
drupal_set_message(t('Unable to reset SalesForce API credentials.'), 'error');
foreach ($errors as $field => $error) {
form_set_error($field, $error);
}
// If we got errors already no need to continue with validation.
return;
}
// If we are setting or resetting values, test the connection.
$connection = salesforce_api_connect($values['salesforce_api_username'], $values['salesforce_api_password'], $values['salesforce_api_token'], TRUE);
if (is_object($connection)) {
drupal_set_message(t('Connection established. SalesForce credentials updated.'));
}
else {
drupal_set_message(t('Resetting SalesForce API credentials failed.'), 'error');
form_set_error('salesforce_api_username', t('Unable to connect to Salesforce. Please check your credentials.'));
form_set_error('salesforce_api_password');
form_set_error('salesforce_api_token');
}
}