diff --git a/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.tsx b/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.tsx index fd007209d..4989367ef 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.tsx @@ -15,9 +15,10 @@ import { useTranslatedMantineReactTable } from "@homarr/ui/hooks"; interface UserListComponentProps { initialUserList: RouterOutputs["user"]["getAll"]; + credentialsProviderEnabled: boolean; } -export const UserListComponent = ({ initialUserList }: UserListComponentProps) => { +export const UserListComponent = ({ initialUserList, credentialsProviderEnabled }: UserListComponentProps) => { const tUserList = useScopedI18n("management.page.user.list"); const t = useI18n(); const { data, isLoading } = clientApi.user.getAll.useQuery(undefined, { @@ -68,11 +69,12 @@ export const UserListComponent = ({ initialUserList }: UserListComponentProps) = enableFullScreenToggle: false, layoutMode: "grid-no-grow", getRowId: (row) => row.id, - renderTopToolbarCustomActions: () => ( - - ), + renderTopToolbarCustomActions: () => + credentialsProviderEnabled ? ( + + ) : null, state: { isLoading, }, diff --git a/apps/nextjs/src/app/[locale]/manage/users/create/page.tsx b/apps/nextjs/src/app/[locale]/manage/users/create/page.tsx index 730f3e426..f7a6881e2 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/create/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/create/page.tsx @@ -1,3 +1,6 @@ +import { notFound } from "next/navigation"; + +import { isProviderEnabled } from "@homarr/auth/server"; import { getScopedI18n } from "@homarr/translation/server"; import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb"; @@ -5,6 +8,8 @@ import { createMetaTitle } from "~/metadata"; import { UserCreateStepperComponent } from "./_components/create-user-stepper"; export async function generateMetadata() { + if (!isProviderEnabled("credentials")) return {}; + const t = await getScopedI18n("management.page.user.create"); return { @@ -13,6 +18,10 @@ export async function generateMetadata() { } export default function CreateUserPage() { + if (!isProviderEnabled("credentials")) { + notFound(); + } + return ( <> diff --git a/apps/nextjs/src/app/[locale]/manage/users/page.tsx b/apps/nextjs/src/app/[locale]/manage/users/page.tsx index af56c3266..f77be0eeb 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/page.tsx @@ -1,4 +1,5 @@ import { api } from "@homarr/api/server"; +import { isProviderEnabled } from "@homarr/auth/server"; import { getScopedI18n } from "@homarr/translation/server"; import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb"; @@ -15,10 +16,12 @@ export async function generateMetadata() { export default async function UsersPage() { const userList = await api.user.getAll(); + const credentialsProviderEnabled = isProviderEnabled("credentials"); + return ( <> - + ); }