Revision 600cc8c9
Added by Stephen Benjamin over 9 years ago
app/helpers/home_helper.rb | ||
---|---|---|
end
|
||
|
||
def authorized_menu_actions(choices)
|
||
last_item = Menu::Divider.new(:first_div)
|
||
choices = choices.map do |item|
|
||
last_item = case item
|
||
when Menu::Divider
|
||
item unless last_item.is_a?(Menu::Divider) #prevent adjacent dividers
|
||
when Menu::Item
|
||
item if item.authorized?
|
||
when Menu::Toggle
|
||
item if item.authorized_children.size > 0
|
||
end
|
||
last_shown_item_was_divider = true
|
||
|
||
choices = choices.map do |item|
|
||
case item
|
||
when Menu::Divider
|
||
unless last_shown_item_was_divider
|
||
last_shown_item_was_divider = true
|
||
item
|
||
end
|
||
when Menu::Item
|
||
if item.authorized?
|
||
last_shown_item_was_divider = false
|
||
item
|
||
end
|
||
when Menu::Toggle
|
||
if item.authorized_children.size > 0
|
||
last_shown_item_was_divider = false
|
||
item
|
||
end
|
||
end
|
||
end.compact
|
||
|
||
choices.shift if choices.first.is_a?(Menu::Divider)
|
||
choices.pop if choices.last.is_a?(Menu::Divider)
|
||
choices
|
Also available in: Unified diff
fixes #6362 - correct menu dividers if user isn't auth for some actions
(cherry picked from commit 795b9287bae5ee941331e4291eec6570e8a1ce62)