Creates a function to check if repo is EE

Adds EE information to gon
Creates a global vue mixin
This commit is contained in:
Filipa Lacerda 2019-03-04 08:20:37 +00:00 committed by Phil Hughes
parent 615c14b289
commit ec7835946a
7 changed files with 45 additions and 0 deletions

View file

@ -708,6 +708,14 @@ export const NavigationType = {
TYPE_RESERVED: 255, TYPE_RESERVED: 255,
}; };
/**
* Returns the value of `gon.ee`
* Used to check if it's the EE codebase or the CE one.
*
* @returns Boolean
*/
export const isEE = () => window.gon && window.gon.ee;
window.gl = window.gl || {}; window.gl = window.gl || {};
window.gl.utils = { window.gl.utils = {
...(window.gl.utils || {}), ...(window.gl.utils || {}),

View file

@ -0,0 +1,10 @@
import Vue from 'vue';
import { isEE } from '~/lib/utils/common_utils';
Vue.mixin({
computed: {
isEE() {
return isEE();
},
},
});

View file

@ -0,0 +1,5 @@
---
title: Creates a helper function to check if repo is EE
merge_request: 25647
author:
type: other

View file

@ -58,6 +58,10 @@ module Gitlab
Rails.env.development? || org? || com? Rails.env.development? || org? || com?
end end
def self.ee?
Object.const_defined?(:License)
end
def self.process_name def self.process_name
return 'sidekiq' if Sidekiq.server? return 'sidekiq' if Sidekiq.server?
return 'console' if defined?(Rails::Console) return 'console' if defined?(Rails::Console)

View file

@ -25,6 +25,7 @@ module Gitlab
gon.test_env = Rails.env.test? gon.test_env = Rails.env.test?
gon.suggested_label_colors = LabelsHelper.suggested_colors gon.suggested_label_colors = LabelsHelper.suggested_colors
gon.first_day_of_week = current_user&.first_day_of_week || Gitlab::CurrentSettings.first_day_of_week gon.first_day_of_week = current_user&.first_day_of_week || Gitlab::CurrentSettings.first_day_of_week
gon.ee = Gitlab.ee?
if current_user if current_user
gon.current_user_id = current_user.id gon.current_user_id = current_user.id

View file

@ -8,6 +8,7 @@ import '~/commons';
import Vue from 'vue'; import Vue from 'vue';
import VueResource from 'vue-resource'; import VueResource from 'vue-resource';
import Translate from '~/vue_shared/translate'; import Translate from '~/vue_shared/translate';
import CheckEE from '~/vue_shared/mixins/is_ee';
import jasmineDiff from 'jasmine-diff'; import jasmineDiff from 'jasmine-diff';
import { getDefaultAdapter } from '~/lib/utils/axios_utils'; import { getDefaultAdapter } from '~/lib/utils/axios_utils';
@ -43,6 +44,7 @@ Vue.config.errorHandler = function(err) {
Vue.use(VueResource); Vue.use(VueResource);
Vue.use(Translate); Vue.use(Translate);
Vue.use(CheckEE);
// enable test fixtures // enable test fixtures
jasmine.getFixtures().fixturesPath = FIXTURES_PATH; jasmine.getFixtures().fixturesPath = FIXTURES_PATH;
@ -67,6 +69,7 @@ window.gl = window.gl || {};
window.gl.TEST_HOST = TEST_HOST; window.gl.TEST_HOST = TEST_HOST;
window.gon = window.gon || {}; window.gon = window.gon || {};
window.gon.test_env = true; window.gon.test_env = true;
window.gon.ee = false;
gon.relative_url_root = ''; gon.relative_url_root = '';
let hasUnhandledPromiseRejections = false; let hasUnhandledPromiseRejections = false;

View file

@ -95,4 +95,18 @@ describe Gitlab do
expect(described_class.com?).to eq false expect(described_class.com?).to eq false
end end
end end
describe '.ee?' do
it 'returns true when using Enterprise Edition' do
stub_const('License', Class.new)
expect(described_class.ee?).to eq(true)
end
it 'returns false when using Community Edition' do
hide_const('License')
expect(described_class.ee?).to eq(false)
end
end
end end