diff --git a/app/components/layout/admin_login_items_component.html.erb b/app/components/layout/admin_login_items_component.html.erb index b5690e98a..a5200f80d 100644 --- a/app/components/layout/admin_login_items_component.html.erb +++ b/app/components/layout/admin_login_items_component.html.erb @@ -1,41 +1,4 @@
  • <%= link_to t("layouts.header.administration_menu"), "#", rel: "nofollow", class: "hide-for-small-only" %> - + <%= link_list(*admin_links, class: "submenu menu", data: { submenu: true }) %>
  • diff --git a/app/components/layout/admin_login_items_component.rb b/app/components/layout/admin_login_items_component.rb index 3c7a67950..44dd2d429 100644 --- a/app/components/layout/admin_login_items_component.rb +++ b/app/components/layout/admin_login_items_component.rb @@ -1,6 +1,6 @@ class Layout::AdminLoginItemsComponent < ApplicationComponent attr_reader :user - delegate :show_admin_menu?, to: :helpers + delegate :link_list, :show_admin_menu?, to: :helpers def initialize(user) @user = user @@ -9,4 +9,41 @@ class Layout::AdminLoginItemsComponent < ApplicationComponent def render? show_admin_menu?(user) end + + private + + def admin_links + [ + (admin_link if user.administrator?), + (moderation_link if user.administrator? || user.moderator?), + (valuation_link if feature?(:budgets) && (user.administrator? || user.valuator?)), + (management_link if user.administrator? || user.manager?), + (officing_link if user.poll_officer? && Poll.current.any?), + (sdg_management_link if feature?(:sdg) && (user.administrator? || user.sdg_manager?)) + ] + end + + def admin_link + [t("layouts.header.administration"), admin_root_path] + end + + def moderation_link + [t("layouts.header.moderation"), moderation_root_path] + end + + def valuation_link + [t("layouts.header.valuation"), valuation_root_path] + end + + def management_link + [t("layouts.header.management"), management_sign_in_path] + end + + def officing_link + [t("layouts.header.officing"), officing_root_path] + end + + def sdg_management_link + [t("sdg_management.header.title"), sdg_management_root_path] + end end