diff --git a/dashboard/src/app/application/page.tsx b/dashboard/src/app/(inside)/application/page.tsx
similarity index 100%
rename from dashboard/src/app/application/page.tsx
rename to dashboard/src/app/(inside)/application/page.tsx
diff --git a/dashboard/src/app/(inside)/layout.tsx b/dashboard/src/app/(inside)/layout.tsx
new file mode 100644
index 0000000..5c8f890
--- /dev/null
+++ b/dashboard/src/app/(inside)/layout.tsx
@@ -0,0 +1,37 @@
+import '../globals.css';
+import { Toaster } from '@/components/ui/sonner';
+import React from 'react';
+import { SidebarInset, SidebarProvider, SidebarTrigger } from '@/components/ui/sidebar';
+import { AppSidebar } from '@/components/app-sidebar';
+import { Separator } from '@/components/ui/separator';
+import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList } from '@/components/ui/breadcrumb';
+
+export default function InsideLayout({ children }: Readonly<{ children: React.ReactNode }>) {
+ return (
+
+
+
+
+
+
+ {
+ // TODO: implement dynamic Breadcrumbs
+ }
+
+
+
+
+ Ory Dashboard
+
+
+
+
+
+
+ {children}
+
+
+
+
+ );
+}
diff --git a/dashboard/src/app/page.tsx b/dashboard/src/app/(inside)/page.tsx
similarity index 100%
rename from dashboard/src/app/page.tsx
rename to dashboard/src/app/(inside)/page.tsx
diff --git a/dashboard/src/app/user/[id]/page.tsx b/dashboard/src/app/(inside)/user/[id]/page.tsx
similarity index 100%
rename from dashboard/src/app/user/[id]/page.tsx
rename to dashboard/src/app/(inside)/user/[id]/page.tsx
diff --git a/dashboard/src/app/user/action.ts b/dashboard/src/app/(inside)/user/action.ts
similarity index 100%
rename from dashboard/src/app/user/action.ts
rename to dashboard/src/app/(inside)/user/action.ts
diff --git a/dashboard/src/app/user/data-table.tsx b/dashboard/src/app/(inside)/user/data-table.tsx
similarity index 99%
rename from dashboard/src/app/user/data-table.tsx
rename to dashboard/src/app/(inside)/user/data-table.tsx
index 5819331..6476d7f 100644
--- a/dashboard/src/app/user/data-table.tsx
+++ b/dashboard/src/app/(inside)/user/data-table.tsx
@@ -6,7 +6,7 @@ import { DataTable } from '@/components/ui/data-table';
import { CircleCheck, CircleX, Copy, MoreHorizontal, Trash, UserCheck, UserMinus, UserPen, UserX } from 'lucide-react';
import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card';
import React, { useEffect, useRef, useState } from 'react';
-import { FetchIdentityPageProps } from '@/app/user/page';
+import { FetchIdentityPageProps } from '@/app/(inside)/user/page';
import { Spinner } from '@/components/ui/spinner';
import {
DropdownMenu,
@@ -29,7 +29,7 @@ import {
AlertDialogHeader,
AlertDialogTitle,
} from '@/components/ui/alert-dialog';
-import { blockIdentity, deleteIdentity, deleteIdentitySessions, unblockIdentity } from '@/app/user/action';
+import { blockIdentity, deleteIdentity, deleteIdentitySessions, unblockIdentity } from '@/app/(inside)/user/action';
interface IdentityDataTableProps {
data: Identity[];
diff --git a/dashboard/src/app/user/page.tsx b/dashboard/src/app/(inside)/user/page.tsx
similarity index 97%
rename from dashboard/src/app/user/page.tsx
rename to dashboard/src/app/(inside)/user/page.tsx
index 6fe3108..f02c636 100644
--- a/dashboard/src/app/user/page.tsx
+++ b/dashboard/src/app/(inside)/user/page.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { IdentityDataTable } from '@/app/user/data-table';
+import { IdentityDataTable } from '@/app/(inside)/user/data-table';
import { getIdentityApi } from '@/ory/sdk/server';
import { SearchInput } from '@/components/search-input';
diff --git a/dashboard/src/app/(outside)/unauthorised/page.tsx b/dashboard/src/app/(outside)/unauthorised/page.tsx
new file mode 100644
index 0000000..dcd45fb
--- /dev/null
+++ b/dashboard/src/app/(outside)/unauthorised/page.tsx
@@ -0,0 +1,11 @@
+import { ErrorDisplay } from '@/components/error';
+
+export default async function UnauthorizedPage() {
+ return (
+
+
+
+ );
+}
diff --git a/dashboard/src/app/layout.tsx b/dashboard/src/app/layout.tsx
index 8fda46d..6c716cf 100644
--- a/dashboard/src/app/layout.tsx
+++ b/dashboard/src/app/layout.tsx
@@ -2,13 +2,8 @@ import type { Viewport } from 'next';
import { Inter } from 'next/font/google';
import './globals.css';
import { cn } from '@/lib/utils';
-import { Toaster } from '@/components/ui/sonner';
import React from 'react';
import { ThemeProvider } from 'next-themes';
-import { SidebarInset, SidebarProvider, SidebarTrigger } from '@/components/ui/sidebar';
-import { AppSidebar } from '@/components/app-sidebar';
-import { Separator } from '@/components/ui/separator';
-import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList } from '@/components/ui/breadcrumb';
const inter = Inter({ subsets: ['latin'] });
@@ -56,31 +51,7 @@ export default function RootLayout({ children }: Readonly<{ children: React.Reac
enableSystem
disableTransitionOnChange
>
-
-
-
-
-
-
- {
- // TODO: implement dynamic Breadcrumbs
- }
-
-
-
-
- Ory Dashboard
-
-
-
-
-
-
- {children}
-
-
-
-
+ {children}