From 4f7cae79509c22e3227b2beaf36f4f2b9c19bdb9 Mon Sep 17 00:00:00 2001 From: Jonathan Buttner <56361221+jonathan-buttner@users.noreply.github.com> Date: Tue, 13 Jul 2021 09:06:59 -0400 Subject: [PATCH] Exclude registering the cases feature if not enabled (#105292) --- x-pack/plugins/observability/server/plugin.ts | 82 ++++++++++--------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/x-pack/plugins/observability/server/plugin.ts b/x-pack/plugins/observability/server/plugin.ts index 3e8f511eb115..868e234fcb2a 100644 --- a/x-pack/plugins/observability/server/plugin.ts +++ b/x-pack/plugins/observability/server/plugin.ts @@ -38,48 +38,50 @@ export class ObservabilityPlugin implements Plugin { } public setup(core: CoreSetup, plugins: PluginSetup) { - plugins.features.registerKibanaFeature({ - id: casesFeatureId, - name: i18n.translate('xpack.observability.featureRegistry.linkObservabilityTitle', { - defaultMessage: 'Cases', - }), - order: 1100, - category: DEFAULT_APP_CATEGORIES.observability, - app: [casesFeatureId, 'kibana'], - catalogue: [observabilityFeatureId], - cases: [observabilityFeatureId], - privileges: { - all: { - app: [casesFeatureId, 'kibana'], - catalogue: [observabilityFeatureId], - cases: { - all: [observabilityFeatureId], - }, - api: [], - savedObject: { - all: [], - read: [], - }, - ui: ['crud_cases', 'read_cases'], // uiCapabilities[casesFeatureId].crud_cases or read_cases - }, - read: { - app: [casesFeatureId, 'kibana'], - catalogue: [observabilityFeatureId], - cases: { - read: [observabilityFeatureId], - }, - api: [], - savedObject: { - all: [], - read: [], - }, - ui: ['read_cases'], // uiCapabilities[uiCapabilities[casesFeatureId]].read_cases - }, - }, - }); - const config = this.initContext.config.get(); + if (config.unsafe.cases.enabled) { + plugins.features.registerKibanaFeature({ + id: casesFeatureId, + name: i18n.translate('xpack.observability.featureRegistry.linkObservabilityTitle', { + defaultMessage: 'Cases', + }), + order: 1100, + category: DEFAULT_APP_CATEGORIES.observability, + app: [casesFeatureId, 'kibana'], + catalogue: [observabilityFeatureId], + cases: [observabilityFeatureId], + privileges: { + all: { + app: [casesFeatureId, 'kibana'], + catalogue: [observabilityFeatureId], + cases: { + all: [observabilityFeatureId], + }, + api: [], + savedObject: { + all: [], + read: [], + }, + ui: ['crud_cases', 'read_cases'], // uiCapabilities[casesFeatureId].crud_cases or read_cases + }, + read: { + app: [casesFeatureId, 'kibana'], + catalogue: [observabilityFeatureId], + cases: { + read: [observabilityFeatureId], + }, + api: [], + savedObject: { + all: [], + read: [], + }, + ui: ['read_cases'], // uiCapabilities[uiCapabilities[casesFeatureId]].read_cases + }, + }, + }); + } + let annotationsApiPromise: Promise | undefined; core.uiSettings.register(uiSettings);