diff --git a/app/controllers/my_profile/cms_controller.rb b/app/controllers/my_profile/cms_controller.rb index 4f110e5..46f57dd 100644 --- a/app/controllers/my_profile/cms_controller.rb +++ b/app/controllers/my_profile/cms_controller.rb @@ -18,7 +18,7 @@ class CmsController < MyProfileController protect_if :only => :upload_files do |c, user, profile| article_id = c.params[:parent_id] - (article_id && profile.articles.find(article_id).allow_create?(user)) || + (!article_id.blank? && profile.articles.find(article_id).allow_create?(user)) || (user && (user.has_permission?('post_content', profile) || user.has_permission?('publish_content', profile))) end diff --git a/test/functional/cms_controller_test.rb b/test/functional/cms_controller_test.rb index 5a6210c..4d9fdbe 100644 --- a/test/functional/cms_controller_test.rb +++ b/test/functional/cms_controller_test.rb @@ -296,6 +296,13 @@ class CmsControllerTest < ActionController::TestCase assert_not_nil profile.articles.find_by_path('test.txt') end + should 'not crash when parent_id is blank' do + assert_nothing_raised do + post :upload_files, :profile => profile.identifier, :parent_id => '', :uploaded_files => [fixture_file_upload('/files/test.txt', 'text/plain'), '' ] + end + assert_not_nil profile.articles.find_by_path('test.txt') + end + should 'redirect to cms after uploading files' do post :upload_files, :profile => profile.identifier, :uploaded_files => [fixture_file_upload('/files/test.txt', 'text/plain')] assert_redirected_to :action => 'index' -- libgit2 0.21.2