"use strict"; /** * Licensed Materials - Property of IBM * IBM Cognos Products: Cognos Analytics * Copyright IBM Corp. 2015, 2016 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['bi/admin/nls/StringResource', 'bi/admin/common/utils/CapabilityHelper'], function (StringResource, CapabilityHelper) { 'use strict'; // NOSONAR: meant to be strict var _singletonInstance = null; var PluginsDefinition = function PluginsDefinition() { if (PluginsDefinition.prototype._singletonInstance) { return PluginsDefinition.prototype._singletonInstance; } }; PluginsDefinition.prototype.getPlugins = function (isSysAdmin, tenantID, glassContext, options) { // set the glassContext into the capabilities helper CapabilityHelper.glassContext = glassContext; // this check if carried down from AdminPanel var isPortalAdmin = CapabilityHelper.checkCapabilities('canUsePortalAdministrationTool') && !isSysAdmin ? true : false; var canManageVisualizations = CapabilityHelper.checkCapabilities('canManageVisualizations') && !isSysAdmin ? true : false; var canUseUsersGroupsAndRoles = CapabilityHelper.checkCapabilities('canUseUsersGroupsAndRolesTool') && !isSysAdmin ? true : false; var tabs = []; var themesTabSpec = { name: StringResource.get('themes'), module: 'bi/admin/system/ThemesTab', parentView: options.slideout, slideout: options.slideout, getDefaultThemeCallback: options.getDefaultTheme, setDefaultThemeCallback: options.setDefaultTheme, isPortalAdmin: isPortalAdmin, tenantID: tenantID, disableApplyButton: !isSysAdmin && !isPortalAdmin, tenantsListController: options.listController }; var extensionsTabSpec = { name: StringResource.get('extensions'), module: 'bi/admin/system/ExtensionsTab', parentView: options.slideout, slideout: options.slideout, tenantID: tenantID }; var viewsTabSpec = { name: StringResource.get('views'), module: 'bi/admin/system/ViewsTab', parentView: options.slideout, slideout: options.slideout, isPortalAdmin: isPortalAdmin, tenantID: tenantID, isSysAdmin: isSysAdmin }; var paletteTabSpec = { name: StringResource.get('palettes'), module: 'bi/admin/system/PalettesTab', parentView: options.slideout, slideout: options.slideout }; var defaultProfileTabSpec = { name: StringResource.get('profile'), module: 'bi/admin/system/DefaultProfileTab', parentView: options.slideout, slideout: options.slideout }; var customVisualizationsTabSpec = { name: StringResource.get('customVisualizations'), module: 'bi/admin/system/CustomVisualizationsTab', parentView: options.slideout, slideout: options.slideout }; // tabs used to be protected with canUsePortalAdministrationTool if (isSysAdmin || isPortalAdmin) { tabs.push(themesTabSpec); tabs.push(extensionsTabSpec); tabs.push(paletteTabSpec); tabs.push(viewsTabSpec); } if (isSysAdmin || !tenantID && canUseUsersGroupsAndRoles) { tabs.push(defaultProfileTabSpec); } // parameters used to be protected with canUsePortalAdministrationTool if (isSysAdmin || isPortalAdmin) { tabs.push({ name: StringResource.get('globalParameters'), module: 'bi/admin/common/GlobalParametersTab', parentView: options.slideout, slideout: options.slideout, getParameters: options.getParameters, updateParameters: options.updateParameters, isPortalAdmin: isPortalAdmin, tenantID: tenantID, isSysAdmin: isSysAdmin }); } if (isSysAdmin || canManageVisualizations) { tabs.push(customVisualizationsTabSpec); } return tabs; }; var _static = { getInstance: function getInstance() { if (!_singletonInstance) { _singletonInstance = new PluginsDefinition(); } return _singletonInstance; } }; return _static.getInstance(); });