diff options
author | Mark Chao <mchao@gitlab.com> | 2019-11-14 10:50:19 +0800 |
---|---|---|
committer | Mark Chao <mchao@gitlab.com> | 2019-11-22 18:14:04 +0800 |
commit | 443db2868d899b9a41e85766d78d1c4203c4cb1f (patch) | |
tree | 2f981b48fe96fb9372da2f006ca3221d48f05a28 /app/models/project.rb | |
parent | 0de1bfeac34a2f26f481e871210fe74d17f75375 (diff) | |
download | gitlab-ce-443db2868d899b9a41e85766d78d1c4203c4cb1f.tar.gz |
Internalize private project minimum access level
Some feature allows GUEST to access only if project is not private.
This method returns access level when targeting private projects.
Diffstat (limited to 'app/models/project.rb')
-rw-r--r-- | app/models/project.rb | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index f319c5b1d9f..7ae4e2a4cd7 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -517,13 +517,11 @@ class Project < ApplicationRecord # This scope returns projects where user has access to both the project and the feature. def self.filter_by_feature_visibility(feature, user) - scope = with_feature_available_for_user(feature, user) - - if ProjectFeature.guest_allowed_on_private_project?(feature) - scope.public_or_visible_to_user(user) - else - scope.public_or_visible_to_user(user, Gitlab::Access::REPORTER) - end + with_feature_available_for_user(feature, user) + .public_or_visible_to_user( + user, + ProjectFeature.required_minimum_access_level_for_private_project(feature) + ) end scope :active, -> { joins(:issues, :notes, :merge_requests).order('issues.created_at, notes.created_at, merge_requests.created_at DESC') } |