From 11c454e6c84c14e92668992de1fc30da64b5df9b Mon Sep 17 00:00:00 2001 From: Drew Blessing Date: Thu, 29 Dec 2016 15:50:48 -0600 Subject: [PATCH] Prevent 500 error when entering/uploading a license Previously, if an admin clicked 'Upload license' without attaching or entering a license, a 500 error would occur. Now, we check for the right param. This also changed the render and return to a redirect, which is more appropriate. --- app/controllers/admin/licenses_controller.rb | 6 +++--- .../gracefully_handle_new_license_error.yml | 4 ++++ .../controllers/admin/licenses_controller_spec.rb | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 changelogs/unreleased-ee/gracefully_handle_new_license_error.yml create mode 100644 spec/controllers/admin/licenses_controller_spec.rb diff --git a/app/controllers/admin/licenses_controller.rb b/app/controllers/admin/licenses_controller.rb index efd358000cd567..687dd546d8aaac 100644 --- a/app/controllers/admin/licenses_controller.rb +++ b/app/controllers/admin/licenses_controller.rb @@ -17,11 +17,11 @@ def new end def create - unless params[:license] - flash.now[:alert] = "No license was selected." + unless params[:license][:data].present? || params[:license][:data_file].present? + flash[:alert] = 'Please enter or upload a license.' @license = License.new - render :new + redirect_to new_admin_license_path return end diff --git a/changelogs/unreleased-ee/gracefully_handle_new_license_error.yml b/changelogs/unreleased-ee/gracefully_handle_new_license_error.yml new file mode 100644 index 00000000000000..5b02eb4495c872 --- /dev/null +++ b/changelogs/unreleased-ee/gracefully_handle_new_license_error.yml @@ -0,0 +1,4 @@ +--- +title: Prevent 500 error when uploading/entering a blank license +merge_request: 1016 +author: diff --git a/spec/controllers/admin/licenses_controller_spec.rb b/spec/controllers/admin/licenses_controller_spec.rb new file mode 100644 index 00000000000000..9487b7f4d37c84 --- /dev/null +++ b/spec/controllers/admin/licenses_controller_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +describe Admin::LicensesController do + let(:admin) { create(:admin) } + before { sign_in(admin) } + + describe 'Upload license' do + it 'redirects back when no license is entered/uploaded' do + post :create, license: { data: '' } + + expect(response).to redirect_to new_admin_license_path + expect(flash[:alert]).to include 'Please enter or upload a license.' + end + end +end -- GitLab