diff --git a/webapp/packages/administration/src/AdministrationMenuService.ts b/webapp/packages/administration/src/AdministrationMenuService.ts index 26d3b6c619..0412c5cc0b 100644 --- a/webapp/packages/administration/src/AdministrationMenuService.ts +++ b/webapp/packages/administration/src/AdministrationMenuService.ts @@ -10,6 +10,8 @@ import { SettingsMenuService } from '@dbeaver/core/app'; import { injectable } from '@dbeaver/core/di'; import { PermissionsService } from '@dbeaver/core/root'; +export const ADMINISTRATION_PERMISSION = 'admin'; + @injectable() export class AdministrationMenuService { static administrationMenuToken = 'administrationMenu'; @@ -19,11 +21,14 @@ export class AdministrationMenuService { ) { } register() { - this.settingsMenuService.addMenuItem({ - id: AdministrationMenuService.administrationMenuToken, - order: 0, - isHidden: () => !this.permissionsService.has('admin'), - title: 'administration_menu_enter', - }); + this.settingsMenuService.addMenuItem( + SettingsMenuService.settingsMenuToken, + { + id: AdministrationMenuService.administrationMenuToken, + order: 0, + isHidden: () => !this.permissionsService.has(ADMINISTRATION_PERMISSION), + title: 'administration_menu_enter', + } + ); } } diff --git a/webapp/packages/core/src/app/TopNavBar/SettingsMenu/SettingsMenuService.ts b/webapp/packages/core/src/app/TopNavBar/SettingsMenu/SettingsMenuService.ts index 2e7687b8d6..8d4e587a02 100644 --- a/webapp/packages/core/src/app/TopNavBar/SettingsMenu/SettingsMenuService.ts +++ b/webapp/packages/core/src/app/TopNavBar/SettingsMenu/SettingsMenuService.ts @@ -32,48 +32,54 @@ export class SettingsMenuService { return this.menu.getMenu(SettingsMenuService.settingsMenuToken); } - addMenuItem(options: IComputedMenuItemOptions, panelId: string = SettingsMenuService.settingsMenuToken) { + addMenuItem(panelId: string, options: IComputedMenuItemOptions) { this.menu.addMenuItem(panelId, options); } private addThemes() { - this.addMenuItem({ - id: this.themeMenuToken, - order: 1, - title: 'app_shared_settingsMenu_theme', - isPanel: true, - }); + this.addMenuItem( + SettingsMenuService.settingsMenuToken, + { + id: this.themeMenuToken, + order: 1, + title: 'app_shared_settingsMenu_theme', + isPanel: true, + } + ); this.themeService.themes.forEach((theme) => { this.addMenuItem( + this.themeMenuToken, { id: theme.id, title: theme.name, isDisabled: () => theme.id === this.themeService.currentThemeId, onClick: () => this.themeService.changeThemeAsync(theme.id), }, - this.themeMenuToken ); }); } private addLocales() { - this.addMenuItem({ - id: this.langMenuToken, - order: 2, - title: 'app_shared_settingsMenu_lang', - isPanel: true, - }); + this.addMenuItem( + SettingsMenuService.settingsMenuToken, + { + id: this.langMenuToken, + order: 2, + title: 'app_shared_settingsMenu_lang', + isPanel: true, + } + ); this.localizationService.getSupportedLanguages().forEach((lang) => { this.addMenuItem( + this.langMenuToken, { id: lang.isoCode, title: lang.nativeName, isDisabled: () => lang.isoCode === this.localizationService.getCurrentLanguage(), onClick: () => this.localizationService.changeLocaleAsync(lang.isoCode), - }, - this.langMenuToken + } ); }); } diff --git a/webapp/packages/core/src/root/PermissionsService.ts b/webapp/packages/core/src/root/PermissionsService.ts index 9cbc835e50..918f4dfd10 100644 --- a/webapp/packages/core/src/root/PermissionsService.ts +++ b/webapp/packages/core/src/root/PermissionsService.ts @@ -29,12 +29,6 @@ export class PermissionsService { return this.permissions.data.has(id); } - async hasAsync(id: string): Promise { - const permissions = await this.permissions.load(); - - return permissions.has(id); - } - async update() { await this.permissions.refresh(); }