diff options
author | Nick Thomas <nick@gitlab.com> | 2016-09-19 21:28:41 +0300 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2016-09-27 15:17:56 +0300 |
commit | 3ed80a0176a0c8155ff6f84a8f3e70718babd8ce (patch) | |
tree | 44024da6998dfaabd0de193cb510d8ea96f8fe21 /app/services/projects/fork_service.rb | |
parent | fca610e5cbf5382f3814120227a0ca11440c8a9f (diff) |
Enforce the fork_project permission in Projects::CreateService
Projects::ForkService delegates to this service almost entirely, but needed
one small change so it would propagate create errors correctly.
CreateService#execute needs significant refactoring; it is now right at the
complexity limit set by Rubocop. I avoided doing so in this commit to keep the
diff as small as possible.
Several tests depend on the insecure behaviour of ForkService, so fi them up at
the same time.
Diffstat (limited to 'app/services/projects/fork_service.rb')
-rw-r--r-- | app/services/projects/fork_service.rb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/app/services/projects/fork_service.rb b/app/services/projects/fork_service.rb index a2de4dccece..a2b23ea6171 100644 --- a/app/services/projects/fork_service.rb +++ b/app/services/projects/fork_service.rb @@ -16,6 +16,8 @@ module Projects end new_project = CreateService.new(current_user, new_params).execute + return new_project unless new_project.persisted? + builds_access_level = @project.project_feature.builds_access_level new_project.project_feature.update_attributes(builds_access_level: builds_access_level) |