]> source.dussan.org Git - redmine.git/commitdiff
Splitted #find_issues filter in ApplicationController to #find_issues and #check_proj...
authorJean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
Wed, 29 Sep 2010 05:22:53 +0000 (05:22 +0000)
committerJean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
Wed, 29 Sep 2010 05:22:53 +0000 (05:22 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4228 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/application_controller.rb
app/controllers/issue_moves_controller.rb
app/controllers/issues_controller.rb

index 32bb528a31217db30595a5d8c17fd8c42eeaa261..fd6fc52da0877afc08eace00f543ea64364fbe4c 100644 (file)
@@ -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
index 6ac46a1eea7acfc4c11959dbb8b597c74b770f69..20da387559b0542bba71a7b055341c61e9871e48 100644 (file)
@@ -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
index a48a9e8fffd1d84209eac8e2351bce6e5c8460cb..d1378777a0334734a8a7ef13b556a03bff459c0d 100644 (file)
@@ -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]