diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 216f92e..42d26ef 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1104,14 +1104,18 @@ module ApplicationHelper end def manage_enterprises - return unless user && user.environment.enabled?(:display_my_enterprises_on_user_menu) - manage_link(user.enterprises, :enterprises) + return '' unless user && user.environment.enabled?(:display_my_enterprises_on_user_menu) + manage_link(user.enterprises, :enterprises).to_s end def manage_communities - return unless user && user.environment.enabled?(:display_my_communities_on_user_menu) + return '' unless user && user.environment.enabled?(:display_my_communities_on_user_menu) administered_communities = user.communities.more_popular.select {|c| c.admins.include? user} - manage_link(administered_communities, :communities) + manage_link(administered_communities, :communities).to_s + end + + def admin_link + user.is_admin?(environment) ? link_to('' + _('Administration') + '', environment.admin_url, :title => _("Configure the environment"), :class => 'admin-link') : '' end def usermenu_logged_in @@ -1123,9 +1127,9 @@ module ApplicationHelper (_("Welcome, %s") % link_to("#{user.identifier}", user.public_profile_url, :id => "homepage-link", :title => _('Go to your homepage'))) + render_environment_features(:usermenu) + - link_to('' + _('Administration') + '', @environment.admin_url, :title => _("Configure the environment"), :class => 'admin-link') + - manage_enterprises.to_s + - manage_communities.to_s + + admin_link + + manage_enterprises + + manage_communities + link_to('' + _('Control panel') + '', user.admin_url, :class => 'ctrl-panel', :title => _("Configure your personal account and content")) + pending_tasks_count + link_to('' + _('Logout') + '', { :controller => 'account', :action => 'logout'} , :id => "logout", :title => _("Leave the system")) diff --git a/test/unit/application_helper_test.rb b/test/unit/application_helper_test.rb index f960e1e..4470fc8 100644 --- a/test/unit/application_helper_test.rb +++ b/test/unit/application_helper_test.rb @@ -606,6 +606,22 @@ class ApplicationHelperTest < ActionView::TestCase assert_equal 'Open chat', render_environment_features(:usermenu) end + should 'not inlude administration link if user is not an environment administrator' do + user = mock() + stubs(:environment).returns(Environment.default) + user.stubs(:is_admin?).with(environment).returns(false) + stubs(:user).returns(user) + assert admin_link.blank? + end + + should 'inlude administration link if user is an environment administrator' do + user = mock() + stubs(:environment).returns(Environment.default) + user.stubs(:is_admin?).with(environment).returns(true) + stubs(:user).returns(user) + assert admin_link.present? + end + should 'not return mime type of profile icon if not requested' do stubs(:profile).returns(Person.new) stubs(:current_theme).returns('default') -- libgit2 0.21.2