diff --git a/app/views/news/index.html.erb b/app/views/news/index.html.erb index 3a8f1ccb2d..8ec1d512af 100644 --- a/app/views/news/index.html.erb +++ b/app/views/news/index.html.erb @@ -1,8 +1,8 @@
<%= link_to(l(:label_news_new), (@project ? project_news_index_path(@project) : news_index_path), - :class => 'icon icon-add', - :onclick => 'showAndScrollTo("add-news", "news_title"); return false;') if (@project.nil? || (@project && User.current.allowed_to?(:manage_news, @project))) %> + :class => 'icon icon-add add-news-link', + :onclick => 'showAndScrollTo("add-news", "news_title"); return false;') if User.current.allowed_to?(:manage_news, @project, global: true) %> <%= watcher_link(@project.enabled_module('news'), User.current) if @project && User.current.logged? %>
diff --git a/test/functional/news_controller_test.rb b/test/functional/news_controller_test.rb index 4dd46c8a77..ab0fc27d4d 100644 --- a/test/functional/news_controller_test.rb +++ b/test/functional/news_controller_test.rb @@ -53,6 +53,18 @@ class NewsControllerTest < Redmine::ControllerTest assert_response 403 end + def test_index_without_global_manage_news_permission_should_not_display_add_news_link + user = User.find(2) + @request.session[:user_id] = user.id + Role.all.each {|r| r.remove_permission! :manage_news} + get :index + assert_select '.add-news-link', count: 0 + + user.members.first.roles.first.add_permission! :manage_news + get :index + assert_select '.add-news-link', count: 1 + end + def test_show get(:show, :params => {:id => 1}) assert_response :success