UNPKG

@backstage-community/plugin-rbac-backend

Version:
86 lines (82 loc) 2.61 kB
'use strict'; var backendPluginApi = require('@backstage/backend-plugin-api'); var pluginRbacBackend = require('@backstage-community/plugin-rbac-backend'); var pluginRbacNode = require('@backstage-community/plugin-rbac-node'); const rbacPlugin = backendPluginApi.createBackendPlugin({ pluginId: "permission", register(env) { const pluginIdProviderExtensionPointImpl = new class PluginIdProviderImpl { pluginIdProviders = []; addPluginIdProvider(pluginIdProvider) { this.pluginIdProviders.push(pluginIdProvider); } }(); env.registerExtensionPoint( pluginRbacNode.pluginIdProviderExtensionPoint, pluginIdProviderExtensionPointImpl ); const rbacProviders = new Array(); env.registerExtensionPoint(pluginRbacNode.rbacProviderExtensionPoint, { addRBACProvider(...providers) { rbacProviders.push(...providers.flat()); } }); env.registerInit({ deps: { http: backendPluginApi.coreServices.httpRouter, config: backendPluginApi.coreServices.rootConfig, logger: backendPluginApi.coreServices.logger, discovery: backendPluginApi.coreServices.discovery, permissions: backendPluginApi.coreServices.permissions, auth: backendPluginApi.coreServices.auth, httpAuth: backendPluginApi.coreServices.httpAuth, auditor: backendPluginApi.coreServices.auditor, userInfo: backendPluginApi.coreServices.userInfo, lifecycle: backendPluginApi.coreServices.lifecycle, permissionsRegistry: backendPluginApi.coreServices.permissionsRegistry }, async init({ http, config, logger, discovery, permissions, auth, httpAuth, auditor, userInfo, lifecycle, permissionsRegistry }) { http.use( await pluginRbacBackend.PolicyBuilder.build( { config, logger, discovery, permissions, auth, httpAuth, auditor, userInfo, lifecycle, permissionsRegistry }, { getPluginIds: () => Array.from( new Set( pluginIdProviderExtensionPointImpl.pluginIdProviders.flatMap( (p) => p.getPluginIds() ) ) ) }, rbacProviders ) ); } }); } }); exports.rbacPlugin = rbacPlugin; //# sourceMappingURL=plugin.cjs.js.map