UNPKG

@backstage-community/plugin-rbac-backend

Version:
33 lines (29 loc) 1.23 kB
'use strict'; var lodash = require('lodash'); class ExtendablePluginIdProvider { constructor(pluginStore, pluginIdProvider, config) { this.pluginStore = pluginStore; const pluginIdsConfig = config.getOptionalStringArray( "permission.rbac.pluginsWithPermission" ); this.configurationPluginIds = pluginIdsConfig ? lodash.union(pluginIdsConfig, pluginIdProvider.getPluginIds()) : pluginIdProvider.getPluginIds(); } // plugin ids which came from application config and PluginIdProvider configurationPluginIds; isConfiguredPluginId(pluginId) { return this.configurationPluginIds.includes(pluginId); } async handleConflictedPluginIds() { const conflictedIds = await (await this.pluginStore.getPlugins()).filter((pId) => this.configurationPluginIds.includes(pId.pluginId)); await this.pluginStore.deletePlugins(conflictedIds.map((p) => p.pluginId)); } async getPluginIds() { const extraPlugins = await this.pluginStore.getPlugins(); return lodash.union( this.configurationPluginIds, extraPlugins.map((plugin) => plugin.pluginId) ); } } exports.ExtendablePluginIdProvider = ExtendablePluginIdProvider; //# sourceMappingURL=extendable-id-provider.cjs.js.map