diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index 880c953eaa..b05b6ccf2d 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -13,7 +13,7 @@ <%= link_to_if_authorized l(:label_settings), {:controller => 'projects', :action => 'settings', :id => @project, :tab => 'issues'}, - :class => 'icon icon-settings' if User.current.allowed_to?(:manage_categories, @project) %> + :class => 'icon icon-settings' if User.current.allowed_to?(:edit_project, @project) %> <% end %> diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index d90dcfaccb..e6a0a22345 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -2005,6 +2005,22 @@ class IssuesControllerTest < Redmine::ControllerTest assert_select '#content a.new-issue[href="/issues/new"]', :text => 'New issue' end + def test_index_should_show_setting_link_with_edit_project_permission + role = Role.find(1) + role.add_permission! :edit_project + @request.session[:user_id] = 2 + get(:index, :params => {:project_id => 1}) + assert_select '#content a.icon-settings[href="/projects/ecookbook/settings/issues"]', 1 + end + + def test_index_should_not_show_setting_link_without_edit_project_permission + role = Role.find(1) + role.remove_permission! :edit_project + @request.session[:user_id] = 2 + get(:index, :params => {:project_id => 1}) + assert_select '#content a.icon-settings[href="/projects/ecookbook/settings/issues"]', 0 + end + def test_index_should_not_include_new_issue_tab_when_disabled with_settings :new_item_menu_tab => '0' do @request.session[:user_id] = 2