? .privatemsg.module.swp
? privatemsg_menu.patch
? privatemsg_menu_2.patch
Index: privatemsg.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/privatemsg/privatemsg.module,v
retrieving revision 1.99
diff -u -p -r1.99 privatemsg.module
--- privatemsg.module	5 Nov 2008 05:42:37 -0000	1.99
+++ privatemsg.module	12 Nov 2008 20:03:25 -0000
@@ -37,7 +37,7 @@ function privatemsg_menu() {
     'access arguments' => array('read privatemsg'),
     'type'             => MENU_NORMAL_ITEM,
   );
-  $items['messages/inbox'] = array(
+  $items['messages/list'] = array(
     'title'            => 'All messages',
     'page callback'    => 'privatemsg_list',
     'access arguments' => array('read privatemsg'),
@@ -63,8 +63,9 @@ function privatemsg_menu() {
     'title'            => 'Read private message',
     'page callback'    => 'privatemsg_view',
     'page arguments'   => array(2),
+    'access callback'  => 'privatemsg_view_access_callback',
     'access arguments' => array('read privatemsg'),
-    'type'             => MENU_CALLBACK,
+    'type'             => MENU_LOCAL_TASK,
     'weight'           => -10,
   );
   $items['messages/delete/%'] = array(
@@ -78,18 +79,11 @@ function privatemsg_menu() {
   $items['messages/new'] = array(
     'title'            => 'Write new message',
     'page callback'    => 'drupal_get_form',
-    'page arguments'   => array('privatemsg_new'),
+    'page arguments'   => array('privatemsg_new', 2),
     'access arguments' => array('write privatemsg'),
     'type'             => MENU_LOCAL_TASK,
     'weight'           => -7,
   );
-  $items['messages/new/%user'] = array(
-    'page callback'    => 'drupal_get_form',
-    'page arguments'   => array('privatemsg_new', 2),
-    'access arguments' => array('write privatemsg'),
-    'type'             => MENU_CALLBACK,
-    'weight'           => -10,
-  );
   // Auto-completes available user names & removes duplicates.
   $items['messages/user-name-autocomplete'] = array(
     'page callback'    => 'privatemsg_user_name_autocomplete',
@@ -393,6 +387,20 @@ function privatemsg_set_new_status($acco
   }
 }
 
+/**
+ * @return 
+ * Access for the local task
+ */
+function privatemsg_view_access_callback() {
+  // show the tab only, when the users reads a privatemsg
+  if (arg(0) == 'messages' && arg(1) == 'view' && is_numeric(arg(2))) {
+    return user_access('read privatemsg');
+  }
+  else {
+    return FALSE;
+  }
+}
+
 function privatemsg_view($thread_id) {
   global $user;
   $output = '';
@@ -439,7 +447,7 @@ function privatemsg_new(&$form_state, $a
   $subject   = '';
   $body      = '';
 
-  if (isset($account)) {
+  if (isset($account) && $account = user_load($account)) {
     $recipient  = $account->name .', ';
   }
   if (isset($form_state['values'])) {
