Commit aa29773ad8a694b37239da948a7b92af409ea53e
1 parent
8175d7fb
Exists in
master
and in
27 other branches
Not display administration link to common users
ActionItem3173
Showing
2 changed files
with
27 additions
and
7 deletions
Show diff stats
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 < 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') | ... | ... |