diff options
author | Rubén Dávila <ruben@gitlab.com> | 2018-05-11 20:55:17 +0300 |
---|---|---|
committer | Rubén Dávila <ruben@gitlab.com> | 2018-05-11 20:55:17 +0300 |
commit | 410d41ba6e15ecb12f265ef05ad9ad7f96024fa7 (patch) | |
tree | 8a1dac5376e71b66850884350bb6d39ee43d03b2 | |
parent | 6c70d7f90bf8be05b67b3ec9ed2eeda3e9f524ea (diff) |
Pass the template used to create Project between servicesrd-36899-squash-template-commits-and-override-author-when-creating-project-from-template
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.rb | 1 | ||||
-rw-r--r-- | app/services/projects/create_service.rb | 4 |
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) |