]> source.dussan.org Git - redmine.git/commitdiff
Use ApplicationController#find_optional_project instead.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 26 Jun 2017 19:40:16 +0000 (19:40 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 26 Jun 2017 19:40:16 +0000 (19:40 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@16720 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/queries_controller.rb
test/functional/queries_controller_test.rb

index 54f695fd78bf1625b2705afe1884acf66900395b..9a6102a16c5efcd8b6ae7fa57a493a17f576c070 100644 (file)
@@ -114,13 +114,6 @@ class QueriesController < ApplicationController
     render_404
   end
 
-  def find_optional_project
-    @project = Project.find(params[:project_id]) if params[:project_id]
-    render_403 unless User.current.allowed_to?(:save_queries, @project, :global => true)
-  rescue ActiveRecord::RecordNotFound
-    render_404
-  end
-
   def update_query_from_params
     @query.project = params[:query_is_for_all] ? nil : @project
     @query.build_from_params(params)
index 4aac315402a21a30897cba6ac419fb9cb8e785c3..5149a447da69c85d2c800a198eac2bf286b46345 100644 (file)
@@ -244,6 +244,31 @@ class QueriesControllerTest < Redmine::ControllerTest
     assert_select 'input[name=?]', 'query[name]'
   end
 
+  def test_create_query_without_permission_should_fail
+    Role.all.each {|r| r.remove_permission! :save_queries, :manage_public_queries}
+
+    @request.session[:user_id] = 2
+    assert_no_difference '::Query.count' do
+      post :create, :params => {
+          :project_id => 'ecookbook',
+          :query => {:name => 'Foo'}
+        }
+    end
+    assert_response 403
+  end
+
+  def test_create_global_query_without_permission_should_fail
+    Role.all.each {|r| r.remove_permission! :save_queries, :manage_public_queries}
+
+    @request.session[:user_id] = 2
+    assert_no_difference '::Query.count' do
+      post :create, :params => {
+          :query => {:name => 'Foo'}
+        }
+    end
+    assert_response 403
+  end
+
   def test_create_global_query_from_gantt
     @request.session[:user_id] = 1
     assert_difference 'IssueQuery.count' do