summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-05-25 20:47:46 +0000
committerDouwe Maan <douwe@gitlab.com>2016-05-25 20:47:46 +0000
commit74fb50041568e381513d2a9053d31a714797a0a8 (patch)
tree655cc4c6bb8db89a4d2423e25ed10759426bb4f9 /app
parent380966e861a3c0cfc1d2884939c6677599690206 (diff)
parent5273335247660465a39ffdcb1c801807e84b3eba (diff)
downloadgitlab-ce-74fb50041568e381513d2a9053d31a714797a0a8.tar.gz
Merge branch 'issue_10725' into 'master'
Fix forks creation when visibility level is restricted fixes #10725 See merge request !4283
Diffstat (limited to 'app')
-rw-r--r--app/services/projects/fork_service.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/app/services/projects/fork_service.rb b/app/services/projects/fork_service.rb
index 0577ae778d5..de6dc38cc8e 100644
--- a/app/services/projects/fork_service.rb
+++ b/app/services/projects/fork_service.rb
@@ -3,7 +3,7 @@ module Projects
def execute
new_params = {
forked_from_project_id: @project.id,
- visibility_level: @project.visibility_level,
+ visibility_level: allowed_visibility_level,
description: @project.description,
name: @project.name,
path: @project.path,
@@ -19,5 +19,17 @@ module Projects
new_project = CreateService.new(current_user, new_params).execute
new_project
end
+
+ private
+
+ def allowed_visibility_level
+ project_level = @project.visibility_level
+
+ if Gitlab::VisibilityLevel.non_restricted_level?(project_level)
+ project_level
+ else
+ Gitlab::VisibilityLevel.highest_allowed_level
+ end
+ end
end
end