From cfaf012c532a269a230f67b31e623b18e3f8f8b1 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 3 Jun 2019 15:04:59 -0700 Subject: Fix project settings not being able to update Previously import_url would always be present in the update parameters, which would cause the validation to fail. We now only include this parameter only if there is URL given. Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/62708 --- app/controllers/concerns/import_url_params.rb | 2 ++ changelogs/unreleased/sh-fix-import-url-update.yml | 5 +++++ spec/controllers/concerns/import_url_params_spec.rb | 12 ++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 changelogs/unreleased/sh-fix-import-url-update.yml diff --git a/app/controllers/concerns/import_url_params.rb b/app/controllers/concerns/import_url_params.rb index 765654ca2cb..e51e4157f50 100644 --- a/app/controllers/concerns/import_url_params.rb +++ b/app/controllers/concerns/import_url_params.rb @@ -2,6 +2,8 @@ module ImportUrlParams def import_url_params + return {} unless params.dig(:project, :import_url).present? + { import_url: import_params_to_full_url(params[:project]) } end diff --git a/changelogs/unreleased/sh-fix-import-url-update.yml b/changelogs/unreleased/sh-fix-import-url-update.yml new file mode 100644 index 00000000000..d143bd3473a --- /dev/null +++ b/changelogs/unreleased/sh-fix-import-url-update.yml @@ -0,0 +1,5 @@ +--- +title: Fix project settings not being able to update +merge_request: 29097 +author: +type: fixed diff --git a/spec/controllers/concerns/import_url_params_spec.rb b/spec/controllers/concerns/import_url_params_spec.rb index fc5dfb5263f..adbe6e5d3bf 100644 --- a/spec/controllers/concerns/import_url_params_spec.rb +++ b/spec/controllers/concerns/import_url_params_spec.rb @@ -8,6 +8,18 @@ describe ImportUrlParams do controller.import_url_params end + context 'empty URL' do + let(:params) do + ActionController::Parameters.new(project: { + title: 'Test' + }) + end + + it 'returns empty hash' do + expect(import_url_params).to eq({}) + end + end + context 'url and password separately provided' do let(:params) do ActionController::Parameters.new(project: { -- cgit v1.2.1