Commit 6dba97cf authored by Douglas Barbosa Alexandre's avatar Douglas Barbosa Alexandre

Merge branch 'rs-ee-project-feature-available' into 'master'

Additional feature flag check for EE::Project

Closes #7894

See merge request gitlab-org/gitlab-ee!7819
parents ecb6c46c 70417307
...@@ -266,7 +266,7 @@ module EE ...@@ -266,7 +266,7 @@ module EE
if ProjectFeature::FEATURES.include?(feature) if ProjectFeature::FEATURES.include?(feature)
super super
else else
licensed_feature_available?(feature) licensed_feature_available?(feature, user)
end end
end end
...@@ -578,7 +578,10 @@ module EE ...@@ -578,7 +578,10 @@ module EE
import_state.set_next_execution_to_now import_state.set_next_execution_to_now
end end
def licensed_feature_available?(feature) def licensed_feature_available?(feature, user = nil)
# This feature might not be behind a feature flag at all, so default to true
return false unless ::Feature.enabled?(feature, user, default_enabled: true)
available_features = strong_memoize(:licensed_feature_available) do available_features = strong_memoize(:licensed_feature_available) do
Hash.new do |h, feature| Hash.new do |h, feature|
h[feature] = load_licensed_feature_available(feature) h[feature] = load_licensed_feature_available(feature)
......
...@@ -347,6 +347,14 @@ describe Project do ...@@ -347,6 +347,14 @@ describe Project do
it 'returns true' do it 'returns true' do
is_expected.to eq(true) is_expected.to eq(true)
end end
context 'when feature is disabled by a feature flag' do
it 'returns false' do
stub_feature_flags(feature => false)
is_expected.to eq(false)
end
end
end end
context 'not allowed by Plan License but project and namespace are public' do context 'not allowed by Plan License but project and namespace are public' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment