summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2018-01-02 15:03:06 +0000
committerDouwe Maan <douwe@gitlab.com>2018-01-02 15:03:06 +0000
commit88e7378c8cab4160fe858d2483362d1575b43125 (patch)
tree1ac16f538a3153d11c9e3255f76a84fa18c7a50d /lib
parent3f44c4cedbbd9b72fdf28e83caaec345934e1d8d (diff)
parent0618487906a8b44eea7cb858aff45a5d5ea4cfff (diff)
downloadgitlab-ce-88e7378c8cab4160fe858d2483362d1575b43125.tar.gz
Merge branch 'bvl-fork-public-project-to-private-namespace' into 'master'
Forking a project to a namespace with lower visibility Closes #40022 See merge request gitlab-org/gitlab-ce!16050
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/visibility_level.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/gitlab/visibility_level.rb b/lib/gitlab/visibility_level.rb
index 11472ce6cce..6ced06a863d 100644
--- a/lib/gitlab/visibility_level.rb
+++ b/lib/gitlab/visibility_level.rb
@@ -57,11 +57,17 @@ module Gitlab
}
end
- def highest_allowed_level
+ def allowed_levels
restricted_levels = current_application_settings.restricted_visibility_levels
- allowed_levels = self.values - restricted_levels
- allowed_levels.max || PRIVATE
+ self.values - restricted_levels
+ end
+
+ def closest_allowed_level(target_level)
+ highest_allowed_level = allowed_levels.select { |level| level <= target_level }.max
+
+ # If all levels are restricted, fall back to PRIVATE
+ highest_allowed_level || PRIVATE
end
def allowed_for?(user, level)