Browse Source

Global News view should not be allowed without permission (#7068).

git-svn-id: http://svn.redmine.org/redmine/trunk@16721 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/4.0.0
Jean-Philippe Lang 7 years ago
parent
commit
b03e03b770
3 changed files with 9 additions and 10 deletions
  1. 0
    10
      app/controllers/news_controller.rb
  2. 1
    0
      lib/redmine.rb
  3. 8
    0
      test/functional/news_controller_test.rb

+ 0
- 10
app/controllers/news_controller.rb View File

@@ -98,14 +98,4 @@ class NewsController < ApplicationController
@news.destroy
redirect_to project_news_index_path(@project)
end

private

def find_optional_project
return true unless params[:project_id]
@project = Project.find(params[:project_id])
authorize
rescue ActiveRecord::RecordNotFound
render_404
end
end

+ 1
- 0
lib/redmine.rb View File

@@ -217,6 +217,7 @@ Redmine::MenuManager.map :application_menu do |menu|
menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :caption => :label_calendar

menu.push :news, {:controller => 'news', :action => 'index'},
:if => Proc.new {User.current.allowed_to?(:view_news, nil, :global => true)},
:caption => :label_news_plural
end


+ 8
- 0
test/functional/news_controller_test.rb View File

@@ -47,6 +47,14 @@ class NewsControllerTest < Redmine::ControllerTest
assert_response 404
end

def test_index_without_permission_should_fail
Role.all.each {|r| r.remove_permission! :view_news}
@request.session[:user_id] = 2

get :index
assert_response 403
end

def test_show
get :show, :params => {
:id => 1

Loading…
Cancel
Save