Commit 4853dd97 authored by Jean-Baptiste Barth's avatar Jean-Baptiste Barth

Splitted #find_issues filter in ApplicationController to #find_issues and…

Splitted #find_issues filter in ApplicationController to #find_issues and #check_project_uniqueness (#5332)

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4228 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent e8f3dd07
...@@ -213,16 +213,19 @@ class ApplicationController < ActionController::Base ...@@ -213,16 +213,19 @@ class ApplicationController < ActionController::Base
def find_issues def find_issues
@issues = Issue.find_all_by_id(params[:id] || params[:ids]) @issues = Issue.find_all_by_id(params[:id] || params[:ids])
raise ActiveRecord::RecordNotFound if @issues.empty? raise ActiveRecord::RecordNotFound if @issues.empty?
projects = @issues.collect(&:project).compact.uniq @projects = @issues.collect(&:project).compact.uniq
if projects.size == 1 @project = @projects.first if @projects.size == 1
@project = projects.first rescue ActiveRecord::RecordNotFound
else render_404
end
# Check if project is unique before bulk operations
def check_project_uniqueness
unless @project
# TODO: let users bulk edit/move/destroy issues from different projects # TODO: let users bulk edit/move/destroy issues from different projects
render_error 'Can not bulk edit/move/destroy issues from different projects' render_error 'Can not bulk edit/move/destroy issues from different projects'
return false return false
end end
rescue ActiveRecord::RecordNotFound
render_404
end end
# make sure that the user is a member of the project (or admin) if project is private # make sure that the user is a member of the project (or admin) if project is private
......
class IssueMovesController < ApplicationController class IssueMovesController < ApplicationController
default_search_scope :issues default_search_scope :issues
before_filter :find_issues before_filter :find_issues, :check_project_uniqueness
before_filter :authorize before_filter :authorize
def new def new
......
...@@ -21,6 +21,7 @@ class IssuesController < ApplicationController ...@@ -21,6 +21,7 @@ class IssuesController < ApplicationController
before_filter :find_issue, :only => [:show, :edit, :update] before_filter :find_issue, :only => [:show, :edit, :update]
before_filter :find_issues, :only => [:bulk_edit, :bulk_update, :move, :perform_move, :destroy] before_filter :find_issues, :only => [:bulk_edit, :bulk_update, :move, :perform_move, :destroy]
before_filter :check_project_uniqueness, :only => [:bulk_edit, :bulk_update, :move, :perform_move, :destroy]
before_filter :find_project, :only => [:new, :create] before_filter :find_project, :only => [:new, :create]
before_filter :authorize, :except => [:index] before_filter :authorize, :except => [:index]
before_filter :find_optional_project, :only => [:index] before_filter :find_optional_project, :only => [:index]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment