From 4d5cb2eba9bcabfca99764e0561d0dae2a1a3258 Mon Sep 17 00:00:00 2001 From: Wroud Date: Fri, 15 May 2020 13:45:43 +0300 Subject: [PATCH] refactor(core): EPermission enum --- .../src/BasicConnectionPluginBootstrap.ts | 6 +++--- .../basic-connection-plugin/src/BasicConnectionService.ts | 6 +++--- .../packages/core/src/app/NavigationTree/NavigationTree.tsx | 5 ++--- .../core/src/app/shared/NodesManager/NodesManagerService.ts | 5 ++--- .../app/shared/ToolsPanel/LogViewTab/LogViewerService.ts | 5 ++--- webapp/packages/core/src/root/PermissionsService.ts | 4 ++++ 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/webapp/packages/basic-connection-plugin/src/BasicConnectionPluginBootstrap.ts b/webapp/packages/basic-connection-plugin/src/BasicConnectionPluginBootstrap.ts index 5f7e9c3685..f78db82df1 100644 --- a/webapp/packages/basic-connection-plugin/src/BasicConnectionPluginBootstrap.ts +++ b/webapp/packages/basic-connection-plugin/src/BasicConnectionPluginBootstrap.ts @@ -6,11 +6,11 @@ * you may not use this file except in compliance with the License. */ -import { MainMenuService, ConnectionDialogsService, PUBLIC_PERMISSION } from '@dbeaver/core/app'; +import { MainMenuService, ConnectionDialogsService } from '@dbeaver/core/app'; import { injectable } from '@dbeaver/core/di'; import { CommonDialogService } from '@dbeaver/core/dialogs'; import { NotificationService } from '@dbeaver/core/eventsLog'; -import { PermissionsService } from '@dbeaver/core/root'; +import { PermissionsService, EPermission } from '@dbeaver/core/root'; import { BasicConnectionService } from './BasicConnectionService'; import { ConnectionDialog } from './ConnectionDialog/ConnectionDialog'; @@ -37,7 +37,7 @@ export class BasicConnectionPluginBootstrap { order: 2, title: 'basicConnection_main_menu_item', onClick: () => this.openConnectionsDialog(), - isHidden: () => !this.permissionsService.has(PUBLIC_PERMISSION), + isHidden: () => !this.permissionsService.has(EPermission.public), isDisabled: () => !this.basicConnectionService.dbSources.data.length, } ); diff --git a/webapp/packages/basic-connection-plugin/src/BasicConnectionService.ts b/webapp/packages/basic-connection-plugin/src/BasicConnectionService.ts index ddfddf3fa6..74e20577dd 100644 --- a/webapp/packages/basic-connection-plugin/src/BasicConnectionService.ts +++ b/webapp/packages/basic-connection-plugin/src/BasicConnectionService.ts @@ -7,10 +7,10 @@ */ import { - Connection, DBSource, ConnectionsManagerService, PUBLIC_PERMISSION + Connection, DBSource, ConnectionsManagerService } from '@dbeaver/core/app'; import { injectable } from '@dbeaver/core/di'; -import { PermissionsService } from '@dbeaver/core/root'; +import { PermissionsService, EPermission } from '@dbeaver/core/root'; import { ConnectionConfig, GraphQLService, CachedResource } from '@dbeaver/core/sdk'; @injectable() @@ -30,7 +30,7 @@ export class BasicConnectionService { } private async loadDBSourcesAsync(data: DBSource[]): Promise { - if (!await this.permissionsService.hasAsync(PUBLIC_PERMISSION)) { + if (!await this.permissionsService.hasAsync(EPermission.public)) { return []; } const { dataSourceList } = await this.graphQLService.gql.dataSourceList(); diff --git a/webapp/packages/core/src/app/NavigationTree/NavigationTree.tsx b/webapp/packages/core/src/app/NavigationTree/NavigationTree.tsx index 9f864317fe..b7ec6f1113 100644 --- a/webapp/packages/core/src/app/NavigationTree/NavigationTree.tsx +++ b/webapp/packages/core/src/app/NavigationTree/NavigationTree.tsx @@ -9,9 +9,8 @@ import { observer } from 'mobx-react'; import styled, { css } from 'reshadow'; -import { usePermission } from '@dbeaver/core/root'; +import { usePermission, EPermission } from '@dbeaver/core/root'; -import { PUBLIC_PERMISSION } from '../shared/NodesManager/NodesManagerService'; import { useChildren } from '../shared/useChildren'; import { NavigationTreeNode } from './NavigationTreeNode/NavigationTreeNode'; @@ -41,7 +40,7 @@ const navigationTreeStyles = css` export const NavigationTree = observer(function NavigationTree() { const nodeChildren = useChildren(); - const isEnabled = usePermission(PUBLIC_PERMISSION); + const isEnabled = usePermission(EPermission.public); if (!isEnabled) { return null; diff --git a/webapp/packages/core/src/app/shared/NodesManager/NodesManagerService.ts b/webapp/packages/core/src/app/shared/NodesManager/NodesManagerService.ts index 2ab650815d..df9372b677 100644 --- a/webapp/packages/core/src/app/shared/NodesManager/NodesManagerService.ts +++ b/webapp/packages/core/src/app/shared/NodesManager/NodesManagerService.ts @@ -7,7 +7,7 @@ */ import { injectable } from '@dbeaver/core/di'; -import { PermissionsService } from '@dbeaver/core/root'; +import { PermissionsService, EPermission } from '@dbeaver/core/root'; import { DatabaseObjectInfo, GraphQLService } from '@dbeaver/core/sdk'; import { INavigator } from '../Navigation/INavigator'; @@ -44,7 +44,6 @@ export interface INodeNavigationData { } const ROOT_NODE_PATH = '/'; -export const PUBLIC_PERMISSION = 'public'; // TODO: should be renamed to DBObjectManagerService @injectable() @@ -137,7 +136,7 @@ export class NodesManagerService { } async updateRootChildren() { - if (!await this.permissionsService.hasAsync(PUBLIC_PERMISSION)) { + if (!await this.permissionsService.hasAsync(EPermission.public)) { return; } this.updateChildren(ROOT_NODE_PATH); diff --git a/webapp/packages/core/src/app/shared/ToolsPanel/LogViewTab/LogViewerService.ts b/webapp/packages/core/src/app/shared/ToolsPanel/LogViewTab/LogViewerService.ts index 61c2350477..5d63a909b0 100644 --- a/webapp/packages/core/src/app/shared/ToolsPanel/LogViewTab/LogViewerService.ts +++ b/webapp/packages/core/src/app/shared/ToolsPanel/LogViewTab/LogViewerService.ts @@ -10,12 +10,11 @@ import { action, observable } from 'mobx'; import { injectable } from '@dbeaver/core/di'; import { NotificationService } from '@dbeaver/core/eventsLog'; -import { PermissionsService } from '@dbeaver/core/root'; +import { PermissionsService, EPermission } from '@dbeaver/core/root'; import { GraphQLService } from '@dbeaver/core/sdk'; import { uuid } from '@dbeaver/core/utils'; import { CoreSettingsService } from '../../../../CoreSettingsService'; -import { PUBLIC_PERMISSION } from '../../NodesManager/NodesManagerService'; import { ILogEntry } from './ILogEntry'; @injectable() @@ -117,6 +116,6 @@ export class LogViewerService { } private isLogViewerAvailable() { - return this.permissionsService.has(PUBLIC_PERMISSION); + return this.permissionsService.has(EPermission.public); } } diff --git a/webapp/packages/core/src/root/PermissionsService.ts b/webapp/packages/core/src/root/PermissionsService.ts index 4a8dca72ae..2500e2dbe1 100644 --- a/webapp/packages/core/src/root/PermissionsService.ts +++ b/webapp/packages/core/src/root/PermissionsService.ts @@ -17,6 +17,10 @@ type PermissionsMetadata = { loaded: boolean; } +export enum EPermission { + public = 'public' +} + @injectable() export class PermissionsService { readonly onUpdate: Observable;