]> source.dussan.org Git - redmine.git/commitdiff
Fixed that adding a blank/invalid block to my page renders a blank page (#12838).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 20 Jan 2013 15:56:46 +0000 (15:56 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 20 Jan 2013 15:56:46 +0000 (15:56 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11225 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/my_controller.rb
test/functional/my_controller_test.rb

index ab7b1828eab914731ab5873f979301a311cf9ab4..84f5b20ca671a4a47627fe277fb6264301efa849 100644 (file)
@@ -147,15 +147,16 @@ class MyController < ApplicationController
   # params[:block] : id of the block to add
   def add_block
     block = params[:block].to_s.underscore
-    (render :nothing => true; return) unless block && (BLOCKS.keys.include? block)
-    @user = User.current
-    layout = @user.pref[:my_page_layout] || {}
-    # remove if already present in a group
-    %w(top left right).each {|f| (layout[f] ||= []).delete block }
-    # add it on top
-    layout['top'].unshift block
-    @user.pref[:my_page_layout] = layout
-    @user.pref.save
+    if block.present? && BLOCKS.key?(block)
+      @user = User.current
+      layout = @user.pref[:my_page_layout] || {}
+      # remove if already present in a group
+      %w(top left right).each {|f| (layout[f] ||= []).delete block }
+      # add it on top
+      layout['top'].unshift block
+      @user.pref[:my_page_layout] = layout
+      @user.pref.save
+    end
     redirect_to my_page_layout_path
   end
 
index b04219e9f8dbda187c32ef1938f2994e51b66d67..7e96770519d1c5e2975bf4e3345b22448f931075 100644 (file)
@@ -191,6 +191,11 @@ class MyControllerTest < ActionController::TestCase
     assert User.find(2).pref[:my_page_layout]['top'].include?('issuesreportedbyme')
   end
 
+  def test_add_invalid_block_should_redirect
+    post :add_block, :block => 'invalid'
+    assert_redirected_to '/my/page_layout'
+  end
+
   def test_remove_block
     post :remove_block, :block => 'issuesassignedtome'
     assert_redirected_to '/my/page_layout'