? jammer_user_delete_button_1.patch
Index: jammer.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/jammer/jammer.install,v
retrieving revision 1.2.2.2
diff -u -p -r1.2.2.2 jammer.install
--- jammer.install	11 Jun 2009 00:37:45 -0000	1.2.2.2
+++ jammer.install	11 Mar 2010 15:28:57 -0000
@@ -1,6 +1,11 @@
 <?php
-// $Id: jammer.install,v 1.2.2.2 2009/06/11 00:37:45 deekayen Exp $
+// $Id$
 
+
+/**
+ * @file
+ * Jammer install file
+ */
 /**
  * Implementation of hook_uninstall().
  */
@@ -10,5 +15,6 @@ function jammer_uninstall() {
   variable_del('jammer_preview_button_unset_node_types');
   variable_del('jammer_submit_button_unset_node_types');
   variable_del('jammer_delete_button_unset_node_types');
+  variable_del('jammer_user_delete_hide_button');
 }
 
Index: jammer.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/jammer/jammer.module,v
retrieving revision 1.2.2.6
diff -u -p -r1.2.2.6 jammer.module
--- jammer.module	10 Jun 2009 21:26:39 -0000	1.2.2.6
+++ jammer.module	11 Mar 2010 15:28:57 -0000
@@ -1,5 +1,5 @@
 <?php
-// $Id: jammer.module,v 1.2.2.6 2009/06/10 21:26:39 deekayen Exp $
+// $Id$
 
 /**
  * @file
@@ -10,7 +10,7 @@
  * Implementation of hook_perm().
  */
 function jammer_perm() {
-  return array('view comment preview button');
+  return array('view comment preview button', 'view user delete button');
 }
 
 /**
@@ -70,6 +70,11 @@ function jammer_form_alter(&$form, $form
   if ($form_id == 'comment_form' && !user_access('view comment preview button')) {
     $form['preview']['#access'] = FALSE;
   }
+  if ($form_id == 'user_profile_form' && !user_access('view user delete button')) {
+    if (variable_get('jammer_user_delete_hide_button', 0) == 1) {
+      unset($form['delete']);
+    }
+  }
 }
 
 function jammer_admin_settings() {
@@ -99,13 +104,25 @@ function jammer_admin_settings() {
     '#default_value' => variable_get('jammer_workflow_form_unset_node_types', array()),
     '#description' => t('The selected node types will no longer have a workflow form on the workflow tab which will require workflow transitions to occur from the node edit screen.')
   );
-  $form['buttons'] = array(
+  $form['user_buttons'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('User buttons'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+  $form['user_buttons']['jammer_user_delete_hide_button'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Remove delete button on user profile pages'),
+    '#description' => t('Selecting this will remove the delete button from all user profile pages'),
+    '#default_value' => variable_get('jammer_user_delete_hide_button', 0),
+  );
+  $form['content_buttons'] = array(
     '#type' => 'fieldset',
-    '#title' => t('Buttons'),
+    '#title' => t('Content buttons'),
     '#collapsed' => FALSE,
     '#collapsible' => TRUE
   );
-  $form['buttons']['jammer_preview_button_unset_node_types'] = array(
+  $form['content_buttons']['jammer_preview_button_unset_node_types'] = array(
     '#type' => 'select',
     '#title' => t('Remove preview button on content types'),
     '#options' => $options,
@@ -114,7 +131,7 @@ function jammer_admin_settings() {
     '#default_value' => variable_get('jammer_preview_button_unset_node_types', array()),
     '#description' => t('The selected node types will no longer have a preview button listed when creating or editing a node of that type.')
   );
-  $form['buttons']['jammer_submit_button_unset_node_types'] = array(
+  $form['content_buttons']['jammer_submit_button_unset_node_types'] = array(
     '#type' => 'select',
     '#title' => t('Remove submit button on content types'),
     '#options' => $options,
@@ -123,7 +140,7 @@ function jammer_admin_settings() {
     '#default_value' => variable_get('jammer_submit_button_unset_node_types', array()),
     '#description' => t('The selected node types will no longer have a submit button listed when creating or editing a node of that type.')
   );
-  $form['buttons']['jammer_delete_button_unset_node_types'] = array(
+  $form['content_buttons']['jammer_delete_button_unset_node_types'] = array(
     '#type' => 'select',
     '#title' => t('Remove delete button on content types'),
     '#options' => $options,
Index: jammer.test
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/jammer/Attic/jammer.test,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 jammer.test
--- jammer.test	23 Dec 2008 18:11:23 -0000	1.1.2.1
+++ jammer.test	11 Mar 2010 15:28:58 -0000
@@ -1,5 +1,11 @@
 <?php
-// $Id: jammer.test,v 1.1.2.1 2008/12/23 18:11:23 deekayen Exp $
+// $Id$
+
+/**
+ * @file
+ *
+ * Jammer simpletest test suite
+ */
 
 class JammerPreviewButtonTest extends DrupalWebTestCase {
   function getInfo() {
@@ -48,6 +54,18 @@ class JammerPreviewButtonTest extends Dr
     $this->assertNoText(t('Jammer'));
   }
 
+  function testUserDelete() {
+    $user = $this->drupalCreateUser(array('access user profiles', 'administer users'));
+    $user2 = $this->drupalCreateUser();
+    $this->drupalLogin($user);
+    variable_set('jammer_user_delete_hide_button', 0);
+    $this->drupalGet("user/$user2->uid/edit");
+    $this->assertRaw('id="edit-delete"', 'delete button visible');
+    variable_set('jammer_user_delete_hide_button', 1);
+    $this->drupalGet("user/$user2->uid/edit");
+    $this->assertNoRaw('id="edit-delete"', 'delete button hidden');
+  }
+
   function tearDown() {
     variable_del('jammer_preview_button_unset_node_types');
     parent::tearDown();
