Here is a quick module I wrote recently for Joomla. Its a very simple modification to the mod_mainmenu module and generally works just like the mod_menu with a few exceptions. When it renders the menu items it only shows the links that have the users authorisation level assigned to it. If a user is not logged in the strictmenu will show them the public links, and hide the registered links as usual. If the user sucessfully logs in, the strictmenu will show only the registered links and hide the public links. This is where it differs from the mod_mainmenu module. The mod_mainmenu still displays the public links.