Merge branch 'feature/add-basic-authentication' of https://github.com/ajnart/homarr into feature/add-basic-authentication

This commit is contained in:
Meier Lukas
2023-08-05 16:02:30 +02:00
13 changed files with 234 additions and 49 deletions

View File

@@ -26,6 +26,7 @@ import {
IconUser,
IconUsers,
} from '@tabler/icons-react';
import { useSession } from 'next-auth/react';
import Image from 'next/image';
import Link from 'next/link';
import { ReactNode } from 'react';
@@ -47,6 +48,9 @@ export const ManageLayout = ({ children }: ManageLayoutProps) => {
const [burgerMenuOpen, { toggle: toggleBurgerMenu, close: closeBurgerMenu }] =
useDisclosure(false);
const data = useSession();
const isAdmin = data.data?.user.isAdmin ?? false;
const navigationLinks = (
<>
<NavLink
@@ -69,37 +73,43 @@ export const ManageLayout = ({ children }: ManageLayoutProps) => {
component={Link}
href="/manage/boards"
/>
<NavLink
label="Users"
icon={
<ThemeIcon size="md" variant="light" color="red">
<IconUser size="1rem" />
</ThemeIcon>
}
>
<NavLink
icon={<IconUsers size="1rem" />}
label="Manage"
component={Link}
href="/manage/users"
/>
<NavLink
icon={<IconMailForward size="1rem" />}
label="Invites"
component={Link}
href="/manage/users/invites"
/>
</NavLink>
<NavLink
label="Settings"
icon={
<ThemeIcon size="md" variant="light" color="red">
<IconSettings2 size="1rem" />
</ThemeIcon>
}
component={Link}
href="/manage/settings"
/>
{isAdmin && (
<>
<NavLink
label="Users"
icon={
<ThemeIcon size="md" variant="light" color="red">
<IconUser size="1rem" />
</ThemeIcon>
}
>
<NavLink
icon={<IconUsers size="1rem" />}
label="Manage"
component={Link}
href="/manage/users"
/>
<NavLink
icon={<IconMailForward size="1rem" />}
label="Invites"
component={Link}
href="/manage/users/invites"
/>
</NavLink>
<NavLink
label="Settings"
icon={
<ThemeIcon size="md" variant="light" color="red">
<IconSettings2 size="1rem" />
</ThemeIcon>
}
component={Link}
href="/manage/settings"
/>
</>
)}
<NavLink
label="Help"
icon={

View File

@@ -2,6 +2,7 @@ import { Avatar, Badge, Menu, UnstyledButton, useMantineTheme } from '@mantine/c
import { useDisclosure } from '@mantine/hooks';
import {
IconDashboard,
IconHomeShare,
IconInfoCircle,
IconLogin,
IconLogout,
@@ -53,6 +54,9 @@ export const AvatarMenu = () => {
<Menu.Item component={Link} href="/board" icon={<IconDashboard size="1rem" />}>
{t('actions.avatar.defaultBoard')}
</Menu.Item>
<Menu.Item component={Link} href="/manage" icon={<IconHomeShare size="1rem" />}>
Manage
</Menu.Item>
<Menu.Divider />
</>
)}