--- listhandler.module.orig 2009-08-21 19:48:12.000000000 -0400 +++ listhandler.module 2009-08-21 19:52:28.000000000 -0400 @@ -425,6 +425,10 @@ } $node = listhandler_find_parent($node, $header); + // ensure the author can post - provide opportunity for third party + // modules to update author if given author can't post + listhandler_check_author_access($node); + $node->message_id = $header->message_id; $node->sentbylisthandler = true; @@ -437,6 +441,25 @@ } /** + * Check to see if the assigned author will have permission + * to post this node. If not, enable other modules to change + * the author via hook_listhandler_author(&$node) + */ +function listhandler_check_author_access(&$node) { + if (($node->nid && node_access('update',$node)) || !$node->nid && node_access('create',$node)) { + return; + } + // assigned user does not have access to post this node + // check for hooks to update the user + foreach (module_list() as $name) { + if (module_hook($name, 'listhandler_author')) { + $function = $name .'_listhandler_author'; + $function($node); + } + } +} + +/** * Create account for unknown authors of a new mailsubmitted node or comment. * Admin is able to choose if it will be * a real account or a blocked one (see conf).