summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Dávila <ruben@gitlab.com>2018-05-11 12:55:17 -0500
committerRubén Dávila <ruben@gitlab.com>2018-05-11 12:55:17 -0500
commit410d41ba6e15ecb12f265ef05ad9ad7f96024fa7 (patch)
tree8a1dac5376e71b66850884350bb6d39ee43d03b2
parent6c70d7f90bf8be05b67b3ec9ed2eeda3e9f524ea (diff)
downloadgitlab-ce-rd-36899-squash-template-commits-and-override-author-when-creating-project-from-template.tar.gz
Before enqueuing the job to import a project we need to know if it was created from a template in order to execute some tasks. We have the `template_name` param but it's already being used to invoke the `Projects::CreateFromTemplateService` service and it's logically being deleted from `params` otherwise we will generate an infinite recursive call. That's why we need to use a different param name to persist the template name.
-rw-r--r--app/services/projects/create_from_template_service.rb1
-rw-r--r--app/services/projects/create_service.rb4
2 files changed, 4 insertions, 1 deletions
diff --git a/app/services/projects/create_from_template_service.rb b/app/services/projects/create_from_template_service.rb
index 29b133cc466..715851e04c8 100644
--- a/app/services/projects/create_from_template_service.rb
+++ b/app/services/projects/create_from_template_service.rb
@@ -10,6 +10,7 @@ module Projects
override_params = params.dup
params[:file] = file
+ params[:created_from_template] = template_name
GitlabProjectsImportService.new(current_user, params, override_params).execute
diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb
index d16ecdb7b9b..505d2c5b1a8 100644
--- a/app/services/projects/create_service.rb
+++ b/app/services/projects/create_service.rb
@@ -13,7 +13,9 @@ module Projects
import_data = params.delete(:import_data)
@skip_wiki = params.delete(:skip_wiki)
- @project = Project.new(params)
+ @project = Project.new(params.merge(
+ template_name: params.delete(:created_from_template)
+ ))
# Make sure that the user is allowed to use the specified visibility level
unless Gitlab::VisibilityLevel.allowed_for?(current_user, @project.visibility_level)