UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

33 lines (32 loc) 1.2 kB
import StateManager from '../state/statemanager'; import GirafeSingleton from '../../base/GirafeSingleton'; class PluginManager extends GirafeSingleton { constructor(type) { super(type); Object.defineProperty(this, "stateManager", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.stateManager = StateManager.getInstance(); this.stateManager.subscribe('oauth.userInfo', () => this.filterPlugins(document)); this.filterPlugins(document); } filterPlugins(dom) { const linkedToPlugin = dom.querySelectorAll('[plugin]'); linkedToPlugin.forEach((item) => { const pluginName = item.getAttribute('plugin'); if (pluginName) { if (!this.stateManager.state.oauth.userInfo?.functionalities?.authorized_plugins?.includes(pluginName)) { // Plugin is not activated for the user item.classList.add('hidden'); } else { item.classList.remove('hidden'); } } }); } } export default PluginManager;