diff --git a/apps/web/app/admin/accounts/[account]/page.tsx b/apps/web/app/admin/accounts/[account]/page.tsx
index 01cd60637..1ed85764f 100644
--- a/apps/web/app/admin/accounts/[account]/page.tsx
+++ b/apps/web/app/admin/accounts/[account]/page.tsx
@@ -1,3 +1,7 @@
-export default function AccountPage() {
+import { AdminGuard } from '@kit/admin/components/admin-guard';
+
+function AccountPage() {
return
;
}
+
+export default AdminGuard(AccountPage);
diff --git a/apps/web/app/admin/accounts/page.tsx b/apps/web/app/admin/accounts/page.tsx
index 9129598de..7e071c736 100644
--- a/apps/web/app/admin/accounts/page.tsx
+++ b/apps/web/app/admin/accounts/page.tsx
@@ -1,6 +1,7 @@
+import { AdminGuard } from '@kit/admin/components/admin-guard';
import { PageBody, PageHeader } from '@kit/ui/page';
-export default function AccountsPage() {
+function AccountsPage() {
return (
<>
@@ -8,3 +9,5 @@ export default function AccountsPage() {
>
);
}
+
+export default AdminGuard(AccountsPage);
diff --git a/apps/web/app/admin/page.tsx b/apps/web/app/admin/page.tsx
index 859f822ad..b5c69a0ae 100644
--- a/apps/web/app/admin/page.tsx
+++ b/apps/web/app/admin/page.tsx
@@ -1,7 +1,8 @@
import { AdminDashboard } from '@kit/admin/components/admin-dashboard';
+import { AdminGuard } from '@kit/admin/components/admin-guard';
import { PageBody, PageHeader } from '@kit/ui/page';
-export default function AdminPage() {
+function AdminPage() {
return (
<>
@@ -12,3 +13,5 @@ export default function AdminPage() {
>
);
}
+
+export default AdminGuard(AdminPage);
diff --git a/packages/features/admin/src/components/admin-guard.tsx b/packages/features/admin/src/components/admin-guard.tsx
index 6a255a27d..1a26c8cdd 100644
--- a/packages/features/admin/src/components/admin-guard.tsx
+++ b/packages/features/admin/src/components/admin-guard.tsx
@@ -2,10 +2,15 @@ import { notFound } from 'next/navigation';
import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client';
-import { isSuperAdmin } from '../lib/is-super-admin';
+import { isSuperAdmin } from '../lib/server/is-super-admin';
type LayoutOrPageComponent = React.ComponentType;
+/**
+ * AdminGuard is a server component wrapper that checks if the user is a super-admin before rendering the component.
+ * If the user is not a super-admin, we redirect to a 404.
+ * @param Component - The Page or Layout component to wrap
+ */
export function AdminGuard(
Component: LayoutOrPageComponent,
) {