git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4228 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/1.1.0
@@ -213,16 +213,19 @@ class ApplicationController < ActionController::Base | |||
def find_issues | |||
@issues = Issue.find_all_by_id(params[:id] || params[:ids]) | |||
raise ActiveRecord::RecordNotFound if @issues.empty? | |||
projects = @issues.collect(&:project).compact.uniq | |||
if projects.size == 1 | |||
@project = projects.first | |||
else | |||
@projects = @issues.collect(&:project).compact.uniq | |||
@project = @projects.first if @projects.size == 1 | |||
rescue ActiveRecord::RecordNotFound | |||
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 | |||
render_error 'Can not bulk edit/move/destroy issues from different projects' | |||
return false | |||
end | |||
rescue ActiveRecord::RecordNotFound | |||
render_404 | |||
end | |||
# make sure that the user is a member of the project (or admin) if project is private |
@@ -1,6 +1,6 @@ | |||
class IssueMovesController < ApplicationController | |||
default_search_scope :issues | |||
before_filter :find_issues | |||
before_filter :find_issues, :check_project_uniqueness | |||
before_filter :authorize | |||
def new |
@@ -21,6 +21,7 @@ class IssuesController < ApplicationController | |||
before_filter :find_issue, :only => [:show, :edit, :update] | |||
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 :authorize, :except => [:index] | |||
before_filter :find_optional_project, :only => [:index] |