diff options
author | Stan Hu <stanhu@gmail.com> | 2015-12-05 17:36:19 -0800 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2015-12-05 17:39:36 -0800 |
commit | 631a30276e30354cfde6b759527abbb26ff6cf96 (patch) | |
tree | 783203a3a5a883cd4f917df37cfdb75bed66841d /lib | |
parent | d2f9a9012d55a7dc9c8e9e61b946c52836a1d8f1 (diff) | |
download | gitlab-ce-631a30276e30354cfde6b759527abbb26ff6cf96.tar.gz |
Fix API setting of 'public' attribute to false will make a project private
Closes #3864
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/projects.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/api/projects.rb b/lib/api/projects.rb index 2b4ada6e2eb..6928fe0eb9d 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -7,8 +7,12 @@ module API helpers do def map_public_to_visibility_level(attrs) publik = attrs.delete(:public) - publik = parse_boolean(publik) - attrs[:visibility_level] = Gitlab::VisibilityLevel::PUBLIC if !attrs[:visibility_level].present? && publik == true + if publik.present? && !attrs[:visibility_level].present? + publik = parse_boolean(publik) + # Since setting the public attribute to private could mean either + # private or internal, use the more conservative option, private. + attrs[:visibility_level] = (publik == true) ? Gitlab::VisibilityLevel::PUBLIC : Gitlab::VisibilityLevel::PRIVATE + end attrs end end |