? salesforce_api/toolkit
Index: salesforce_api/salesforce_api.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforce/salesforce_api/salesforce_api.admin.inc,v
retrieving revision 1.2.2.6
diff -u -p -r1.2.2.6 salesforce_api.admin.inc
--- salesforce_api/salesforce_api.admin.inc 27 May 2009 00:04:38 -0000 1.2.2.6
+++ salesforce_api/salesforce_api.admin.inc 31 Jul 2009 07:26:13 -0000
@@ -32,12 +32,14 @@ function salesforce_api_settings_form()
$form['api']['salesforce_api_password'] = array(
'#type' => 'password',
'#title' => t('Password'),
+ '#description' => t('Enter the password used when logging into Salesforce.'),
'#default_value' => variable_get('salesforce_api_password', ''),
);
$form['api']['salesforce_api_token'] = array(
'#type' => 'textfield',
'#title' => t('Security token'),
'#description' => t('Set your security token by logging into Salesforce and navigating to Setup > My Personal Information > Reset My Security Token.'),
+ '#required' => TRUE,
'#default_value' => variable_get('salesforce_api_token', ''),
);
@@ -70,10 +72,23 @@ function salesforce_api_settings_form()
);
// Validate handler makes sure that the salesforce_api_password doesn't get set to null on accident
+ $form['#validate'][] = 'salesforce_api_settings_form_validate';
$form['#submit'][] = 'salesforce_api_settings_form_submit';
return system_settings_form($form);
}
+// Settings form validate handler to verify new salesforce credentials before saving them.
+function salesforce_api_settings_form_validate(&$form, &$form_state) {
+ $values = $form_state['values'];
+ if (!salesforce_api_connect($values['salesforce_api_username'], $values['salesforce_api_password'], $values['salesforce_api_token'], TRUE)) {
+ // If not, prevent the user from overwriting the current configuration.
+ form_set_error('salesforce_api_username', t('Unable to connect to Salesforce. Please check your credentials.'));
+ }
+ else {
+ drupal_set_message('Salesforce connection established.');
+ }
+}
+
// Settings form submit handler so that password doesn't get deleted.
function salesforce_api_settings_form_submit($form, &$form_state) {
// If the user hit "Save Configuration" and the required field
Index: salesforce_api/salesforce_api.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforce/salesforce_api/salesforce_api.install,v
retrieving revision 1.2.2.6
diff -u -p -r1.2.2.6 salesforce_api.install
--- salesforce_api/salesforce_api.install 31 Jul 2009 03:45:53 -0000 1.2.2.6
+++ salesforce_api/salesforce_api.install 31 Jul 2009 07:26:13 -0000
@@ -22,6 +22,13 @@ function salesforce_api_uninstall() {
}
/**
+ * Implementation of hook_enable().
+ */
+function salesforce_api_enable() {
+ drupal_set_message(t('Salesforce API: Before making any Salesforce connections, please enter your Salesforce API credentials', array('!url' => url(SALESFORCE_PATH_ADMIN))), 'warning');
+}
+
+/**
* Implementation of hook_schema().
*/
function salesforce_api_schema() {
@@ -111,3 +118,42 @@ function salesforce_api_schema() {
return $schema;
}
+
+/**
+ * Implementation of hook_requirements().
+ *
+ * Check the Salesforce API configuration to see if we have valid credentials.
+ */
+function salesforce_api_requirements($phase) {
+ $req = array();
+ switch($phase) {
+ case 'install':
+ break;
+
+ case 'runtime':
+ $username = variable_get('salesforce_api_username', FALSE);
+ if (!$username) {
+ $description = l(t('Enter your Salesforce credentials.'), SALESFORCE_PATH_ADMIN);
+ $severity = REQUIREMENT_ERROR;
+ }
+ elseif (!salesforce_api_connect()) {
+ $description = t('Unable to connect to Salesforce using current configuration.', array('!url' => url(SALESFORCE_PATH_ADMIN)));
+ $severity = REQUIREMENT_ERROR;
+ }
+ else {
+ $description = '';
+ $severity = REQUIREMENT_OK;
+ }
+ $req[] = array(
+ 'title' => t('Salesforce Configuration'),
+ 'value' => l('Salesforce Admin', SALESFORCE_PATH_ADMIN),
+ 'description' => $description,
+ 'severity' => $severity
+ );
+ break;
+ }
+
+ if(!empty($req)) {
+ return $req;
+ }
+}