From 17fd7f32a4dfad86ed387aac35bbdf8ee8db0cb0 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Wed, 18 Dec 2024 22:37:39 +0100 Subject: [PATCH] consider INVENTREE_RESTRICT_ABOUT setting (#8717) --- .../src/components/nav/NavigationDrawer.tsx | 5 +++- src/frontend/src/defaults/links.tsx | 28 +++++++++++++------ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/frontend/src/components/nav/NavigationDrawer.tsx b/src/frontend/src/components/nav/NavigationDrawer.tsx index 819d22e6df..c55f7b01fa 100644 --- a/src/frontend/src/components/nav/NavigationDrawer.tsx +++ b/src/frontend/src/components/nav/NavigationDrawer.tsx @@ -158,7 +158,10 @@ function DrawerContent({ closeFunc }: Readonly<{ closeFunc?: () => void }>) { [] ); - const menuItemsAbout: MenuLinkItem[] = useMemo(() => AboutLinks(), []); + const menuItemsAbout: MenuLinkItem[] = useMemo( + () => AboutLinks(globalSettings, user), + [] + ); return ( diff --git a/src/frontend/src/defaults/links.tsx b/src/frontend/src/defaults/links.tsx index e81c21875d..c83ef6f577 100644 --- a/src/frontend/src/defaults/links.tsx +++ b/src/frontend/src/defaults/links.tsx @@ -4,6 +4,8 @@ import { openContextModal } from '@mantine/modals'; import type { MenuLinkItem } from '../components/items/MenuLinks'; import { StylishText } from '../components/items/StylishText'; import { UserRoles } from '../enums/Roles'; +import type { SettingsStateProps } from '../states/SettingsState'; +import type { UserStateProps } from '../states/UserState'; export const navTabs = [ { text: Dashboard, name: 'home' }, @@ -110,8 +112,11 @@ export function licenseInfo() { }); } -export function AboutLinks(): MenuLinkItem[] { - return [ +export function AboutLinks( + settings: SettingsStateProps, + user: UserStateProps +): MenuLinkItem[] { + const base_items: MenuLinkItem[] = [ { id: 'instance', title: t`System Information`, @@ -119,13 +124,6 @@ export function AboutLinks(): MenuLinkItem[] { icon: 'info', action: serverInfo }, - { - id: 'about', - title: t`About InvenTree`, - description: t`About the InvenTree Project`, - icon: 'info', - action: aboutInvenTree - }, { id: 'licenses', title: t`License Information`, @@ -134,4 +132,16 @@ export function AboutLinks(): MenuLinkItem[] { action: licenseInfo } ]; + + // Restrict the about link if that setting is set + if (user.isSuperuser() || !settings.isSet('INVENTREE_RESTRICT_ABOUT')) { + base_items.push({ + id: 'about', + title: t`About InvenTree`, + description: t`About the InvenTree Project`, + icon: 'info', + action: aboutInvenTree + }); + } + return base_items; }