Menu that conditionally shows webform, or edit previous submission How can I have a menu item "RSVP" that shows a webform, but after an authenticated user has submitted that webform, clicking on "RSVP" would now bring them back to their submission in edit mode?

rsvpdirect.info:

name = rsvpdirect
description = "Redirects webform nodes to edit if the user has already submitted it once before."
package = Custom
core = 7.x
files[] = rsvpdirect.module


rsvpdirect.module:

&lt;?php

/**
* @file
* Forces redirect of webform node to edit the user's previous submission.
*
*/

/**
* Implementation of hook_node_view()
*/
function rsvpdirect_node_view($node, $view_mode, $langcode) {
  global $user;
  if ($node-&gt;type == 'webform' &amp;&amp; $view_mode == 'full' &amp;&amp; arg(0) == 'node') {
    $submissions = webform_get_submissions(array('nid' =&gt; $node-&gt;nid, 'uid' =&gt; $user-&gt;uid));
    $submission_count = webform_get_submission_count($node-&gt;nid, $user-&gt;uid);

 if ($submission_count &gt;= 1) {
      // Get first submission
      $submission = reset($submissions);
      drupal_goto('node/' . $node-&gt;nid . '/submission/' . $submission-&gt;sid . '/edit');
    }
  }
}
You can do it using hook_node_view and redirect functionality to redirect if webform is submitted. Your menu link always point to webform page. 

function YOURMODULENAME_node_view($node, $view_mode, $langcode) {
  global $user;
  if ($node-&gt;type == 'webform' &amp;&amp; $view_mode == 'full' &amp;&amp; arg(0) == 'node') {
    $submissions = webform_get_submissions(array('nid' =&gt; $node-&gt;nid, 'uid' =&gt; $user-&gt;uid));
    $submission_count = webform_get_submission_count($node-&gt;nid, $user-&gt;uid);
    if ($submission_count &gt;= 1) {
      // Get first submission
      $submission = reset($submissions);
      drupal_goto('node/' . $node-&gt;nid . '/submission/' . $submission-&gt;sid . '/edit');
    }
  }
}