Alter menu link if logged in I have a regular node in my main menu that:


if an anonymous user clicks on it, the node should be shown regularly
if a logged in user clicks on it, there should be a redirect to an external website


I tried 

HOOK_menu_link_alter 
but that only is invoked on edit-and-save (if menu item is created via web)

HOOK_node_view
that seems to work but does not seem like a good solution to load the complete node and check for the user just to redirect
Instead of altering the menu link per role (which is tricky considering the process with which menus are built and cached), I would suggest you go for adding redirects per role.

The Url Redirect module should be able to help you achieve it.


  
  Url Redirect is a simple, flexible module for allowing user(s) / role(s) to redirect from one
  path to other.
  Url Redirect is also handy to add / edit / delete url(s) , specify role(s) / user(s) for url
  redirect, set a message for url redirect, enable / disable.