diff --git a/webapp/packages/core/src/app/NavigationTree/NavigationTree.tsx b/webapp/packages/core/src/app/NavigationTree/NavigationTree.tsx index 988739c26d..9f864317fe 100644 --- a/webapp/packages/core/src/app/NavigationTree/NavigationTree.tsx +++ b/webapp/packages/core/src/app/NavigationTree/NavigationTree.tsx @@ -9,6 +9,9 @@ import { observer } from 'mobx-react'; import styled, { css } from 'reshadow'; +import { usePermission } from '@dbeaver/core/root'; + +import { PUBLIC_PERMISSION } from '../shared/NodesManager/NodesManagerService'; import { useChildren } from '../shared/useChildren'; import { NavigationTreeNode } from './NavigationTreeNode/NavigationTreeNode'; @@ -38,6 +41,11 @@ const navigationTreeStyles = css` export const NavigationTree = observer(function NavigationTree() { const nodeChildren = useChildren(); + const isEnabled = usePermission(PUBLIC_PERMISSION); + + if (!isEnabled) { + return null; + } if (!nodeChildren || nodeChildren.children.length === 0) { return styled(navigationTreeStyles)( diff --git a/webapp/packages/core/src/root/index.ts b/webapp/packages/core/src/root/index.ts index 9b72ea2ab3..c24d6ef3e0 100644 --- a/webapp/packages/core/src/root/index.ts +++ b/webapp/packages/core/src/root/index.ts @@ -3,3 +3,4 @@ export * from './ServerService'; export * from './PermissionsService'; export * from './ServerSettingsService'; export * from './SessionSettingsService'; +export * from './usePermission'; diff --git a/webapp/packages/core/src/root/usePermission.ts b/webapp/packages/core/src/root/usePermission.ts new file mode 100644 index 0000000000..8f078e6f89 --- /dev/null +++ b/webapp/packages/core/src/root/usePermission.ts @@ -0,0 +1,9 @@ +import { useService } from '@dbeaver/core/di'; + +import { PermissionsService } from './PermissionsService'; + +export function usePermission(key: string) { + const permissionsService = useService(PermissionsService); + + return permissionsService.has(key); +}