Commit aa29773ad8a694b37239da948a7b92af409ea53e

Authored by Rodrigo Souto
1 parent 8175d7fb

Not display administration link to common users

ActionItem3173
app/helpers/application_helper.rb
... ... @@ -1104,14 +1104,18 @@ module ApplicationHelper
1104 1104 end
1105 1105  
1106 1106 def manage_enterprises
1107   - return unless user && user.environment.enabled?(:display_my_enterprises_on_user_menu)
1108   - manage_link(user.enterprises, :enterprises)
  1107 + return '' unless user && user.environment.enabled?(:display_my_enterprises_on_user_menu)
  1108 + manage_link(user.enterprises, :enterprises).to_s
1109 1109 end
1110 1110  
1111 1111 def manage_communities
1112   - return unless user && user.environment.enabled?(:display_my_communities_on_user_menu)
  1112 + return '' unless user && user.environment.enabled?(:display_my_communities_on_user_menu)
1113 1113 administered_communities = user.communities.more_popular.select {|c| c.admins.include? user}
1114   - manage_link(administered_communities, :communities)
  1114 + manage_link(administered_communities, :communities).to_s
  1115 + end
  1116 +
  1117 + def admin_link
  1118 + user.is_admin?(environment) ? link_to('<i class="icon-menu-admin"></i><strong>' + _('Administration') + '</strong>', environment.admin_url, :title => _("Configure the environment"), :class => 'admin-link') : ''
1115 1119 end
1116 1120  
1117 1121 def usermenu_logged_in
... ... @@ -1123,9 +1127,9 @@ module ApplicationHelper
1123 1127  
1124 1128 (_("<span class='welcome'>Welcome,</span> %s") % link_to("<i style='background-image:url(#{user.profile_custom_icon(gravatar_default)})'></i><strong>#{user.identifier}</strong>", user.public_profile_url, :id => "homepage-link", :title => _('Go to your homepage'))) +
1125 1129 render_environment_features(:usermenu) +
1126   - link_to('<i class="icon-menu-admin"></i><strong>' + _('Administration') + '</strong>', @environment.admin_url, :title => _("Configure the environment"), :class => 'admin-link') +
1127   - manage_enterprises.to_s +
1128   - manage_communities.to_s +
  1130 + admin_link +
  1131 + manage_enterprises +
  1132 + manage_communities +
1129 1133 link_to('<i class="icon-menu-ctrl-panel"></i><strong>' + _('Control panel') + '</strong>', user.admin_url, :class => 'ctrl-panel', :title => _("Configure your personal account and content")) +
1130 1134 pending_tasks_count +
1131 1135 link_to('<i class="icon-menu-logout"></i><strong>' + _('Logout') + '</strong>', { :controller => 'account', :action => 'logout'} , :id => "logout", :title => _("Leave the system"))
... ...
test/unit/application_helper_test.rb
... ... @@ -606,6 +606,22 @@ class ApplicationHelperTest &lt; ActionView::TestCase
606 606 assert_equal 'Open chat', render_environment_features(:usermenu)
607 607 end
608 608  
  609 + should 'not inlude administration link if user is not an environment administrator' do
  610 + user = mock()
  611 + stubs(:environment).returns(Environment.default)
  612 + user.stubs(:is_admin?).with(environment).returns(false)
  613 + stubs(:user).returns(user)
  614 + assert admin_link.blank?
  615 + end
  616 +
  617 + should 'inlude administration link if user is an environment administrator' do
  618 + user = mock()
  619 + stubs(:environment).returns(Environment.default)
  620 + user.stubs(:is_admin?).with(environment).returns(true)
  621 + stubs(:user).returns(user)
  622 + assert admin_link.present?
  623 + end
  624 +
609 625 should 'not return mime type of profile icon if not requested' do
610 626 stubs(:profile).returns(Person.new)
611 627 stubs(:current_theme).returns('default')
... ...