Index: sf_node/sf_node.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforce/sf_node/sf_node.module,v
retrieving revision 1.2.2.12
diff -u -p -r1.2.2.12 sf_node.module
--- sf_node/sf_node.module 31 Aug 2009 15:00:22 -0000 1.2.2.12
+++ sf_node/sf_node.module 1 Oct 2009 19:46:37 -0000
@@ -12,11 +12,12 @@
* Implementation of hook_menu().
*/
function sf_node_menu() {
- $items['node/%/salesforce'] = array(
+ $items['node/%node/salesforce'] = array(
'title' => 'Salesforce',
'page callback' => 'drupal_get_form',
'page arguments' => array('sf_node_salesforce_form', 1),
- 'access arguments' => array('sync nodes with salesforce'),
+ 'access callback' => 'sf_node_salesforce_form_access',
+ 'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
);
@@ -210,10 +211,13 @@ function _sf_node_import_cck_todate(&$no
$node->$key = $data;
}
-// Displays the Salesforce synchronization form.
-function sf_node_salesforce_form(&$form_state, $nid) {
- $node = node_load($nid);
+// Access callback for the node/%node/salesforce menu item.
+function sf_node_salesforce_form_access($node) {
+ return user_access('sync nodes with salesforce') and salesforce_api_fieldmap_options('node_'. $node->type);
+}
+// Displays the Salesforce synchronization form.
+function sf_node_salesforce_form(&$form_state, $node) {
// Fail out if the node didn't exist!
if (!$node->nid) {
drupal_not_found();
@@ -237,32 +241,17 @@ function sf_node_salesforce_form(&$form_
'#description' => t('This node may be exported to Salesforce using any fieldmap listed below.'),
);
- // Get an array of fieldmaps that export nodes of this type to Salesforce.
- $options = salesforce_api_fieldmap_options('node_'. $node->type);
-
- // If no corresponding fieldmaps were found...
- if (count($options) == 0) {
- // Display a message appropriate to the user's permissions.
- if (user_access('administer salesforce')) {
- $form['export']['#description'] = t('To export this node you must first add a fieldmap that exports @type nodes.', array('!url' => url(SALESFORCE_PATH_FIELDMAPS .'/add'), '@type' => $node->type));
- }
- else {
- $form['export']['#description'] = t('Please contact a site administrator to add a fieldmap that exports @type nodes.', array('@type' => $node->type));
- }
- }
- else {
- // Otherwise add the export form!
- $form['export']['fieldmap'] = array(
- '#type' => 'select',
- '#title' => t('Export fieldmap'),
- '#options' => $options,
- );
+ // Add the export form.
+ $form['export']['fieldmap'] = array(
+ '#type' => 'select',
+ '#title' => t('Export fieldmap'),
+ '#options' => salesforce_api_fieldmap_options('node_'. $node->type),
+ );
- $form['export']['export_node'] = array(
- '#type' => 'submit',
- '#value' => t('Export node'),
- );
- }
+ $form['export']['export_node'] = array(
+ '#type' => 'submit',
+ '#value' => t('Export node'),
+ );
}
else {
// Otherwise add synchronization information.
Index: sf_user/sf_user.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforce/sf_user/sf_user.module,v
retrieving revision 1.2.2.6
diff -u -p -r1.2.2.6 sf_user.module
--- sf_user/sf_user.module 31 Aug 2009 15:00:22 -0000 1.2.2.6
+++ sf_user/sf_user.module 1 Oct 2009 19:46:38 -0000
@@ -11,10 +11,11 @@
* Implementation of hook_menu().
*/
function sf_user_menu() {
- $items['user/%/salesforce'] = array(
+ $items['user/%user/salesforce'] = array(
'title' => 'Salesforce',
'page callback' => 'drupal_get_form',
'page arguments' => array('sf_user_salesforce_form', 1),
+ 'access callback' => 'sf_user_salesforce_form_access',
'access arguments' => array('sync users with salesforce'),
'type' => MENU_LOCAL_TASK,
);
@@ -22,6 +23,11 @@ function sf_user_menu() {
return $items;
}
+// Access callback for the user/%user/salesforce menu item.
+function sf_user_salesforce_form_access() {
+ return user_access('sync users with salesforce') and salesforce_api_fieldmap_options('user');
+}
+
/**
* Implementation of hook_perm().
*/
@@ -96,9 +102,7 @@ function sf_user_fieldmap_objects($type)
}
// Displays the Salesforce synchronization form.
-function sf_user_salesforce_form(&$form_state, $uid) {
- $account = user_load(array('uid' => $uid));
-
+function sf_user_salesforce_form(&$form_state, $account) {
// Fail out if the user didn't exist!
if (!$account->uid) {
drupal_not_found();
@@ -125,29 +129,17 @@ function sf_user_salesforce_form(&$form_
// Get an array of fieldmaps that export nodes of this type to Salesforce.
$options = salesforce_api_fieldmap_options('user');
- // If no corresponding fieldmaps were found...
- if (count($options) == 0) {
- // Display a message appropriate to the user's permissions.
- if (user_access('administer salesforce')) {
- $form['export']['#description'] = t('To export this user you must first add a fieldmap that exports users.');
- }
- else {
- $form['export']['#description'] = t('Please contact a site administrator to add a fieldmap that exports users.');
- }
- }
- else {
- // Otherwise add the export form!
- $form['export']['fieldmap'] = array(
- '#type' => 'select',
- '#title' => t('Export fieldmap'),
- '#options' => $options,
- );
+ // Add the export form
+ $form['export']['fieldmap'] = array(
+ '#type' => 'select',
+ '#title' => t('Export fieldmap'),
+ '#options' => $options,
+ );
- $form['export']['export_user'] = array(
- '#type' => 'submit',
- '#value' => t('Export user'),
- );
- }
+ $form['export']['export_user'] = array(
+ '#type' => 'submit',
+ '#value' => t('Export user'),
+ );
}
else {
// Otherwise add synchronization information.