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