refactor(core): EPermission enum

This commit is contained in:
Wroud
2020-05-15 13:45:43 +03:00
parent 8f14feaf5b
commit 4d5cb2eba9
6 changed files with 16 additions and 15 deletions
@@ -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,
}
);
@@ -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<DBSource[]> {
if (!await this.permissionsService.hasAsync(PUBLIC_PERMISSION)) {
if (!await this.permissionsService.hasAsync(EPermission.public)) {
return [];
}
const { dataSourceList } = await this.graphQLService.gql.dataSourceList();
@@ -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;
@@ -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);
@@ -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);
}
}
@@ -17,6 +17,10 @@ type PermissionsMetadata = {
loaded: boolean;
}
export enum EPermission {
public = 'public'
}
@injectable()
export class PermissionsService {
readonly onUpdate: Observable<unknown>;