Commit 41eab9a9 authored by Douwe Maan's avatar Douwe Maan

Merge branch 'bvl-validate-label-for-project-before-save-ce' into 'master'

[CE-Backport] Skip creating project when errors were added

See merge request gitlab-org/gitlab-ce!19430
parents 96747556 51a9f711
...@@ -46,6 +46,9 @@ module Projects ...@@ -46,6 +46,9 @@ module Projects
yield(@project) if block_given? yield(@project) if block_given?
# If the block added errors, don't try to save the project
return @project if @project.errors.any?
@project.creator = current_user @project.creator = current_user
if forked_from_project_id if forked_from_project_id
......
...@@ -19,6 +19,9 @@ module Projects ...@@ -19,6 +19,9 @@ module Projects
yield if block_given? yield if block_given?
# If the block added errors, don't try to save the project
return validation_failed! if project.errors.any?
if project.update_attributes(params.except(:default_branch)) if project.update_attributes(params.except(:default_branch))
if project.previous_changes.include?('path') if project.previous_changes.include?('path')
project.rename_repo project.rename_repo
...@@ -30,10 +33,7 @@ module Projects ...@@ -30,10 +33,7 @@ module Projects
success success
else else
model_errors = project.errors.full_messages.to_sentence validation_failed!
error_message = model_errors.presence || 'Project could not be updated!'
error(error_message)
end end
end end
...@@ -45,6 +45,13 @@ module Projects ...@@ -45,6 +45,13 @@ module Projects
private private
def validation_failed!
model_errors = project.errors.full_messages.to_sentence
error_message = model_errors.presence || 'Project could not be updated!'
error(error_message)
end
def renaming_project_with_container_registry_tags? def renaming_project_with_container_registry_tags?
new_path = params[:path] new_path = params[:path]
......
...@@ -35,7 +35,9 @@ describe API::Settings, 'Settings' do ...@@ -35,7 +35,9 @@ describe API::Settings, 'Settings' do
context "custom repository storage type set in the config" do context "custom repository storage type set in the config" do
before do before do
storages = { 'custom' => 'tmp/tests/custom_repositories' } # Add a possible storage to the config
storages = Gitlab.config.repositories.storages
.merge({ 'custom' => 'tmp/tests/custom_repositories' })
allow(Gitlab.config.repositories).to receive(:storages).and_return(storages) allow(Gitlab.config.repositories).to receive(:storages).and_return(storages)
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment