"Locking" a node after a certain period of time
You could do something like this:

/**
 * Implements hook_menu_alter
 */
function MY_MODULE_menu_alter(&amp;$items){
  $items['node/%node/edit']['access callback'] = 'MY_MODULE_check_node_access';
}

/**
 * Custom menu access callback for node/%node/edit
 */
function MY_MODULE_check_node_access($op, $node){
  global $user;
  // Note $op and $node are passed in default node_menu access arguments
  // Allow bypass by users with administer nodes permission
  if (($op == 'update') &amp;&amp; (!user_access('administer nodes'))) {
    // Allow edit access to node author if within time limit
    if ($user-&gt;uid == $node-&gt;uid) {
      $limit = variable_get('node_edit_limit', (15 * 60));
      if ((REQUEST_TIME - $node-&gt;created) &gt; $limit) {
        drupal_set_message(t('Edit time limit exceeded'));
        return FALSE;
      } else {
        return TRUE;
      }
    }
  }
  // Fallback to regular node_access checks
  return node_access($op, $node);
}