diff options
Diffstat (limited to 'catalog-ui')
6 files changed, 30 insertions, 31 deletions
diff --git a/catalog-ui/src/app/models/plugins-config.ts b/catalog-ui/src/app/models/plugins-config.ts index 18782ec891..3f687a3af0 100644 --- a/catalog-ui/src/app/models/plugins-config.ts +++ b/catalog-ui/src/app/models/plugins-config.ts @@ -1,17 +1,16 @@ export class Plugin { pluginId: string; - pluginHost: string; - pluginPort: string; - pluginPath: string; + pluginDiscoveryUrl: string; + pluginSourceUrl: string; pluginStateUrl: string; - pluginProtocol: string; pluginDisplayOptions: Map<string, PluginDisplayOptions>; } export class PluginDisplayOptions { displayName: string; displayContext: Array<string>; + displayRoles: Array<string>; } export type Plugins = Array<Plugin>; diff --git a/catalog-ui/src/app/ng2/components/layout/top-nav/top-nav.component.ts b/catalog-ui/src/app/ng2/components/layout/top-nav/top-nav.component.ts index 5e43fec680..b8b0e80861 100644 --- a/catalog-ui/src/app/ng2/components/layout/top-nav/top-nav.component.ts +++ b/catalog-ui/src/app/ng2/components/layout/top-nav/top-nav.component.ts @@ -120,14 +120,15 @@ export class TopNavComponent { tmpArray.push(new MenuItem(hostedApp.navTitle, null, hostedApp.defaultState, "goToState", null, null)); } }); - - _.each(PluginsConfiguration.plugins, (plugin: Plugin) => { - if (plugin.pluginDisplayOptions["top"]) { - tmpArray.push(new MenuItem(plugin.pluginDisplayOptions["top"].displayName, null, "plugins", "goToState", {path: plugin.pluginStateUrl}, null)); - } - }) } + // Adding plugins to top-nav only if they can be displayed for the current connected user role + _.each(PluginsConfiguration.plugins, (plugin: Plugin) => { + if (plugin.pluginDisplayOptions["tab"] && (this.user && plugin.pluginDisplayOptions["tab"].displayRoles.includes(this.user.role))) { + tmpArray.push(new MenuItem(plugin.pluginDisplayOptions["tab"].displayName, null, "plugins", "goToState", {path: plugin.pluginStateUrl}, null)); + } + }); + this.topLvlMenu = new MenuItemGroup(0, tmpArray, true); this.topLvlMenu.selectedIndex = isNaN(this.topLvlSelectedIndex) ? this._getTopLvlSelectedIndexByState() : this.topLvlSelectedIndex; diff --git a/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.ts b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.ts index 169cad0411..801dfa98fe 100644 --- a/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.ts +++ b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.ts @@ -21,10 +21,7 @@ export class PluginFrameComponent implements OnInit { ngOnInit(): void { - this.pluginUrl = this.plugin.pluginProtocol + "://" + - this.plugin.pluginHost + ":" + - this.plugin.pluginPort + - this.plugin.pluginPath; + this.pluginUrl = this.plugin.pluginSourceUrl; if (this.queryParams && !_.isEmpty(this.queryParams)) { _.forOwn(this.queryParams, (value, key) => { diff --git a/catalog-ui/src/app/view-models/plugins/plugins-tab-view-model.ts b/catalog-ui/src/app/view-models/plugins/plugins-tab-view-model.ts index ce098009f3..d9dc40bdaf 100644 --- a/catalog-ui/src/app/view-models/plugins/plugins-tab-view-model.ts +++ b/catalog-ui/src/app/view-models/plugins/plugins-tab-view-model.ts @@ -34,7 +34,9 @@ export class PluginsTabViewModel { this.$scope.user = this.cacheService.get('user'); this.$scope.queryParams = { - userId: this.$scope.user.userId + userId: this.$scope.user.userId, + userRole: this.$scope.user.role, + displayType: "tab" }; } } diff --git a/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view-model.ts index 76010b56f4..ca8c269116 100644 --- a/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view-model.ts +++ b/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view-model.ts @@ -33,6 +33,8 @@ export class PluginsContextViewModel { this.$scope.queryParams = { userId: this.$scope.user.userId, + userRole: this.$scope.user.role, + displayType: "context", contextType: this.$scope.component.componentType, uuid: this.$scope.component.uuid, lifecycleState: this.$scope.component.lifecycleState, diff --git a/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts b/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts index 59dd2d8f00..0f9d7590c7 100644 --- a/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts +++ b/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts @@ -719,23 +719,21 @@ export class WorkspaceViewModel { this.$scope.leftBarTabs = new MenuItemGroup(); const menuItemsObjects:Array<any> = this.updateMenuItemByRole(this.sdcMenu.component_workspace_menu_option[this.$scope.component.getComponentSubType()], this.role); - // Only need to add plugins to the menu if the current role is Designer - if (this.role === "DESIGNER") { - _.each(PluginsConfiguration.plugins, (plugin: Plugin) => { - if (plugin.pluginDisplayOptions["context"]) { - let displayOptions : PluginDisplayOptions = plugin.pluginDisplayOptions["context"]; - - if (displayOptions.displayContext.indexOf(this.$scope.component.componentType) !== -1) { - menuItemsObjects.push({ - text: displayOptions.displayName, - action: 'onMenuItemPressed', - state: 'workspace.plugins', - params: {path: plugin.pluginStateUrl} - }); - } + // Only adding plugins to the workspace if they can be displayed for the current user role + _.each(PluginsConfiguration.plugins, (plugin: Plugin) => { + if (plugin.pluginDisplayOptions["context"] && plugin.pluginDisplayOptions["context"].displayRoles.includes(this.role)) { + let displayOptions : PluginDisplayOptions = plugin.pluginDisplayOptions["context"]; + + if (displayOptions.displayContext.indexOf(this.$scope.component.getComponentSubType()) !== -1) { + menuItemsObjects.push({ + text: displayOptions.displayName, + action: 'onMenuItemPressed', + state: 'workspace.plugins', + params: {path: plugin.pluginStateUrl} + }); } - }); - } + } + }); this.$scope.leftBarTabs.menuItems = menuItemsObjects.map((item:MenuItem) => { if (item.params) { |