app/views/layouts/_user_navigation.html.erb

Summary

Maintainability
Test Coverage
<li class="nav-item dropdown">
  <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
    <%= current_user.initials %>
  </a>
  <div class="user-widget dropdown-menu dropdown-menu-right">
    <div class="user-widget-header">
      <b class="fullname"><%= current_user.name %></b>
      <div class="email"><%= current_user.email %></div>
    </div>

    <div class="dropdown-divider"></div>

    <% css_class = (current_page? edit_user_path(current_user)) ? 'dropdown-item active' : 'dropdown-item'  %>
    <%= link_to t("txt.views.layouts.application.profile"), edit_user_path(current_user), class: css_class %>

    <% if can? :use, :administration %>
      <div class="dropdown-divider"></div>
      <% if can? :manage, User %>
        <% css_class = (current_page? users_path) ? 'dropdown-item active' : 'dropdown-item'  %>
        <%= link_to t("txt.views.navigation.users"), users_path, class: css_class %>
      <% end %>

      <% if can? :manage, Iqvoc.config %>
        <% css_class = (current_page? instance_configuration_path) ? 'dropdown-item active' : 'dropdown-item'  %>
        <%= link_to t("txt.views.navigation.instance_configuration"), instance_configuration_path, class: css_class %>
      <% end %>

      <% if can? :import, Concept::Base %>
        <% css_class = (current_page? imports_path) ? 'dropdown-item active' : 'dropdown-item'  %>
        <%= link_to t("txt.views.navigation.import"), imports_path, class: css_class %>
      <% end %>

      <% if can? :export, Concept::Base %>
        <% css_class = (current_page? exports_path) ? 'dropdown-item active' : 'dropdown-item'  %>
        <%= link_to t("txt.views.navigation.export"), exports_path, class: css_class %>
      <% end %>

      <% if can? :sync, :triplestore %>
        <% css_class = (current_page? triplestore_sync_path) ? 'dropdown-item active' : 'dropdown-item'  %>
        <%= link_to t("txt.views.navigation.sync"), triplestore_sync_path, class: css_class %>
      <% end %>

      <% if can? :reset, :thesaurus %>
        <% css_class = (current_page? reset_path) ? 'dropdown-item active' : 'dropdown-item'  %>
        <%= link_to t("txt.views.navigation.reset"), reset_path, class: css_class %>
      <% end %>
    <% end %>

    <div class="dropdown-divider"></div>
    <%= link_to t("txt.views.layouts.application.logout"), user_session_path,  method: :delete, class: 'dropdown-item logout' %>
  </div>
</li>