RedmineのPluginを作っている際に、メニューの表示制御が良くわからかったのでメモ。
オプションの":if"で指定できるようなので、たとえば管理者のみに表示したい場合は、下記のように User.current.admin? で判定できる。
menu :top_menu, :view_customizes, { :controller => 'view_customizes', :action => 'index' }, :caption => 'View Customize', :if => Proc.new { User.current.admin? }
ログイン済みの場合なら、User.current.logged? で判断できる。
Controller側もあわせて、before_filter :require_admin を指定しておけば、直接URLたたかれても大丈夫。