@backstage-community/plugin-rbac-backend
Version:
33 lines (29 loc) • 1.23 kB
JavaScript
;
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